【セミナーリポート】あなたの最適な開発環境はUnity?それとも…第7回テックヒルズ「Game Engines!!どのゲームエンジンを選ぶ?」開催!

マルチプラットフォーム向け3Dゲーム開発環境「Unity」や無料の2Dゲーム開発フレームワーク「cocos2d-x」「enchant.js」など、多くのモバイル向けゲームエンジンがひしめくなか、何を使えばいいのか、指針が欲しいというのが開発者の本音だろう。そんな声に応じるかのように11月12日(火)夜、クルーズ<2138>主催の技術勉強会・第7回テックヒルズ「Game Engines!!~どのゲームエンジンを選ぶ?~」が六本木ヒルズで開催された。定員を当初の300名から570名に増席して実施するなど関心の高さがうかがえる。ユニティ・テクノロジーズ・ジャパン合同会社の安藤圭吾氏をはじめ、それぞれのエンジンに精通する登壇者が講演。またAimingの牧野克俊氏が、Unityで製作した『幻塔戦記グリフォン』の開発裏話を話すなど濃密な講演が続き、最後にテックヒルズの技術局長であるクルーズの浦田祐輝氏が6つのエンジンを比較・分析した。
 

第1セッション
「Unity2DとnewGUIについて」ユニティ・テクノロジーズ・ジャパン合同会社の安藤氏

■ユニティ・安藤氏が「Unity 2D」の魅力を力説

まず、ユニティ・テクノロジーズ・ジャパン合同会社のディベロッパーリレーションエンジニアである安藤圭吾氏が登壇。Unityの最新バージョン「4.3」(11月13日に公開)で強化された2D開発機能と、新しいUnityのGUI(グラフィカルユーザインタフェース)システム「uGUI」について紹介した。

安藤氏によれば、これまでUnityは3D開発機能に強みを持っていたが、バージョン4.3では2Dに特化した物理エンジン「Box2D」を搭載し、コライダー(衝突判定処理)も2Dに特化したものを使用できるという。2Dと3Dの物理エンジンは互いに影響を受けないため、同時に使用可能とのこと。2D描画に特化したスプライト(動く図形の高速表示手法:図形と固定の背景を別に作成し、ハードウェア上で合成することで、表示を高速化する)機能も追加されたとのこと。スプライトのアニメーションも描画でき、今後、2Dに対応したアセットも出てくる予定と説明した。
 

「uGUI」は、8月開催のUnity開発者向け公式カンファレンス「Unite2013」で示された内容が公開できる全てで、現在はテスト段階とのこと。ベータ版の前のアルファ段階で、リリースは2~4ヶ月後とのスケジュールを話した。


■2Dのスプライト機能でGUI作成は「お勧めしない」

なお「uGUI」が出る前に、2D開発用のスプライト機能でGUIを作るのはお勧めしない、と注意喚起をした。2D開発用のスプライト機能がゲームに特化しており、GUIのための設定がないためという。「新しいuGUIではスプライト(位置付けはスプライトだが名称が変わるかもしれない、とのこと)がGUIに特化して作られている」「uGUIが出るまでは『NGUI』を使えば混乱は少ないかもしれない」と述べた。(→講演資料
 

第2セッション
「Unityを使ったゲーム『幻塔戦記グリフォン』がどのように作られているか」Aimingの牧野氏

■牧野氏が語る『幻塔戦記グリフォン』の開発の裏側

次にAimingのリードソフトウェアエンジニアである牧野克俊氏が、Unityで作成したゲーム『幻塔戦記グリフォン』の開発の裏側を語った。

牧野氏によると、『グリフォン』はiOS/Androidスマホに対応した、オンラインのベルトスクロールアクションゲームを目指して開発がスタートし、製作期間は1年2~3カ月とのこと。メンバーはMMORPGやブラウザゲームの開発経験者を中心に企画6人、プログラマ9人(クライアント5人、サーバー4人)、グラフィッカー10人+αという。安藤氏の個人的な経験として「ちゃんとしたオンラインゲームの製作としては期間は短く、人員も少数だった」と語った。

グラフィック部分において、開発当初に決めたルールは「ドローコール(描画の呼び出し)回数の目安は1画面50前後」「テクスチャは可能な限り小さく」など。プレイヤーキャラクターは、キャラメイキングが可能な人体パーツをプログラムで結合しており、ポリゴン数はだいたい2000ぐらいという。敵はボスのポリゴン数が約3000、ザコは500~1500で一度に十数体出現するとのこと。背景のポリゴンは「横から見るゲームなので作りこまれておらず、基本的に板か半分(片面)だけ」と明かした。エフェクトは基本的にUnityのパーティクルを使って開発、最大4人プレイ可能で敵も多いため、それなりの数が必要だったという。
 
▲『グリフォン』のゲーム画面を説明する牧野氏

グラフィック面で単純な描画速度は問題なかったが、「プレイヤーキャラの構築は毎回生成し直すため厳しかった」と振り返る。プレイヤーキャラはパーツごとにキャラメイキング可能で、どんな装備か分からないため、ステージに入るたびにプログラムで合成すると説明。基本は4人、対戦だと8人分、合成する必要があるため負荷がかかるという。また、ポリゴン数が多いとスキニング(表面処理)の負荷も高く、ポリゴン数1000のキャラ3体と3000のキャラ1体では、3000のキャラ1体の方が全体に与える影響は大きい印象があったとのこと。エフェクトの読み込みタイミングも、初めてエフェクトが発生するときに読み込んでいるが、改善の余地があると話していた。

メモリ使用量は200MB程度を目安とした。ガベージコレクト(不要になったメモリ領域を自動的に解放する機能)の処理時間は、プレイ中は問題ないが、シーン切り替え時には結構かかるという。
 

■「アセットバンドル」の再設計を要望

UI(ユーザインタフェース)はNGUIを採用。端末によって画面サイズが違うので、縦比率を基準にして比率維持でサイズを調整したという。サイズの違いで重なる部分に関しては、グラフィッカーにリソースを別途お願いしているとのこと。まだダイナミックフォントが使えないタイミングだったため、日本語はビットマップフォントで表現している。

NGUIの使用感は「問題は無くてまあまあ良いが、ほかにもっと良いものがあるんじゃないか」というもの。ポップアップなどパネル間の優先順位付けが複雑で「職人芸が必要」と指摘。ビットマップフォントも文字数が足りないという。チャットや掲示板での自由入力以外では問題ないが「チャットではユーザーが想定外の文字を顔文字に使ったりするので厳しい。そのうちダイナミックフォントにしたい」と話していた。
 
ゲームリソースのダウンロードは、アセットバンドル(アプリに含めない外部ファイルの集合体で実行時にサーバから読み込む)を使用。現在の総ファイル数は2000と「スマホでそんなにダウンロードさせるなよ、という声が聞こえてきそう」と笑いながら指摘。特に背景ファイルが1~2MBあるためかなり重いという。ダウンロード時間を短くするため分割など工夫はしてるが、数が多さがネックと漏らす。

最後にUnityについての要望をいくつか述べた。「バージョンごとの互換性が突然無くなる」「キャッシュも特定のキャッシュだけを消すことができず全部消さないといけない」点などアセットバンドルの再設計をしてもらいたいとのことだ。(→講演資料
 

第3セッション
「cocos2d-xおよび開発ツールについて」 TKS2の清水氏

■「cocos2d-x」の長所は「無償」「オープン」「マルチPF開発」

休憩を挟んだのち、オープンソース(MITライセンス)の2Dゲーム開発フレームワーク「cocos2d-x」について、日本cocos2d-xユーザー会代表であるTKS2代表取締役の清水友晶氏が説明した。

Unityが3Dアプリをつくるためのツールであるように、cocos2d-xは2Dゲーム用のフレームワークと説明。iOS/Android、Windows/Macを含む10種類のマルチプラットフォーム開発ができる点が最大の特徴で、Zynga、グリーなど多くの企業が採用しているという。ちなみにiOSとAndroidのマルチプラットフォーム開発について、cocos2d-xの開発元はiOSメインの開発(Androidはたまに確認)という手順を推奨しているようだが、清水氏は並行開発を推奨していた。

cocos2d-xのメリットとして「無償」「オープンソースなのでブラックボックス化されていない」「マルチプラットフォーム開発が可能」などを挙げた。一方、デメリットとしてネイティブ連携、とりわけAndroidのJNI(Javaで記述されたプログラムと実際にハードウェアで動くネイティブコードを連携するための仕組み)呼び出しなどが面倒な点を挙げた。また、画面構成やアニメーションの作成に時間がかかる(コーディングが必要)ため、この点は別途エディタを用意する必要があるという。

 

■エディタ開発が「今熱い」

そのcocos2d-x用のUIエディタは、ここ最近リリースが相次いでおり、「いま熱い」分野と表現する。一番よく使われているとされる「CocosBuilder」は無償のオープンソースで、Mac上で操作可能。多くの企業で利用されており、JavaScriptエディタ機能が強みと話す。なお、現在開発が停止。開発者が移籍した企業が後継の「SpriteBuilder」(オープンソース)を開発しているが、javaスクリプトエディタ機能がない点などを指摘した。

一番新しいエディタは公式がサポートしている「CocoStudio」とのこと。無償だが、クローズで開発されており、開発速度が遅い点が気になるという。公式であるため「将来的にメインのエディタになるのかな」との見通しを示した。(→講演資料
 
 

第4セッション
「enchant.jsの野望 9分コーディングライブ」ユビキタスエンターテインメントの清水氏

■会場爆笑のライブコーディング

続いて、ユビキタスエンターテインメント社長兼CEOの清水亮氏が登壇し、同社の製作したゲーム開発フレームワーク「enchant.js」を紹介した。enchant.jsもオープンソース (MITライセンス) で、無料で利用可能。2011年の公開後、3000以上のゲームが作られており、様々なプラグインが出ているという。HTMLアプリをPCで作ってPCで試せ、スマホでもちゃんと動かせるHTML5/JavaScriptのフレームワークであることなど特徴をざっと説明。その後、会場で「9分でゲームを完成させる」というライブコーディング(即興プログラミング実演)を開始、会場の爆笑を誘う実況中継をしながら、enchant.jsの魅力を語った。

エディタはあえて作っていないという。「エディタ作るとさぼるじゃないですか。プログラムを書く楽しさを学んでもらいたい。慣れると中途半端にエディタ使うより早いんじゃないか、という考え方でやっている」と理由を話していた。「enchant.jsのUIは半透明なので動作確認しながらコードがかける」「さすがニコニコ動画のプロトタイプをつくった会社だね」と話し、会場の笑いを誘う場面もあった。
 
▲会場を沸かせながらライブコーディングを実況する清水氏(中央)

次に、enchant.jsのビジュアル言語版である「MOONBlock」を使い、清水氏自ら「90秒でのゲーム作成」を実演。フローチャート図のようなものを埋めていく操作で、「制限時間内にハートを集めて得点を稼ぐ」という内容の簡単なゲームを作り上げた。
 

▲90秒でゲーム作成中の清水氏

▲MOONBlockのゲーム作成画面
 

■enchant.jsは「Unityやcocos2d-xと全然違う」 目指すは「人類総プログラマー化」

enchant.jsの哲学と目指すものは、「Unityやcocos2d-xと全然違う」と主張する。「本当は商業作品をつくってほしいとは考えていない。楽しく、手早く、秒速でアイデアを形にするためのもの」とのこと。なお、任天堂の公式サードパーティ向けに配布しており、WiiリモコンやMiiverseに対応している。
 

 
▲Miiverse対応の複数人で楽しめるシューティング

一方、「enchantMOON」というMOONBlockを組み込んだenchant.jsベースのプログラム端末も紹介した。「プログラムしなくてもプログラムが書ける。指とペンだけでハイパーリンクが作れるようになっていて、MOONBlockを開くとその操作がどのようなプログラムになっているかわかる」と説明。「我々の真の目的は、ゲームを作ること自体を面白くすること、そして、いまの小学生が大人になるころには、みなが日本語をしゃべるようにプログラム言語が使えるようになること」と語っていた。
 

第5セッション
「Playgroundの描画ロジック」「マルチPF対応ゲームエンジン内のAndroid対応」
KLabのピコア氏、中澤氏

■「Playground」の描画ロジック「古い端末でも60fpsをなるべく保つように」

次に、KLab<3656>のR&D部門にあたるKラボラトリーのロマン・ピコア氏と中澤慧氏が登壇。まずロマン・ピコア氏が、KLabが2011年秋から独自開発した2D/2.5D向けゲームエンジン「Playground」について簡単に紹介。その後、Playground内の描画の仕組み、とりわけ古い端末でも60fpsをなるべく保つような設定を実装している点を解説した。

Playgroundは、2D特化型のマルチプラットフォーム(Win32/iOS/Android対応)エンジン。レンダリングの自動最適化の機能がある半面、3D用の機能はなく、Unityのように多くのツールセットや自由な機能拡張性もないとのこと。少人数開発用であり、大規模チームで開発する巨大フレームワークではないと説明した。(→講演資料
 

描画については、ハードウェアの負担をできるだけ減らすため、複数の命令をバッチ(複数データをまとめて一括処理)にして描画回数を減らす手法を紹介。Playgroundではさらに、速度を保つため、キャッシュを使い、状態が変更した箇所だけを再計算するという最適化を実施しているという。

バッチ処理について他のエンジンとも比較。Playgroundではエンジンが自動的に最適化する一方、cocos2d-xはバッチは可能だがプログラマの責任になるという。Unityでは、Playgroundと同じ処理である「動いているモデル」のバッチ処理はUnityで、「動かないモデル」のバッチ処理は有料の「Unity Pro」で実現できているとのこと。今後、Unityの新バージョンで2D機能が使いやすくなるため、「Playgroundと同じ良さになるだろう」と語った。(→講演資料


■Android端末対応は「スピリチュアルやね…」 端末差による音ズレに四苦八苦

中澤氏はPlaygroundでの開発を通じて見えたAndroid対応の難しさについて、サウンドの視点から説明した。Android端末はCPU、グラフィックス、サウンドなどチップセットが多様。加えて、多くのOSバージョンと端末ベンダー固有のドライバがあるため、複数デバイスでテストする必要があると指摘。テストを通じ、サウンド重視のモバイルゲーム設計において見えてきたものを解説した。

通常、システムクロックを基準としてゲームを実装するのが普通だが、この実装だと音ズレが激しくなり、端末間で10フレームくらいの差が出てくるという。原因として考えられるのがOSや端末のサウンドチップの差といい、某ゲームの登場人物の台詞を借用してAndroid環境を「スピリチュアルやね。。」と語った。
 

 

端末とOSバージョンの組み合わせ、 チップセットなど全パターン網羅するのは基本的に無理筋で、全体のズレを許容した上で最善を求めるのが現実策という。「ゲームをしていて許せない誤差はジッタ(ゆらぎ)」 と考え、サウンド再生時間とシステムクロックの情報をブレンドして「ゲームとして都合の良い、一貫性のあるタイムスタンプ」を生成するなどジッタの低減策を投入し、サウンド起因のタイムスタンプ差を 1フレーム以下に収めたという。より広範囲の端末に対応するためサウンドライブラリを改修していくほか、 Android 4.4の新機能を利用してサウンド出力時間差をある程度把握し、改善に活かせないか調査中とのこと。(→講演資料
 

第6セッション
「次世代ゲームエンジン比較」 クルーズの浦田氏

■浦田氏の目利き、「2Dはcocos2d-x」「3DはUnity一択」

最後にクルーズのUnity統括部ディレクターである浦田祐輝氏が、cocos2d-x、Unity、enchant.js、coronaSDK、ProjectAnarchy、UnrealEngineの6つのエンジンを次世代ゲームエンジンとして、使用料や対応言語、パフォーマンスに関して分析・比較を実施し、それぞれの長所と短所をまとめた。

浦田氏の各エンジンへの評価は以下の通り。
cocos2d-x:マルチプラットフォーム展開のコストも少なく、2Dゲームエンジンとしてパフォーマンスも良い。だが、まだ情報が少なく、課金実装などOSごとに異なる部分を知っておく必要がある。
Unity:カスタマイズ性が高く、情報が多いが、(新バージョンが出る前の)現時点では2D作成のパフォーマンスが比較的高くない。
enchant.js:ゲーム製作初心者にとって分かりやすく、現在web開発をしている人にとっては慣れているHTML5が使える。一方、ネイティブアプリとして吐き出されないので、App StoreやGoogle Playに出す場合にアプリとしての「ガワ」作成の作業が必要
coronaSDK:付属のシミュレーターを使えば、ビルドしないでも、すぐに実装したものが結果として出てくる。昔からあるLua言語での開発。ライトゲームの作成に向いているが、ツールなど少なく大規模開発には向いていない。
ProjectAnarchy:対応OSはWindowsのみで情報が少ないが、Unityに似た操作感。3Dゲームのエンジンでは珍しく無料でアニーメーションSDKなど使用できる。
UnrealEngine:「Unrealシリーズ」というFPSを作成するためにつくられたエンジンでハイパフォーマンス。習得が大変で、初期コストが 99ドル、アプリが5万ドル以上売れると毎回25%の手数料支払う必要があるなど、企業で使うならコスト面が気になる。
 
▼価格

▼実装言語

▼CPU負荷率

▼レンダリング(スプライト数)

総評として、2Dアニメーションに精細さを求めるのであれば、2D用のエンジン、「特にcocos2d-xをお勧めする」とのこと。3Dゲームはコストだけみると Anarchyも捨てがたいが、対応環境がWindowsに限られているということを考えると、難易度の高い作業部分を補えている「Unity一択」とみていた。
 

■大切なのは「制作するゲームのニーズに合わせて適切に選定」

もっともそれぞれのエンジンの特性を踏まえた選択が必要と付け加えた。企業での開発やチーム開発の場合はチーム開発ツールに対応しやすいもの、個人開発の場合は日本語でのサポートが多いものを選択することを推奨。制作するゲームのニーズに合わせて適切に選定する必要があると説明した。(→講演資料


※なお、クルーズの浦田氏には後日、単独インタビューを実施し、ゲームエンジンの比較と選択についてより詳細な意見を語ってもらう予定だ。記事化を楽しみに待っていてもらいたい。(11月25日追記:インタビュー記事へのリンク
 

▲会場は盛況だった
 
クルーズ株式会社
http://crooz.co.jp/

会社情報

会社名
クルーズ株式会社
設立
2001年5月
代表者
代表取締役社長 小渕 宏二
決算期
3月
直近業績
売上高140億円、営業利益6億4400万円、経常利益6億2800万円、最終利益2億5400万円(2023年3月期)
上場区分
東証スタンダード
証券コード
2138
企業データを見る
株式会社UEI

会社情報

会社名
株式会社UEI
設立
2003年8月
企業データを見る