COLUMN

各ゲームエンジンのモバイル描画負荷ベンチマークテスト結果について

Benchmark-Eyecatch

 

最近では無料で多くのゲームエンジンが開発者に提供されていますが、どのゲームエンジンもできることが全く異なるといったことではありません。制作するプロダクトに適したゲームエンジンを利用することがベストな選択となります。今回調査したベンチマークテストの結果をどう捉えるかも自分達次第ということです(例えば、数千枚のスプライトを一度に表示することはない、かつエンジニアはC++が得意となれば「Cocos2d-x」を利用することになるかもしれません)。

※2017年11月16日(木)追記しました※

今回の検証に使ったバージョンは下記となります。

Cocos2d-x : 3.15
Unity : 5.5.2f1
Defold : 1.2.103
Unreal Engine : 4.15

 

 

1.ベンチマークテストについて

弊社では3Dを扱ったプロダクトを多くリリースしていますが、2Dのみを扱うプロダクトが無いというわけではありません。2Dゲームでもまだまだ戦えますし、2Dゲームはトップセールスに多くランクインしている状況です。3、4年前は「Cocos2d-x」の描画速度が「Unity」より圧倒的に速いといったようなことを聞きましたが、今現在では負荷の面で2D描画に強いのはどのゲームエンジンなのか調査しようというのが発端となります。

 

 

1.1 ベンチマークテストの目的

今回のベンチマークテストでは、描画負荷によるカクツキが発生する目安を知りたかったため、各スマートフォン端末のFPSが下がり始める数値を確認するのが目的となります。

 

 

1.2 利用するスマートフォン端末

ベンチマークテストに利用するスマートフォン端末は下記の通りです。

端末名 OSバージョン CPU
iPhone 7Plus iOS 10.0 A10 Fusion
iPhone 7Plus iOS 10.0.1 A10 Fusion
iPhone 7 iOS 10.2.1 A10 Fusion
iPhone 6S iOS 9.1 A9
iPhone 5 iOS 10.0.1 A7
Xperia Z2 SO-03F Android 5.0.2 Qualcomm Snapdragon 801 2.27GHz
ARROWS NX F-01F Android 4.2.2 Qualcomm Snapdragon 800 2.15GHz
Google NEXUS 6 Android 7.0 Qualcomm Snapdragon 805 2.65GHz
Google NEXUS 5 Android 6.0.1 Qualcomm Snapdragon 800 2.27GHz

 

 

1.3 ベンチマークテスト用アプリケーション

各スマートフォン端末に描画負荷を掛けるアプリケーションは、「Cocos2d-x」、「Unity」、「Defold」、「Unreal Engine」それぞれのゲームエンジンで同じロジックを使って作成しました。アプリケーションの動作としては、スマートフォン端末で実行された後始めてFPSが60となった段階でスプライトを一定間隔で描画し続ける内容となっています。また、FPSが30を下回った時点で描画処理が停止され、スプライトの描画と並行して数秒間隔で記録していたFPS値とスプライト枚数をテキストデータとして書き出す仕組みです。

BenchMarkApp

 

 


スプライト- グッドロ君という株式会社GOODROIDのマスコットキャラクター(PNG形式でサイズ128×128)を利用した。

GOODRO

 

 

2.ベンチマークテスト結果

スマートフォン端末に与える描画負荷としてグッドロ君を回転アニメーションさせないパターンとさせるパターンの2種類の方法をベンチマークテストに利用しています。次章で示している各グラフ上のX軸はスプライト枚数(5回分の平均値)でY軸はFPS(5回分の平均値)を表しています。どのグラフを見ても最終的なX軸のスプライト枚数が徐々に減少していくように見えますが、これはベンチマークテストを5回行った際に必ずしも全ての試行で、同じスプライト枚数をFPSが30を下回るまでに表示できないことが影響しています。今回のベンチマークテストの目的では、この部分のスプライト枚数について深く着目していないためグラフは取得したデータのままで作成しています。
※但し、「ARROWS NX F-01F」に関しては「Unreal Engine」によるアプリ実行時に画面が正常に表示されなかったため「Unreal Engine」の項目から除きます
※iPhone 7Plusはスコアが悪いので2台試しました(グラフを参照すると分かりますが結論としてスコア悪い?)

 

 

2.1 回転アニメーションなし

2.1.1 Cocos2d-x
iPhone7Plus(Cocos2d-x) iPhone7Plus-2(Cocos2d-x)
Benchmark-iPhone7(Cocos2d-x) Benchmark-iPhone6S(Cocos2d-x)
Benchmark-iPhone5(Cocos2d-x) Benchmark-Xperia Z2 SO-03F(Cocos2d-x)
Benchmark-ARROWS NX F-01F(Cocos2d-x) Benchmark-Google NEXUS 6(Cocos2d-x)

Benchmark-Google NEXUS 5(Cocos2d-x)

 

 

2.1.2 Unity
iPhone7Plus(Unity) iPhone7Plus-2(Unity)
Benchmark-iPhone7(Unity) Benchmark-iPhone6S(Unity)
Benchmark-iPhone5(Unity) Benchmark-Xperia Z2 SO-03F(Unity)
Benchmark-ARROWS NX F-01F(Unity) Benchmark-Google NEXUS 6(Unity)

Benchmark-Google NEXUS 5(Unity).Fix

 

 

2.1.3 Defold
iPhone7Plus(Defold) iPhone7Plus-2(Defold)
Benchmark-iPhone7(Defold) Benchmark-iPhone6S(Defold)
Benchmark-iPhone5(Defold) Benchmark-XperiaZ2SO-03F(Defold)
Benchmark-ARROWSNXF-01F(Defold) Benchmark-GoogleNEXUS6(Defold)

Benchmark-Google NEXUS 5(Defold)

 

 

2.1.4 Unreal Engine
Benchmark-iPhone7Plus(Unreal Engine) Benchmark-iPhone7Plus-2(Unreal Engine)
Benchmark-iPhone7(Unreal Engine) Benchmark-iPhone6S(Unreal Engine)
Benchmark-iPhone5(Unreal Engine) Benchmark-Xperia Z2 SO-03F(Unreal Engine)
Benchmark-Google NEXUS 6(Unreal Engine) Benchmark-Google NEXUS 5(Unreal Engine)

 

 

2.2 回転アニメーションあり

2.2.1 Cocos2d-x
Benchmark-iPhone7Plus(Cocos2d-x) Benchmark-iPhone7Plus-2(Cocos2d-x)
Benchmark-iPhone7(Cocos2d-x) Benchmark-iPhone6S(Cocos2d-x)
Benchmark-iPhone5(Cocos2d-x) Benchmark-Xperia Z2 SO-03F(Cocos2d-x)
Benchmark-ARROWS NX F-01F(Cocos2d-x) Benchmark-Google NEXUS 6(Cocos2d-x)

Benchmark-Google NEXUS 5(Cocos2d-x)

 

 

2.2.2 Unity
Benchmark-iPhone7Plus(Unity) Benchmark-iPhone7Plus-2(Unity)
Benchmark-iPhone7(Unity) Benchmark-iPhone6S(Unity)
Benchmark-iPhone5(Unity) Benchmark-Xperia Z2 SO-03F(Unity)
Benchmark-ARROWS NX F-01F(Unity) Benchmark-Google NEXUS 6(Unity)

Benchmark-Google NEXUS 5(Unity).Fix

 

 

2.2.3 Defold
Benchmark-iPhone7Plus(Defold) Benchmark-iPhone7Plus-2(Defold)
Benchmark-iPhone7(Defold) Benchmark-iPhone6S(Defold)
Benchmark-iPhone5(Defold) Benchmark-Xperia Z2 SO-03F(Defold)
Benchmark-ARROWS NX F-01F(Defold) Benchmark-Google NEXUS 6(Defold)

Benchmark-Google NEXUS 5(Defold)

 

 

2.2.4 Unreal Engine
Benchmark-iPhone7Plus(Unreal Engine) Benchmark-iPhone7Plus-2(Unreal Engine)
Benchmark-iPhone7(Unreal Engine) Benchmark-iPhone6S(Unreal Engine)
Benchmark-iPhone5(Unreal Engine) Benchmark-Xperia Z2 SO-03F(Unreal Engine)
Benchmark-Google NEXUS 6(Unreal Engine) Benchmark-Google NEXUS 5(Unreal Engine)

 

 

3.まとめと所感

2章のグラフから「Cocos2d-x」はFPSが30を下回るまでに比較的多くのスプライトが描画できていますが、「Unity」、「Defold」に比べて描画負荷による影響を受けやすい印象でした。特にiPhoneの「Cocos2d-x」に関するグラフを見ると描画負荷によるFPSの減少が早い段階で現れているのが分かります。一方、「Unity」と「Defold」ではFPSが下がり始めるまでは安定的にFPS60付近を維持できています。「Defold」は「Unity」以上に多くのスプライト描画ができることが多く、スプライトのアニメーション有り時の方がスコアが良いようでした(表4.2参照)。iPhone7Plusのスコアが低いのが気になりますが、2台検証した結果iPhone7に劣ってしまっているため、2Dが苦手なのかもしれないというデータが得られてしまいました。

以上のことから「Defold」は2Dゲームの開発に向いていると思われるかもしれませんが、開発者に提供されて1年ということもあり、まだまだ「Unity」に比べて細かいところに手が届いておらず日本語の情報がほとんどありません。「Defold」のコミュニティが発展していき情報がすぐに検索でヒットしたり、アプリ開発者には嬉しい「アセットストア」の利用ができるようになったり、「サードパーティ製SDK」の利用が容易になってくると、2Dゲーム開発エンジンとして広く利用されるようになっていくのではないでしょうか?

 

 

4.付録

表4.1、表4.2はベンチマークテスト用アプリケーションを5回実行して記録されたFPSの平均値が、58以上を維持できている状態のスプライト枚数の平均値を示しています(1度でも58未満になったら終了)。FPSを58以上とした理由としては、スマートフォン端末の状態によってはなんらかの原因によりスプライトを表示していない状況であったとしても下がってしまうことがあるためです。また、FPSが58に下がったとしてもアプリケーションの動作としてはカクツキ等はほぼ確認できないため問題ないと判断しています。

 

表4.1 FPSの平均値が58以上を維持している時に回転アニメーションしていないスプライト枚数の平均値

Cocos2d-x Unity Defold Unreal Engine
iPhone7Plus 568枚 2747 1945 167
iPhone7Plus-2 559枚 2708枚 2441枚 148枚
iPhone7 669 3648 4301 148
iPhone6S 969 2374 2681 259
iPhone5 1971 1256 1487 137
Google NEXUS 6 252 229 535 92
Google NEXUS 5 776 559 1170 74
Xperia Z2 SO-03F 931 710 1293 100
ARROWS NX F-01F 706 659 1235 No Data

 

 

表4.2 FPSの平均値が58以上を維持している時に回転アニメーション中のスプライト枚数の平均値

Cocos2d-x Unity Defold Unreal Engine
iPhone7Plus 520枚 744枚 2162 120
iPhone7Plus-2 549枚 545枚 1106枚 111枚
iPhone7 537枚 733枚 4247枚 102枚
iPhone6S 810 2844 3222 148
iPhone5 1531 997 1778 101
Google NEXUS 6 204 359 867 110
Google NEXUS 5 545 549 1106 111
Xperia Z2 SO-03F 677 698 1319 73
ARROWS NX F-01F 577 649 1219 No Data

written by GOODROID

LINEで送る
Pocket

おすすめ記事