AndroidスマホでFGOの動作が遅い理由
FGOはさておきUnity製ゲームではAndroidでの動作が遅い理由
いきなりタイトルがすり替わっていますが、今回はFGOで使われているUnityエンジンについてのお話をしたいと思います。
Unityエンジンは非常に強力なゲーム開発ツールなのですが、以下のような制約によりAndroidスマホでは動作が遅くなります。
- (ほぼ)シングルスレッドでしか動作しない
- 64bitアーキテクチャに対応しておらず32bit(互換モード)でのみ動作する
現在のところUnityエンジンの(多くの)APIはメインスレッドでのみ動作するようになっています。
この制約で動作に一番影響がでてくるのは画像等のリソースロードだと思うのですが、シングルスレッドでしかロードできないためマルチコアのCPUを積んだスマホでは半分以下の性能でしか動作しません。
俺のiOSスマホはサクサク動いてますけど?
いやいや、iOSスマホではもっとましに動いているんだから、Androidでももっとましになるはずでしょ?と思った奥さん、じつはiOSスマホのアプリはAndroidと違い64bit対応しているんですよ。
(シングルスレッドでしか(ほぼ)動作しないのは一緒)
さらにiOSとAndroid OSではアプリの動作方法について違いがあり、iOSアプリはOS上で直接実行されるのにたいして、AndroidアプリはVM*1という仮想マシン上でアプリを動かすことも動作の遅さの一因となっています。
というわけでUnity製のゲームを遊ぶのであればiOSスマホがおすすめですよというお話でした。