小規模の開発チームが果敢に挑戦!

 このセッションを行うのは、福岡を拠点とするゲーム開発会社・ガンバリオン。総勢73名という規模の会社だ。そして講演でフィーチャーされるタイトルは、『ワンピース アンリミテッドワールド R』。ニンテンドー3DS、Wii U、PlayStation Vita、PlayStation 3という、4機種に対応したマルチプラットフォーム対応ゲームである。そんなタイトルを、小規模な開発チームで、そして自社の内製ゲームエンジンで、いかに製作していったのか? という開発エピソードが、本セッションの趣旨となる。
 ちなみにセッションタイトルに“30~40人規模”とあるが、冒頭で紹介された開発チームの内訳は、プログラマー10名、デザイナー20名、プランナー5名、サウンド1名、という構成だ。

自社内製のエンジンでマルチタイトルに挑戦――ガンバリオンの小規模チーム大作戦!【CEDEC 2014】 _01
自社内製のエンジンでマルチタイトルに挑戦――ガンバリオンの小規模チーム大作戦!【CEDEC 2014】 _02
▲講師のふたり。左は石井氏、右は吉田氏。いずれもガンバリオンの重鎮だ。

内製ゲームエンジンについて

 講師のトップバッターとして登場したのは、開発部 テクニカルチーム・マネージャーの石井泰寛氏。内製ゲームエンジンや開発環境など、裏方の作業をしているチームのリーダーだ。石井氏により、まずは内製ゲームエンジンとはどういうものか、その詳細が説明された。
 そのエンジンは社内では、“JETエンジン”と呼ばれており、理由は速度を重視した設計だからとのこと。対応プラットフォームは、前出の『ワンピース アンリミテッドワールド R』の4機種。なお石井氏によると、Windows、iOS、Android、PlayStation 4に関しては、社内的には対応しているが、製品として出しているわけではないので、細かいチューニング等は行っていないそうだ。このエンジンで制作されたタイトルは、『ワンピース アンリミテッドクルーズ SP』と『ワンピース アンリミテッドワールド R』の2作となる。
 続いては個別のパートの話に移る。まずゲームエンジンのC++ライブラリだが、以下のようになっている。

C++ライブラリ
・描画システム
・モーション
・入出力
・メモリ管理
・エフェクト
・スクリプト

 C++ライブラリは、動作速度優先の設計で、シンプルな構造になっているとのこと。共通処理と、各プラットフォーム依存を吸収するための処理が、おもにここでなされる。シンプルゆえ規模的にもそれほど大きくはなく、多機能ではないようだ。

コマンドラインツール
・パラメータ
・アーカイブ
・モデル
・モーション

 コマンドラインツールは、いわゆるコンバーター。モデルとモーションコンバーターは、コンバート速度を重視して、トライ&エラーをくり返すので、C++で書いているとのこと。その他のツールはC#/pythonをメインで使用。DCCツールはMayaを使っている。

GUIツール
・オブジェクト配置
・パーティクル作成
・アクション設定
・カットシーン編集

 GUIツールについては、実際の開発画面もスライドで紹介されたが、残念ながら撮影不可。フィールドに赤いラインで敵を配置している画面や、演出用のカットシーンなどを見ることができた。ゲーム制作ではこのツールがメインになるそうだ。
 「けっこう要素を詰め込んで、メンテナンスコストを削減しています。最初は分けようと思ったんですけど、分けると管理に意外と手間がかかるため、ひとつにまとめました」(石井氏)。

 以上をまとめると、内製ゲームエンジンの概要は、“C++ライブラリと、その他のツール群で構成されたもの”と受け取れる。そして気になる開発コストだが、果たしていかほどなのか? 石井氏が示した資料は以下のとおりだ。実際にゲーム開発に関わる方にとっては、なかなか貴重なデータなのではないだろうか?

『ワンピース アンリミテッドクルーズ SP』
・システム 8人月(4人月はツール)
・描画システム 3人月(3DS最適化含む)

『ワンピース アンリミテッドワールド R』
・システム 2人月
・描画システム 2人月
・シェーダー、エフェクト等 18人月(4機種最適化含む)

自社内製のエンジンでマルチタイトルに挑戦――ガンバリオンの小規模チーム大作戦!【CEDEC 2014】 _03
▲ゲーム開発の専門用語なども、フリップでわかりやすく解説された。

エンジンを作った理由とその効果

 テーマが変わり、講師もここでバトンタッチ。登場したのは、開発部 取締役/開発担当役員の吉田秀治氏。4~5年前まではディレクター兼プログラマで、現在はディレクターと開発管理を担当している。ここで吉田氏がまず語ってくれたのは、そもそもどういった経緯で内製ゲームエンジンが作られたかというなりゆきだ。
 発端は『ワンピース アンリミテッドクルーズ SP』の開発。これはWiiからニンテンドー3DSへの移植だったが、それまで使っていたエンジンでは負荷が足りないことが判明した。エンジンをもう一度作り直す必要があり、それが“JETエンジン”のスタートにつながることとなる。設計をするにあたっては、将来を見越して軽さとシンプルさをコンセプトとして開発を開始。この時点で、マルチプラットフォーム対応は想定していたと吉田氏はいう。

 そして『ワンピース アンリミテッドワールド R』だ。「このタイトルは私たちも想定外でして、3DS以外にもWii UやPS3、Vitaの話がきました。据え置きもやりたかったので乗ったのですが、初めてのWii UやPS3で、さすがにハードルが高く、商用エンジンの導入を検討したんです。しかしこの時点では、全対応のエンジンは存在しませんでした」(吉田氏)。
 そうした事情で、実際に作るしかない状況となる。吉田氏いわく、「もともと作るつもりだったので、マルチ用に堂々と作れるようになって、ラッキーという感じもありました」とのこと。しかし、吉田氏は内製ゲームエンジンに決して固執はしない。「重要なのは、私たちはいつも、ほかのエンジンも検討していますということ。そのときそのときに合わせてやっていこうというのが、選択肢としてあります」(吉田氏)。
 作った理由に続いては、その効果に関してだ。吉田氏の資料によると、効果および欠点は以下のようになっている。

効果
・作成したプログラマが社内にいるので、カスタマイズしやすく融通がきく
・不具合対応などが早い
・新しいプラットフォームへの対応が早い
・エンジンの規模も小さく教育の手間があまりない。また今後も同じものを使うため学習時間が無駄にならない
・多くの場合、ミドルウェアとの相性もよくすぐに組み込める

欠点
・ゲームエンジンを作成するためのコストが必要
・商用エンジンと比べるとグラフィックやツール類で機能が劣る。そのためゲームが動くまでが遅い傾向
・新しいプラットフォームには別途対応を行う必要
・他社へのアセットの発注を行うとプレビューなどがたいへん
・バグは出やすいかもしれない?

 バグの“?”については少し補足がいる。内製エンジンなのでもちろんバグは出やすいとのことだが、バグの原因が探しやすいというのが逆に利点でもあるそうだ。このあたりは開発ソフトの規模によっても違ってくる部分ゆえに、“?”となるのだ。

 続いてはコスト削減についての話題。吉田氏はポイントを3つ挙げて解説した。詳細を以下に紹介する。

【1】開発していないプラットフォームはサポートを止める
社内専用のため、開発していないプラットフォームの対応は必要ない。ゆえにサポートコストがかからない。そして1回動いたプラットフォームは、半年後などに動かしたいときにも、再対応の手間は意外と小さい。
【2】タイトルで実際に使用する機能を優先して拡張
使わない機能はあと回しにして、必要な機能を拡張。
【3】高速化は必要な箇所、必要なときのみ
開発しているタイトルが動けばオーケー。ただボトルネックになりやすい描画まわりに関しては、最初から最適化を行っている。

 以上、エンジンの効果などを説明したが、内製ゲームエンジンはそもそも、会社のビジョンとも深い関わりがあると吉田氏は語る。「会社のビジョンとして、“永く愛されるゲームを作る会社”を掲げています。それを実現するにあたって、「操作して気持ちいい」、「ストレスのないタイトル」を念頭に入れています。ですので、軽いエンジンであるとか、そういうところも設計するにあたっての重要なポイントとして捉えております」(吉田氏)。そして吉田氏は、最後に効果のまとめとして、以下の4点を挙げてくれた。

効果のまとめ
・会社のビジョンと直結したエンジンが作れる
・社内にノウハウが蓄積される
・スタッフの教育・ツール習得が楽
・プログラマのモチベーションが上がる

作成した際に出た問題と解決法

 ここで石井氏が再び登場。具体的に開発現場でどんなことが起こったのかが語られた。まずは開発方針についてだが、具体的には以下のようになる。

開発方針
・ゲームシステムは全プラットフォーム共通
・プラットフォーム毎に見た目をよくする方針
・開発は基本的にWindows版で行う

 言葉にすると簡単ではあるが、実際の作業は苦労の連続だったようだ。ここからは個別に概要を紹介しよう。

処理速度の違いへの対処
・CPUコストについて→実際に負荷が高いものを中心に高速化。
・フレームレートについて→処理・描画ともに30FPSで統一。見た目をよくし、キャラクターを多く出すといったことを優先。
・スクリプトについて→スクリプトはC++ソースにコンバートして高速化。
・カットシーンについて→キャラクターやエフェクトをたくさん出したいが、そのままでは最適化がたいへんなので、ムービーで実装。

見た目の違い
・グラフィックはハイモデル(PS3/Wii U)→ミドルモデル(PS Vita)→ローモデル(3DS)に分類。最初にハイポリゴンのモデルを作って、各プラットフォームに向けてリダクション。
・キャラの例/ポリゴン数は12595→7006→3710
・フィールドステージの例/ポリゴン数は341497→150306→66275

自社内製のエンジンでマルチタイトルに挑戦――ガンバリオンの小規模チーム大作戦!【CEDEC 2014】 _04
▲実際は画面とともに解説された。掲載できないのが残念。

UIの違い
・仕様として、基本は1画面で遊べる設計。
・たとえばキャラのステータスを見る場合、ニンテンドー3DSなら上にステータス数値、下にキャラ絵。Vitaは1画面の左側にキャラ絵、右側にステータス数値となっている。パーツは同じで並びだけ変えるという対応方法。
・テクスチャに関しては、ニンテンドー3DSは、他プラットフォームの画像を縮小したものを使用。
・タッチ操作は使わず、基本はボタン操作を前提とした設計。

今後のエンジン、そしてガンバリオンの展開

 講演のシメは吉田氏で、今後の展開や総括を語ってくれた。まず自社エンジン“JET”については、「2014年11月13日発売予定の、『ONEPIECE 超グランドバトル!X』でももちろん使用しております」と力強くコメント。ほかに未発表タイトルも2本開発中で、iOS/Androidや、PS4についても研究中だそうだ。内製のエンジンに関しては、もちろんいいところも悪いところも両方あるだろうが、最後に吉田氏は、こうアドバイスを語る。
 「内製にこだわらず、商用エンジンとの使い分けが重要だと思ってます。便利なものは使用するという形で、どんなタイトルを開発するかによって変えていくことが重要ではないかと思いますね。またなにより、自社の強みは何かということを、キチンと考えていく必要があるでしょう。ビジュアルを優先するのか、レスポンスを優先するのか、どのプラットフォームを優先するのか。開発の規模や期間を含め、いろんな考えかたがあると思います。いまだけでなく、将来に向けて現場・会社ともにどのような未来を描くかを考えていくと、いろいろな選択が広がっていくはずです」(吉田氏)。

 少数精鋭で、なおかつ自社のゲームエンジンも立ち上げたガンバリオン。今回のセッション内容は、多くのゲーム開発会社に刺激を与えたのではないだろうか。内製ゲームエンジンは、是非両論あるとは思われるが、ゲーム開発の現場におけるひとつの大きな可能性として、とても魅力的に思える。今後も同社の積極的な展開からは、目が離せない。