如何汉化游戏 如何汉化( 三 )


另外,在自身汉化经验上升到一定程度后熟练掌握一门计算机编程语言是十分必要的事情,汇编基础必不可少,很多时候都必须通过分析游戏指令来汉化游戏,而且这十分普遍,不懂的此技能的汉化者几乎不可能独立完成一个游戏的破解工作 。高级程序语言,例如Basic C/C++,要学会利用这些高级语言来编写小程序以达到事半功倍的效果,同时也是自身能力又一次提高的过程 。关于语言的学习就大家自己去摸索吧 。还要强调的是:汉化需要堆积大量的时间与精力,极不赞成高中学生来做这方面的研究,学生当以自身学业为重 。
汉化需要热情与激情,但更需要耐心与毅力,当你心中真正装有汉化的时候它就不再那么神秘得高不可攀了 。
小结:如果你能耐心地看完这篇枯燥得只有白底黑字的不涉及任何技术性的文章后仍然对汉化充满充满无限热情,那你就具备了汉化所必须的也是最基本的条件 。以后的学习研究过程中一定要深思考、勤探索 。汉化没有捷径可图,靠得是脚踏实地坚持不懈地再攀登 。搞任何研究都不能有依赖性,汉化也不例外,绝不能像玩网络游戏那样寄希望于高手来带你,或者期待某个高手编写一套“外挂”来助你成功 。汉化主要是靠自己的研究,我们学习的不仅仅是操作,而主要的应该是原理 。因为汉化不像使用WORD编辑文书那样,学会了操作在哪台电脑上都是一样的进行 。游戏是千变万化的,没有任何两款游戏的汉化操作是完全一样的 。我们要掌握游戏运行的原理,汉化的原理,从而才能举一反三灵活运用 。汉化新手一定要注意自己的心态问题,只有建立正确的汉化观才有可能真正学会汉化 。
进行游戏汉化最开始的工作就是分析游戏的文件格式,找出要汉化的部分在哪个文件里,文件结构是什么样子的,应该怎么修改 。
汉化游戏主要是要找出两种文件及对应的文件格式:
1 。游戏的字体文件
2 。游戏的英文脚本文件(就是游戏中的情节、对话部分)
但是如何找,这却是一个难题 。由于游戏厂商一般对自已出品的游戏文件格式都是不公开的,它们不希望玩家能随意修改游戏(这仅仅是一厢情愿罢了),很多骨灰级玩家还是能够找出游戏的文件结构,进而修改游戏 。
这样看来,找出文件格式主要有两种方式:
1. 搜索网上的资源,寻找骨灰级玩家,求得帮助 。
2. 自己充当骨灰级玩家,分析出游戏文件的格式来,难度较大 。
幸运的是Lucas公司的游戏Fans很多,甚至还成立了一个专门的网站LucasHacks()用来讨论怎么修改其出品的各种游戏 。我所需要的游戏文件格式的文档全是出自此网站,从而为汉化工作提供了极大的帮助,节省了很多时间,在此表示万分感谢,向那些撰写文档的前辈们致敬 。
下面针对GF开始介绍用到的几种游戏文件格式
1..tab文件格式
是存放游戏所有英文脚本的文件,文件内容是加密存储的,用一般文本编辑器打开是看不到任何可用信息 。解密内容的方法是对文件所有字节与0xDD进行异或操作 。
以下是解密文件的源码(C#):
private void button1_Click(object sender, System.EventArgs e)
{
// Create the reader for data.
FileStream fs = new FileStream("c:grim.tab", FileMode.Open, FileAccess.Read);
BinaryReader r = new BinaryReader(fs);
FileStream fs2 = new FileStream("c:text.txt", FileMode.Create);
BinaryWriter w = new BinaryWriter(fs2);
fs.Position = 4;
while(fs.Positionfs.Length)
{
w.Write((byte)(r.ReadByte()^ 0xdd));
}
r.Close();
w.Close();
fs.Close();