从被逼无奈到自我折腾:我的《阳光城》汉化实录
我不是一开始就想搞什么汉化补丁的,纯属是被逼的。这游戏《真实人生阳光城》我关注了快一年,等得心都焦了,好不容易等来了,结果一看,全是日文。那会儿我刚被公司裁员,在家闲得蛋疼,琢磨着不能浪费这时间,干脆自己动手,丰衣足食。
动手的第一步,就是砸锅卖铁。
-
我先是
跑去搜罗了一大堆分析工具,对着游戏的资源包一顿猛啃,发现文本文件被加密压在一个特制的DLL文件里。我试了五六个通用的解包器,全他妈歇菜了,根本读不出来。
本站为89游戏官网游戏攻略分站,89游戏每日更新热门游戏,下载请前往主站地址(www.game519.com) -
折腾了三天三夜,眼睛都熬红了,才勉强
摸清了它那个鬼一样的加密逻辑,用Python写了个简陋的脚本,硬是
把那几万行的原始文本给
抠了出来。文本是拿到了,结果一看,全是Shift-JIS编码,一团乱麻。
字符显示:真正的“地狱难度”
文本拿出来就好说了,我赶紧
找了几个群里的老哥帮忙,大家分头
把文本翻译
敲定。但翻译完往回塞,才是真正的地狱难度。
原版游戏引擎对多语言的支持,烂到家了。我把简体中文的字符串
塞进去,一运行,显示出来的全他妈是方块。引擎默认只
认它内置的那套日文字体和英文字符集,对于Cyrillic(西里尔文)和GBK(简体中文)根本不
买账。
我当时气得差点
砸了键盘。这不只是翻译问题,这是渲染问题。我必须
替换掉它底层的字体库,还得
骗过游戏引擎,让它
以为它加载的还是日文环境下的字体。
整个过程就是一场技术上的“骗局”:
-
我
定位到了游戏加载字体库的那个内存地址,这玩意儿藏得比老鼠洞还深。
-
然后我
用十六进制编辑器硬是
把字体文件的头部
给改了,
伪装成它认识的格式。
-
我
塞进了一个支持GB2312全字符集的开源字体包,这字体包容量比原版大了好几倍。
那段时间,我基本
靠泡面和咖啡续命。每
改一行代码,都要
编译一次,
运行一次,就为了看那几个汉字有没有
显示正常。稍微
错一个字节,游戏就直接
崩溃给你看。
最终成果与发布
当我终于看到游戏里弹出整齐干净的简体中文对话框时,那种成就感,比发工资还爽。我
花了一个星期的时间,
把所有东西
打包成了一个一键安装的补丁程序,防止手残党
搞砸。
我把这个“真实人生阳光城_更新日志_汉化版下载”
发出去之后,社区直接
炸了。好多人
留言说等这个汉化等得头发都快掉光了。我没指望从中
捞一分钱,就是
图个痛快,
证明一下,官方不
做的东西,我们民间高手一样能
做得更漂亮、更实在。
这个实践记录,就是我从零开始,怎么把一堆乱码
变成一个能玩、能懂的游戏的流水账。下次有空,我再
讲讲我是怎么
搞定它那个动态资源加载机制的,那又是另一番
腥风血雨的折腾了。