2Dエンジン活用における傾向と対策」が開催されました。本セッションでは、2Dゲームを作成するために使いやすいゲームエンジンはどれか、という部分に焦点を当て、開発ツールとしての使いやすさ、完成したゲームの処理速度などを多面的に比較した情報が語られました。ウェブテクノロジと言えば、「OPTPiX」シリーズを始めとしたゲーム開発ツールメーカーとして知られています。本セッションはそれらをアピールするものではなく、純粋に世にある2Dゲーム向けエンジンを紹介・解説するという内容になっています。2DゲームエンジンはUnityとCocos2d-xの2強状態講演の序盤は東田氏より、2Dゲームエンジンの現状が紹介されました。2Dゲームエンジンを活用することで、マルチプラットフォーム対応を容易にできることや、OpenGL活用による描画処理の高速化、定型処理にかかる作業の時間節約などのメリットが得られます。これらのメリットを享受したい方への情報、というのが今回の話題の前提です。本セッションでは3Dゲームエンジンの情報は含まれませんが、Unityは2Dゲーム制作現場でも広く使われていることから、紹介に加えられています。そのUnityについてです。プログラムを極力書かなくて済むようにしようという設計思想から、独自のUnityエディタが用意されています。様々な有償・無償のプラグインが公開されているアセットストアを活用できるのもメリットです。現存するほとんどのプラットフォームに対応しています。日本語の情報が多く、日本支社からのサポートが受けられるという点も安心感があります。Unityは充実したドキュメントとアセットにより安心感が高い次はCocos2d-x。ここ1年で急速に注目度が上がっているもので、オープンソースで無償公開されているのが特徴です。ツールとしてはシンプルで、ゲーム開発経験者にはわかりやすいものになっています。X向けの開発も可能です。最新バージョンのv3ではC++11のモダンなスタイルに改められたことで、v2で書かれたソースコードは手を加えないとコンパイルが通りません。Unityに比べると日本語情報が少なく、v3に関する書籍がまだ少ないことが気がかりです。SDKが紹介されました。採用例としては、UnityとCocos2d-xの採用が頭ひとつ抜けている状況にあるため、以後はこの2つを比較・紹介する内容となります。他にも発祥や用途が異なる2Dゲームエンジンがあります■端末とエンジンによるパフォーマンスの差をチェック次に、テストアプリでスプライト描画の負荷をベンチマークした結果が紹介されました。テストアプリは、画面上にスプライトを増やしていく描画負荷を計測する基本アプリと、複数テクスチャでアニメーションするキャラクターを表示するゲーム風アプリの2種類が用意されました。検証端末はAndroidが2機種、iPhoneが3機種。5(LG-D821)、iPhoneは4、4S、5の3台で、現在でもユーザーがいるであろう下限の機種から選定されています。v3とUnityの描画性能差を見るものです。v3の方が高速という結果が出ています。5での結果がかなり悪くなっています。特定端末やプラットフォームで開発していると、別端末とのパフォーマンスの差で手戻りになりやすくなります。v3で導入された自動バッチと、v2でのバッチなしを比べています。iPhoneではGPUのPowerVRの特性のためか、バッチなしでも高い性能が出せるようです。5では基本アプリで大幅なパフォーマンス向上が見られましたが、ゲーム風アプリでは差はかなり小さくなります。5ともにv3の自動バッチを上回るパフォーマンスが出せることも確認されました。これはピーク性能と考えるべきで、また手動でバッチを組む手間も発生します。自動バッチはパフォーマンスアップに必ず寄与するわけではないので注意続いては機種によるスプライト描画性能比較です。新旧機種間のパフォーマンス差が激しく、iPhoneでは機種ごとに2~4倍の差が見られます。4ではUnityが一番良いパフォーマンスを示すなど、機種ごとに傾向も異なります。Unityでは、テクスチャが増えたときのパフォーマンス低下が若干大きいという傾向も見られます。いずれにしても、ベンチマークは条件によって結果が大きく異なるので、複数の条件でテストすることが推奨されます。端末性能差は非常に大きく、ツールによっても差の出方に違いがありますバッチの有無でパフォーマンスが変化する原因は、GPUに対し描画開始の命令を出す「ドローコール」にあります。ドローコールが増えると描画の負荷が高くなるため、これを下げるための努力が求められます。2枚のテクスチャを交互に使って4枚のスプライトを描画する場合、4回のドローコールが発生します。この描画順を変更し、同じテクスチャをつかったものを1度にまとめて描画することでドローコールを減らす、という最適化処理がバッチングです。テクスチャの枚数が増えるとドローコールが増大し、パフォーマンスが大幅に下がるため、バッチングが重要になります。スプライト同士が重なっている場合は描画順を守らないと破綻するため、バッチングが使えません。その場合はテクスチャを1つにパッキングするなどの方法もあります。バッチングはパフォーマンス向上に有効ながら、うまく活用できない状況もありえます■2Dゲーム開発における8つのTips続いては小高氏より、2Dゲーム開発における8つのTipsが紹介されました。1つ目はUnityにおける適切な画像リソースの使い方について。UnityはPSDファイルなどの画像を簡単に読み込んで表示してくれるものの、性能や画質の低下を招きます。.pvrコンテナにダイレクトカラー画像を格納することで、これらの問題を回避できるのに加え、ビルドの高速化というメリットも得られます。2つ目はCocos2d-xにおける画像の扱い方。Cocos2d-xはフルカラーPNGを使えるものの重いため、こちらもUnityと同様に.pvrコンテナにダイレクトカラー画像を格納する方法が有効です。Unity、Cocos2d-xともに.pvrコンテナにダイレクトカラー画像を格納する方法が有効です3つ目は、2DゲームでPVRTCやETCを使う際の注意点について。これらは3Dテクスチャ用に開発された高圧縮フォーマットですが、写真のような画像は綺麗に圧縮できるものの、UIパーツやアニメなどくっきりした画像は輪郭がぼやけたり、ブロックノイズが目立ったりします。PVRTCやETCは使用する画像の種類に注意が必要です4つ目は、Unityで.pvrファイルを使用する際の注意点について。Unityエディタ上で.pvrファイルを追加すると、Spriteの作成ができません。スクリプトでロードすれば、スプライトとして使えます。Unityで.pvrファイルを使用する際はスクリプトでロードしましょう5つ目は、スマートフォン向けゲーム開発における機種サポート範囲について。先のベンチマーク結果からもわかるとおり、スマートフォンの世代間における性能差は非常に大きいため、低性能機に合わせたゲーム設計を求められ、工数が増大してしまうことがあります。Unityを実行した機種の情報を見ると、Androidは4以上の端末が9割以上となっており、ゲームアプリであればiOS7以降、Android4以降といった割り切りをすべきかもしれません。機種サポートの割り切りの判断は、端末のシェアを参考に6つ目は、Androidの画面解像度の違いについて。古いものだと320×480、最新では1,600×2,560といったものもあります。これらのアスペクト比を見ると、ほとんどが16:9と16:10の間にあるので、ターゲットをこの辺りに持ってくるのが適切です。5以降の約16:9が共存しています。4S以前のサポートをやめる判断をすれば、Androidと同じアスペクト比の中に含まれ、マルチプラットフォーム対応が容易になります。4と4Sは、今年5月時点でまだ23%存在するというデータもありますので、現時点では判断が難しいところです。Android端末の画面解像度は、ほとんどが16:9から16:10の間に収まっています7つ目は、カタログスペックと実測値の乖離です。SLが上なのにも関わらず、ベンチマークでは劣るという結果が出ています。省電力モードが切れないのが原因ではないか、と思われますが、カタログスペックと実際の性能が必ずしも比例しないという点は覚えておくべきでしょう。カタログスペックとベンチマーク結果が乖離することもあります8つ目はプロファイラについて。ウェブテクノロジが提供するSpriteStudioのサポートによく寄せられる「描画性能が出ない」という問い合わせの中で、プロファイラを使っていない方が意外と多いのだそうです。プロファイラを使い、どこにボトルネックがあるのかを見極めるのが大切です。Profilerの4つが紹介されています。プロファイラを使えばボトルネックを見つけ出すのが容易になります最後に講演の主旨である「手戻りを起こさないためのポイント」について、「スマートフォンは機種による性能差が大きい」、「機種による性能差に比べるとエンジンによる性能差は小さいので、目的に合ったエンジンを選ぶ」、「ベンチマークは重要だがピーク値に惑わされないこと」、「適切な画像リソースを使う」、「プロファイラを使う」という5点でまとめられました。スマートフォンの性能向上により、モバイルでの3Dコンテンツの進化が目覚ましい昨今ですが、遊びの幅を考えれば2Dも無視はできません。ゲームのプレイヤー側の筆者としては、端末が進化した今だからこそできる、こだわりの2Dアニメーションを盛り込んだゲームの登場にも期待したいところです。プレスリリーススタッフ募集当サイトに掲載の記事・見出し・写真・画像の無断転載を禁じます。