SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

「Visionaries Summit 2011」レポート

ビジョサミ2011レポート
スマートフォン向けゲームエンジン ngCore開発の現場

  • このエントリーをはてなブックマークに追加

 「モバゲータウン」改め「Mobage」を運営するDeNA。同社が今、注力しているのがスマートフォン向けソーシャルゲームであり、その基盤となるのが2010年11月に買収した米国ngmoco社の技術をベースとするスマートフォン向けゲームエンジン「ngCore」だ。ngCoreの仕組みや特徴、海外開発拠点との協業体制、iOS/Androidのクロスプラットフォーム開発におけるポイントなどについて、DeNAの佐藤学氏が説明した。

  • このエントリーをはてなブックマークに追加
株式会社ディー・エヌ・エー CTO室 佐藤学氏
株式会社ディー・エヌ・エー CTO室 佐藤学氏

iOS/Android用のソーシャルゲーム開発を強力に支援

 佐藤氏は冒頭、スマートフォン向けのゲーム開発において前提となる重要な要素として、「更新の容易さ」「マルチプラットフォーム対応」「スマートフォンらしいユーザエクスペリエンス」の3つを挙げた。これらの要素をすべてサポートできるように、DeNAがグループ企業のngmocoと共同開発および提供しているのが、スマートフォンのソーシャルゲーム開発に最適化されたゲームエンジン「ngCore」だ。

 ngCoreでは、描画フレームごとにJavaScriptエンジンにJavaScriptのソースコードを解釈させ、その結果を元にネイティブコードを動かす仕組みを持っている。これにより、JavaScriptで記述されたプログラムをiOS/Androidの両プラットフォームで動作させることができる。ネイティブコードのレイヤーでは主にC++で振る舞いを制御した後、各プラットフォーム固有のコードのみ、たとえばAndroidならJavaで、iOSならObjective-Cで書くという流れになる。

 JavaScriptがメインとなるので、Webブラウザで利用するコードと同じライブラリやテクニックが利用できるのが特徴だ。Web系の技術者にとっては、大きなメリットといえるだろう。また、OpenGLのコードを直接書くのに比べて簡単で、かつHTML5のCanvasを使うよりはパフォーマンスも出せるという。

 「国内だけでなく、米国、中国も含めて、各国向けのソーシャル課金機能を備えたゲームが容易に開発可能であることも大きなポイント」と、佐藤氏は付け加える。サービスアーキテクチャとして、共通のソーシャルAPIのほか日本・米国・中国それぞれのローカルAPIが用意されており、それらのAPIを1つのコードで叩き分けられる構成なのだとか。

スマートフォン向けゲーム開発で
エンジニアに求められるスキルとは

 DeNAのngmoco買収は2010年11月。翌12月に、パートナー向けにMobage ngCore SDKの提供をスタートし、2011年5月には、ngCore上で開発した自社製ソーシャルゲームもリリースしている。よほどスムーズな共同開発の体制でなけえれば、これは不可能だろう。サンフランシスコに拠点を置くngmocoとの協業について、佐藤氏は次のように語る。

 「メールやチャット、スカイプ、電話会議システムなど、いろいろなコミュニケーション手段を使ったが、最も効率がよかったのはIssue Tracking SystemのJIRA。やはり意思を明確に伝えるためにも、詳細なバグレポートを書ける程度の英語力は、エンジニアに必須となってきていると感じた」

 海外拠点との協業では、きちんと意図が伝わらなかった場合に大幅な対応の遅れが生じてしまう。反面、一発で意図が伝われば、日本側のエンジニアが寝ている間に(時差の関係で)米国側が対応してくれるので、開発がスピーディに進むこともあったという。

 ngCoreによってクロスプラットフォームでの開発が可能になるとはいえ、iOSとAndroidでは、たとえばAPIの振る舞いの違いなども多く、もちろん限界はある。最終的には、プラットフォーム固有のコードをどれだけ書くか、あるいは“最大公約数的”な両プラットフォーム共通の機能の範囲で吸収するかといった判断が必要だ。

 こうした点を踏まえ、佐藤氏は最後に、スマートフォン向けのゲーム開発でエンジニアに求められる条件として、次のようにまとめた。

 「まず、JavaScriptなどのスクリプト言語でアイデアを素早く形にできること。そして、C/C++などネイティブに近い言語を使ってパフォーマンスの問題を解決したり、iOSとAndroid両方の仕様を理解してObjective-CやJavaでアプリケーションの振る舞いを制御できる技術も必要。これらに加えて、今後はWindows PhoneやHTML5のスキルも重要となる」

 いかに強力なゲームエンジンや開発ツールが登場しても、やはり各プラットフォームに関する深い知識や技術力が不可欠ということだろう。

Android向けngCoreエンジンのアーキテクチャ。
iOS向けもほぼ同じだが、JavaScriptエンジンがV8ではなくUIWebViewとなる
Android向けngCoreエンジンのアーキテクチャ。iOS向けもほぼ同じだが、JavaScriptエンジンがV8ではなくUIWebViewとなる
お問い合わせ

株式会社ディー・エヌ・エー

http://dena.jp/

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
「Visionaries Summit 2011」レポート連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6100 2011/08/24 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング