上个月我带着我媳妇儿去医院做例行检查,挂号排队等了半天。那天我没事干,就掏出平板想找点东西玩。结果发现那个我一直想玩的《深渊学校》,这鬼东西只有PC版。上次玩到一半卡住了,不能随时掏出来玩,烦得很。
我当时就琢磨,这玩意儿结构又不复杂,肯定能给它搞到安卓上去。既然闲着也是闲着,那不如回家路上就定个小目标:周末必须把它打包成APK,塞进我的平板里,让我在排队的时候也能推剧情。
搞清楚底细,找对工具
回家第一件事,我扒拉了一下PC版的文件夹。一看文件结构,果然不出所料,这玩意儿是用那个什么“RPG制作大师”或者类似的轻量级引擎鼓捣出来的。这类游戏移植安卓,一般不是直接用原厂SDK,就是找那种专门的兼容模拟器包来套壳。
我没想走模拟器那条路,因为那太糙了,启动慢,兼容性还不我的目标是做一个原生一点的包,装上就像个正经App那样。我搜罗了一圈,找了个针对这种游戏引擎的开源工具链。这工具链就是一套封装好的安卓壳子,你把游戏资源文件扔进去,它帮你配置好环境,编译成安卓能认的格式。
我先是按照工具链的要求,把游戏所有的资源,包括图片、脚本、音效,一股脑儿挪进了它的项目目录里。然后配置了安卓SDK路径,敲下了编译命令。一顿操作猛如虎,半小时后,我的第一个测试APK包就生成了。
遇到大问题,开始修修补补
第一次生成的APK,装上平板,启动倒是没问题,屏幕能亮起来。但马上就发现大问题了:
- 分辨率崩了: 游戏画面直接挤成一团,边框全跑到外面去了,根本不能看。
- 操作巨难受: 原版是鼠标点来点去的,现在安卓上你得用手指点,但触控响应区域完全不对,点半天都没反应。
我回过头去扒拉了半天配置文件。原来这套封装工具对高分辨率的支持比较死板,它默认的适配逻辑有问题。我硬着头皮,在配置文件的显示设置里,把缩放模式从自动改成了强制拉伸,虽然这导致画面变模糊了,但至少能把完整的游戏界面塞进平板屏幕里了。
模糊归模糊,至少能看了。第二个问题才是真的要命,操作问题。你总不能指望我在平板上连个鼠标?我琢磨着得给它加一套虚拟按键。我翻找了工具链的文档,找到了添加自定义输入层的方法。我硬是抠出了几个小时,画了一套透明的触控按钮,映射到原版的键盘输入上,比如“确认”对应回车,“取消”对应ESC,再搞了个方向键的布局。
收尾测试,大功告成
搞定输入层后,我重新打包,传到平板上测试。
这回总算是成了。虽然启动速度比PC慢了那么一点点,画面也略微有点糊,但是操作手感总算能接受了。第二天带媳妇儿去复查,在医院等叫号的时候,我终于能掏出来,把上次卡住的剧情给推进下去了。
这折腾一圈下来,花的时间都够我把这个游戏玩通关两遍了。但我就是享受这种自己动手解决问题的感觉。现在这个APK我留着,下次谁再说这游戏只能在电脑上玩,我就把这个包甩给他,让他也尝尝鲜,在手机上也能玩《深渊学校》了。