ゲーム開発にかかわるすべての人に快適な環境を提供するために
続いて登壇した能登氏は、ngCoreで利用するライブラリおよび開発ツールについて紹介。DeNAでは、これまで提供してきたライブラリ「ngGo」と開発ツール「ngBuilder」を1つに統合し、「ngGoBuilder」として提供するために準備を進めているという。
ngGoは、さまざまなタイプのゲーム開発で使える機能を備えている。例えば、レイヤー別にスクロール画像をセットできる機能を使えば、横スクロールでキャラクターと手前の背景、後ろの背景などが別々に(多段で)動いていくようなゲームを効率的に開発可能だ。また、スマートフォンの実機上で、任意のシーンにすぐ移動してデバッグしたり、ユニットテストを動かせるような機能も提供している。
一方、ngBuilderは、iOSやAndroidのシミュレータ、プロファイラなどを提供。それぞれ、ngCoreによるゲーム開発を便利にするライブラリ/ツール群として、リリース以来、多くのゲーム開発者に利用されてきた。
しかし、ngCoreの開発環境全体として改善すべき点も出てきたと、能登氏は説明する。
「例えば、ngCore自体の再起動にかかる時間が長いため、イテレーションの際にストレスを感じるという声があった。また、ngCoreのセットアップも結構難しい。こうした中で、ngBuilder、ngGoの開発チームでは、今までとは違った視点で改善に取り組む必要があると感じるようになった」
今までとは違った視点とは、「ゲームを作る過程をもっと楽しいものにする」というものだ。特にゲーム開発では、通常のWebアプリケーションなどに比べて、アニメーターやグラフィックデザイナー、レベルデザイナー(ステージごとの難易度、強さなどをデザインする役割)、企画者など、エンジニア以外の関係者も多い。そういった人たちの作業を手助けするツールも必要となってきた。
それを実現するために、新たな機能を取り込むと同時にngGoとngBuilderを1つにまとめ、新たに「ngGoBuilder」として提供することになったというわけだ。
「これまで、アニメーションやグラフィックの修正などをゲームに反映するために、シニアエンジニアが“ハブ”の役割を果たさなければならないケースが多かった。シニアエンジニアはその作業に忙殺されて、本来の技術的なレビューや設計に十分な時間を使えない。アニメーターの方だって、自分で作ったアニメーションを、いちいちエンジニアに頼まずに自分でゲームに反映して、すぐに確認したい。ngGoBuilderがこのハブの役割を担えるようになれば、ゲーム開発はもっとスムーズにできるはず」(能登氏)
開発中のプレビュー版のデモからも、面倒な設定なしにボタン1つだけでngCoreの動作確認が行えるなど、より簡単に操作できるようになったことがうかがえた。もちろん、エンジニアにとっての使い勝手も向上しており、例えば、iOSシミュレータとJavaScriptデバッガを組み合わせて使えたり、JavaScriptエディタで容易にコードを確認できるようになっている。
能登氏によれば、「ngBuilder 2.0」は近日リリース予定(後日2/27にpreview版がリリース済み)。そして、その次のバージョン2.1でライブラリ(ngGo)と開発ツール(ngBuilder)が完全に統合されngGoBuilderという名前になるという。
続いては能登氏も、サンフランシスコngmoco社との共同開発について触れた。やはり17時間の時差は大きく、リアルタイムで連絡の取れるタイミングがかなり限定されるようだ。
「我々が9時に動き始めると、向こうはもう16時。19時までの稼働として、そこから残された時間は3時間程度しかない。日本時間のちょうど午前中いっぱいが本当に貴重な時間となっている」(能登)
この限られた時間を最大限活かすために、能登氏は毎朝9時にGoogle+のハングアウト(ビデオチャット)を使い、サンフランシスコ側のプロジェクトリーダーとフェイス・トゥ・フェイスでコミュニケーションをとっているという。
「3時間しかない中で何ができるのか、試行錯誤しながらノウハウを蓄積している。グローバルな共同開発の場で、全員にとってベストに機能するような独自のチームカルチャーを作っていくのは、とても楽しいチャレンジでもある」と能登氏は最後に述べ、セッションを締めくくった。