来聊一下用模拟器玩手游在硬件上的选择,用一句话来总结的话:
"CPU核心多+RAM大"
对,就这一句而已...
很多时候手游跑模拟器不顺,确认过CPU跟RAM都没满载的话,先考虑换个模拟器试试。
下面稍微来聊一下模拟器的运作方式,
市面上常见的模拟器基本都是基于以下三个技术进行魔改:
VirtualBox:虚拟化软件,负责建立 VM 环境。
Android-x86:让Android系统能在x86架构的电脑上运行。
libhoudini:转译层,把ARM指令转成x86格式执行,大多数手游是为ARM环境设计的。
简单来说,模拟器会用VirtualBox建立VM虚拟机,用Android-x86运行Android系统,
然后用libhoudini把游戏的ARM指令转成x86指令来执行。
在这多提一嘴libhoudini,因为Google的Android Studio提供的libndk效能不佳,
各家模拟器厂商干脆借用Windows11里的WSA来用,这项转译技术是由Intel所开发,
当年I社为了进军手机市场的产物,只不过WSA预计明年会结束支援...
因此多开的需求跟VM虚拟机类似,而模拟器还加上了ARM指令转译这层负担,
所以效能自然会受到影响。
个人经验在单开情况下,同世代电脑低阶配置跑起来跟高阶配置的差距不会太大。
而且这种运行方式的相容性问题也不少,像游戏闪退、渲染错误...之类
这也是为什么模拟器厂商必须魔改上面的这些技术,才能确保手游能正确执行,还能保持
效率。
这里提个有趣的例子:
https://github.com/waydroid/waydroid/issues/788
这是一个去年五月在Linux模拟器不能执行蔚蓝档案的问题,
直到今年六月才有大佬依据MuMu魔改的libhoudini逆向推导,才发现是转译层的内存写
入问题导致无法启动游戏。
(不知道是Nexon的工程师是为了防作弊还是菜,连用libndk都会出问题...)
这也是为什么模拟器玩手游出问题时,通常建议先到该游戏的讨论区问问大家用什么
模拟器、怎么设置比找硬件问题有效。
当然硬件上(?)的问题也是有可能的,最后来讲两个例子
https://bbs.nga.cn/read.php?tid=39971179&rand=373 (NGA讨论串)
MuMu某几版用AMD CPU开启PBO在玩明日方舟时会产生类似加速器的效果,导致帐号被封
https://www.reddit.com/r/nvidia/comments/1g9i6ot/game_ready_driver_56603_
faqdiscussion/
Nvdia最新驱动566.03会让Bluestacks在运行时CPU占用大幅增加