走近科学,告诉你这游戏移植为什么这么拉

修改于04/15322 浏览
手机版一进游戏的那个Construct3的logo看到了吗?一切罪魁祸首就在这里。
Construct3是一款页游引擎,做出来的游戏都是用js写的在浏览器里跑的。
这就是为什么你能在游戏中碰到导航条消不掉,长按出现文字识别,甚至“竖屏游戏”。因为本质上这就是一个全屏网页。
可最滑稽的地方不在这里,而在于,
游戏的PC原版不是页游!
虽然在steamdb的tech栏查不到该游戏用里什么引擎,但是可以看到该游戏PC版中使用了sentrySDK。这个SDK时干嘛用的不重要,重要的是通过查看PC版的sentry.dll的符号表可以基本判断,游戏使用的是C或C++版的SDK。
既然游戏原本是用C++写的,那怎么手机版变成了JS的页游呢?答案是臭名昭著的EMScripten。这玩意是一个将C++语言转成JS的工具。那么代价是什么呢?用屁股想都知道代价当然是运行速度啊!
EMScripten一般用来转点玩玩的东西差不多了,转游戏代码这种对运行速度要求极高的,简直就是在搞笑。
不过其实EMScripten还有个WASM输出模式,效率虽然也有下降,但是至少比JS高不少。
可问题又回到了前面说的手游版引擎Construct3,这东西是页游引擎,只支持JS不支持WASM,所转了也用不了。
所以我一直就在说,游戏能卡成这样,绝对不是修一两个BUG或者抠抠搜搜挤点性能就能搞定的。必然是一开始移植时的技术选型方向就出现了巨大错误。
但讲道理我仔细去研究之前连我自己都没想到,这游戏手机版居然采用了C转JS直接上页游引擎,这么一个没十年脑残想不出来的鬼才方案。
结论:没救了,赶紧埋了吧。早死说不定还能早超生。但代理如果真还有点专业态度,换方案全部从头砍了再移植一遍,我倒是能敬你是条汉子。
9
2
8