2014.06.01

Web エンジニアが紹介する Unity 2D、その魅力 (2/2)


こんにちは、Web エンジニア T.Y. でございます。前回の Web エンジニアが紹介する Unity 2D、その魅力 (1/2) の後編として、今回は Unity 2D について行った簡単な性能評価についてご紹介します。

評価を行うに当たっては2013年11月に開催された 第7回テックヒルズ『Game Engines!!~どのゲームエンジンを選ぶ?~』 での講演で使用されたベンチマークプログラム を参考にさせていただきました。今回は他プラットフォームと比較をするべく、C++ で極力似通わせたアプリを Cocos2d-x 上に実装しました。回転する 394 x 397 の宇宙船の PNG イメージ(135KB)を次々に描画し、描画数と FPS の値の関連性を調査します。ただし今回の検証で初めて Cocos2d-x に触れたということもありますので、実装上至らない点もあるかと思いますがご容赦いただけると幸いです。

さて、今回の検証に使用した環境は以下の通りです。

  • Unity 4.3.4f1 (C#)
  • Cocos2d-x 3.0rc0 (C++)
  • iPhone5 (iOS7.1) および Xcode5.1 のデバッガ

iPhone 実機と Mac を USB ケーブルでつないで Xcode からアプリを起動し、下図のようにデバッガ(Debug gauges)で取得できる値を確認しました。

20140523_unity.001

その結果、描画したスプライト数と FPS の関係は下記グラフのようになりました。

20140523_unity.002

Unity2D が 150 枚程度で 60 fps をキープできなくなるのに対して Cocos2d-x はおよそ 200 枚近くまで残り、その後も 20 fps を切ったあたりで両者が重なるまで常に Unity2D を上回ったパフォーマンスを出しています。また、他のメトリクスについても検証中の値の変化幅を記録したところ、下表のようになりました。

20140523_unity.003

CPU 使用率、メモリ使用量、ファイルサイズいずれにおいても Cocos2d-x の方が性能面では優れているように見えます。特にファイルサイズの差が顕著に大きいというあたりは注意しておくべきと思います。

ただ一方で、定性的な評価としては Unity は Unity Editor が最初から同梱されておりかつマルチプラットフォームで動作する一方、Cocos2d-x は開発プラットフォームに合わせて個々でエディタを選択し別途インストールしなければならず、視覚的な操作でゲームを作るという点のとっつきやすさについては Unity の方が優れているように感じました。

とはいえ前述の通り Cocos2d-x に関しては今回の検証用に少し触った程度なので比較するアプリや印象にやや不正確な点があるかもしれません。今回は簡易的な検証というところで、参考程度にしていただけると幸いです。

そこで次世代システム研究室では Unity2D でも Cocos2d-x でも何でもやれる・やってみたい、こんな評価じゃ納得できない!という熱意あるスマホアプリエンジニアを絶賛募集中ですので、弊社で働くことに興味があるという方は 募集一覧 > スマホアプリエンジニア からご応募していただけると幸いです。