最近终于把那个老游戏《隧道逃生》的汉化版给捯饬出来了,从头到尾,我真是把自己的老命都搭进去了。这玩意儿本来就是个独立小作坊做的,更新频率高,每次更新都得把我的汉化进度打回原形。我寻思着,既然社区里一直有人吵着要,原作者又不肯出官方中文,那干脆我自己动手,丰衣足食。
第一步:锁定目标和扒皮
你得先搞到最新的原版游戏文件,这个是前提。我摸索了好久,终于在犄角旮旯找到了一个干净的原版包。接着就是找工具。我试了三四种文本提取工具,都不太理想,因为这个游戏用的是一个比较偏门的引擎。我没办法,自己动手改了一个开源的资源提取脚本,才勉强把那些藏在深处,加密做得稀烂的文本资源给揪出来。
- 找到文本:文本文件零零散散,有些在配置文件里,有些直接写在资源包最深处。
- 编码问题:这老哥们儿用的编码方式特别奇怪,导致我第一次把中文字符塞进去的时候,游戏直接报了一串乱码,根本没法看。我折腾了一晚上,才定位到是字库的问题。
第二步:痛苦的翻译与校对
文本量说大不大,说小也不小。我前后拉了两个朋友帮忙,我们分工合作。翻译过程是最枯燥的,因为游戏里的描述特别模糊,很多地方需要靠猜测和实际游戏测试来确定语境。翻译完之后,我必须亲自进游戏,从头到尾玩一遍,看看有没有出现溢出或者语意不通的地方。
我们为了统一风格,定下了一个土味翻译原则,让它听起来更像是我们在地铁里摸爬滚打的老司机说的话,而不是那种机器翻译的生硬腔调。这块儿反反复复,光是校对就占了我项目周期的三分之一。
第三步:发布与更新日志的维护
这游戏隔三岔五就来个小更新。我刚发布了第一个版本,作者那边第二天就推送了一个补丁。我当时的心情,真是想砸了电脑。
为了解决这个问题,我构建了一个简单的对比脚本。每次作者更新,我的脚本就会自动对比新旧版本的文本资源差异,这样我就能快速锁定需要重新翻译和嵌入的部分。这就是为什么这回我发的日志里专门提到了“更新日志”,因为维护比汉化本身更费劲。
你们肯定好奇,我为啥非得跟这个破游戏的汉化死磕?
我手里正经的活儿多得是,最近公司新项目启动,本来应该忙得脚不沾地。但我跟你们说,我不是突然有了奉献精神,我是被逼的。
上个月,我刚把一套服务器架构优化方案递上去,结果管采购的那个老油条,一直给我拖着不批。理由一大堆,什么预算超了、流程没走完、要等领导出差回来签字……我他娘的等了整整两周!项目那边卡在那儿,我每天去办公室就是干坐着,闲得浑身难受。找领导反馈?领导说你自己想办法找点事做,不能白拿工资。
我寻思,与其看着那帮人推诿扯皮,不如找点能出成果的事儿干。我老婆那天晚上还抱怨我,说我上班闲着,回家也躺着,跟个废物一样。我当时被说得脸上挂不住,直接跳起来说:“老子给你搞个实打实的成绩看看!”
于是我一怒之下,就把这个搁置已久的汉化项目又捡了起来。反正公司那边流程走不完,我这块儿又不能真闲着。虽然一分钱没挣着,但汉化包更新成功的那一刻,那种成就感,比跟公司那些官僚斗智斗勇舒服多了。现在汉化包终于发出来了,下载量还挺大,我跟社区里那帮人也算是有交代了。等过两天公司那边流程批下来,我再回去跟那堆代码死磕。