我今天来分享一下,这个叫《平行救赎》的安卓汉化版我是怎么搞出来的。你别看成品就一个安装包,这背后折腾的事儿,真是一言难尽。
为什么非得折腾这事儿?
你可能会想,一个PC上的小游戏,至于这么费劲搞个安卓汉化吗?实话跟你说,我一开始也没想动。我转行搞嵌入式都快四年了,早就把以前那些搞游戏逆向的本事丢到脑后了。我之所以又捡起来,纯粹是因为我那老伙计“老林”的一个电话。
老林这孙子,前几天微信上给我发了一堆语音,哭诉他老婆迷上了这个游戏,但天天晚上抱着个笔记本玩,眼睛都快瞎了。他老婆总说,要是能在手机上躺着玩就好了。老林是搞金融的,对这些技术屁都不懂,就知道我是老手艺人,所以才来找我。
我本来想直接拒绝的,说这玩意儿移植麻烦。但老林提到了我以前待过的那家公司。就是那家,五年前,我爸突然生病住院,我请假回去照顾,结果公司直接把我开了,说我“影响公司发展”。那帮畜生,连我两个月的提成都扣着没给。我当时就琢磨着,这帮人现在肯定还在到处招人填我那个“技术空缺”。我这回搞这个汉化,说白了,不是为了老林,也不是为了游戏,我就是想看看,我这套“被淘汰”的手艺,现在还能不能跑起来。我得证明给他们看,我没他们想的那么废物。
从PC版里“扒”东西
说干就干。第一步,我得把PC版的游戏先弄到手。这不难,老林直接给我发了个压缩包。我解压缩一看,得,Unity引擎做的。这简直是老马识途,太熟了。
小编温馨提醒:本站只提供游戏介绍,下载游戏请前往89游戏主站,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区
我直接把主要的资源文件夹拖进我的老工具里开始分析。Unity游戏虽然好搞,但文本文件(就是那些台词和菜单)经常被作者藏起来或者自己加密一下。我像个老侦探一样,在茫茫多的`.assets`和`.bundle`文件里翻箱倒柜。
- 第一天:找文本文件。我试了好几个常见的路径,都没找到。我感觉不对劲,应该是被打包了。
- 第二天:我开始翻找配置文件和脚本。终于,在一个不起眼的配置文件里,我看到了一串字符,像是一个加密密钥。
- 第三天:我翻出了我五年前写的一个专门用于解密Unity自打包文本文件的Python脚本。那脚本都积灰了。我花了一上午时间才把它跑起来。
- 结果:脚本跑完,一个巨大的文本文件被吐出来了,里面全是英文和一些奇怪的标记符。这一步,算是把人家的“家底”给掏空了。
翻译、校对和回填
文本是拿到了,接下来就是翻译。这可不像以前,一句一句用翻译软件。现在方便多了。我直接把整个文本丢给了一个在线的机器翻译接口,它吭哧吭哧几分钟,给我输出了一份机翻稿。
但是机翻的东西,特别是涉及到这种日式剧情的,那叫一个驴唇不对马嘴,各种口癖和专有名词错得离谱。我只能硬着头皮,自己一句一句地“润色”和校对。我盯着屏幕看了两天,感觉自己脖子都要断了,就为了把那句“You must be saved”翻译成“你终将得到救赎”,而不是“你必须被保存”。这活儿真是又枯燥又费眼睛。
翻译完了,接下来是回填。我得把这些中文文本,按照它原来的编码格式,再塞回到那个被我掏空的资源包里。我用脚本把中文替换进去,然后用刚才的密钥重新打包加密。这个过程,就跟给一件衣服打补丁一样,得严丝合缝。
安卓版APK的魔改与完工
塞回文本只是第一步,现在要解决“安卓”这个最大的难题。PC版和安卓版的执行环境完全不一样,光靠替换资源肯定不行。我直接在网上找了一个现成的、能运行的这个游戏的安卓APK(是原版的)。
- 我解包了那个APK。
- 然后,我把我汉化好的、重新打包的资源文件,替换掉了原APK里的英文资源文件。路径对不上怎么办?我直接把PC端的路径映射,在配置文件里强行改成了安卓端的路径。
- 替换完之后,我重新签名、打包。
- 第一次安装测试,闪退了。我当时就骂了一句,这孙子。我赶紧看logcat(安卓日志),发现是我替换进去的某个贴图尺寸不对,系统报错。
- 我回去调整了那个图片,又重新打包。
- 第二次安装测试。打开,Logo,进入主菜单……菜单上的中文出来了!进入游戏,对话框里的中文也出来了!
我把这个最终的APK发给了老林。半夜一点,老林给我回了个电话,他老婆在那边开心地直叫唤。老林说:“真亏你行老哥,这手艺还没丢!”
我挂了电话,没说话。这手艺哪是没丢?这是被那家烂公司硬生生逼着,让我记一辈子。我点开他们公司的招聘网站,那个“高级游戏逆向工程师”的岗位还在那儿挂着,月薪开到了三万五。我冷笑了一声,三万五?那又怎样?这辈子,我都不可能再给他们解决任何一个技术问题。

