GMOインターネットグループの技術情報は新しいサイトに移管しています。 新しいサイトはこちら

社内レポート

2013年8月28日(水)

ゲーム開発者がゲームを作ることに集中できる環境を提供する

ゲーム開発者がゲームを作ることに集中できる環境を提供する

スマートフォン市場で勝ち残るためのアプリ/サービス開発の要点を紹介するGMO最新ネット業界レポート「スマートフォン編」。前回に引き続き、GMOゲームセンター株式会社(以下GMOゲームセンター)でプラットフォーム開発部の部長を務める庄司拓郎氏が解説する。

GMOゲームセンターが提供している「VIVID Runtime」は、マルチデバイス・マルチOSに対応したモバイルプラットフォーム向けのアプリケーション実行環境である。スマートフォン普及の黎明期からその開発を牽引してきた庄司氏が、ゲーム開発者にとってのランタイム導入のメリットなどを、同社がランタイムの開発を手掛けることになった経緯を交えながら紹介する。

記事INDEX

VIVID Runtime誕生の経緯

今回は、「Gゲーby GMO(以下Gゲー)」で提供している「VIVID Runtime」を例に挙げながら、ランタイムを導入することでゲーム開発にどのようなメリットがもたされるのかを紹介したいと思います。「VIVID Runtime」の開発がスタートしたのはまだGMOゲームセンターが設立される前の2008~2009年にかけてで、時期的にはちょうどiPhoneが発売されて普及し始めた頃にあたります。Androidはまだ発表されたばかりで、その他にはWindows MobileやSymbian、BREW、LiMoなどがiOSの対抗馬として登場していましたが、半年後にどのOSが勝ち残っているか予測が難しい状況でした。

そうなるとアプリ開発者にとっては、どのOSをターゲットに開発すればいいのかという悩みが持ち上がってきます。そこで、それら異なるOSの間をつなぐランタイムを作ることで、アプリ開発者がターゲットとするOSを意識しなくても開発できるような基盤を提供しようと考えました。VIVID Runtime向けに作っておけば、どのプラットフォーム向けにも大きな修正をせずにそのままリリースすることができる、という形を目指しました。

その後、モバイルOSの市場はiOSとAndroidへの二極化へと進んでいき、開発者もターゲットとするOSを絞り込むことができるようになります。それによってVIVID Runtimeのようなマルチプラットフォーム対応のランタイムが不要になったかと言えば、決してそうではありません。Gゲーでは依然としてVIVID Runtimeが広く使われていますし、Unityなどの他社のランタイムも高い人気を誇っていることなども、ランタイムの重要性を物語っていると思います。では、現在のアプリ開発者にとってランタイムを利用するメリットとはどのようなものなのでしょうか。

ランタイムの導入で何ができるか

最近のモバイルアプリの傾向として、一度リリースして終わりではなく、アップデートを繰り返しながらある程度長い期間、運営を続けるというスタイルが挙げられます。たとえ対象のプラットフォームが2種類だけだとしても、運営が長期間に渡れば保守のコストは増大していきます。そのようなケースでは、単一のコードで複数のプラットフォームに対応できるというランタイムのメリットが特に強く生きてきます。

また、OSが統一されてきたとはいえ、依然として端末レベルでは固有の問題を抱えているという状況は残っています。それらの違いを意識して作らなければ、想定外の挙動を引き起こす原因になる可能性があるわけですが、ランタイムを利用していればある程度は基盤側で吸収できるため、開発の手間を軽減できるというメリットがあります。同時に、端末固有の処理によってコードを煩雑にすることも防げます。

アプリマーケットへの配布という観点からも、ランタイムを導入するメリットがあります。作成したアプリをアプリマーケット経由で配布したい場合には、対象とするマーケットごとに配信や課金の仕組みを個別に追加する必要があります。これらの仕組みはマーケットごとに微妙に異なるため、複数のマーケット向けに展開する場合には決して小さな手間ではありません。そのような悩みを解決するために、VIVID Runtimeでは複数のアプリマーケットに向けてリリースするためのサポート機能を提供しています。各マーケットに公開するための細かな設定を自動で行うことができるため、開発者は配布のことは意識せずにゲーム作りに専念することができます。

その他に、VIVID Runtimeの場合には独自のDRM機構を持っているという強みもあります。これはGゲーのプラットフォームとセットで機能し、アプリのコピーなどを防止するというものです。Google Playなどの一般のプラットフォームで用意された仕組みからは独立して動作するため、コンテンツの保護をより強固に行うことができます。

フラグメンテーションの問題をランタイムで解決する

私たち自身、VIVID Runtimeを開発する過程で、様々なOSや端末における固有の問題と向き合ってきました。その経験から、マルチプラットフォーム開発がどのような部分で開発者を悩ませるのかを身をもって知っています。例えばAndroidの場合、OSは同じでも実際には端末ごとのフラグメンテーションが非常に大きいことで知られています。

VIVID Runtimeで経験した事例としては、2画面仕様の端末への対策というものがあります。具体的には「Kyocera Echo」という折りたたみ式の端末が発売されたときの話ですが、これは開くと2つの画面が結合されて1つの画面のように操作できるというものでした。通常のゲームをこのような画面構成に対応させるためには、大幅な改修が必要になるはずですが、VIVID Runtimeではランタイム側に対策を施すことで、ゲーム本体のコードを大きく修正することなく動作できるようにしました。

似たような例で、VIVID Runtimeはキーボードやトラックボール付きの端末や、Xperia Playのようにゲームパッドが付いた端末にも対応しています。また、初期の頃はシングルタッチにしか対応していない端末などもあり、そのままだとゲームパッドとして機能しないため、その場合はメニューキーをボタンに割り当てるなどといった対策を施したりもしました。このような特定の端末にしか用意されていない機能や、必要な機能を持たない端末に対応するというのも、ランタイム側の重要な役割と言えます。

上記で挙げたのは比較的極端な例ですが、一般的なレベルでの端末固有の不具合や仕様の違いは数多く存在するので、発見され次第対応するということを続けています。それと同時に、開発者の方々に同じような苦労をしてもらいたくないと改めて感じています。

ゲーム開発会社にとっての本来の仕事はゲームを作ることであって、上記に挙げたような問題に対処することではありません。ゲーム会社の方にはゲームを作ることに集中してもらいたいという思いがあります。そして、「一度作ったものは、手を加えなくてもずっと動き続ける」ということが目標です。そのために、OSや端末の違いに起因する問題は、出来る限りランタイム側で解決するよう心掛けています。

Gゲー社内でもVIVID Runtimeを活用

前回も少し紹介しましたが、VIVID RuntimeはGゲーで配信されている多くのゲームで活用されています。代表的なタイトルとしては、「金魚の達人」や「カジノシリーズ」、「サッカー日本代表2014ヒーローズ」、「無限魔界ディスガイア」などがあります。その他にも、Gゲーサイト上でAndroidゲームカテゴリに登録されているほとんどのタイトルがVIVID Runtimeを利用しています。

現在はiOSにも対応したため、iPhone向けの移植も活発に行われています。AndroidとiOSの違いはVIVID Runtimeで吸収しているので、基本的にはコードを修正する必要はなく、iOSでも動作するようになっています。前述の「金魚の達人」や「サッカー日本代表2014ヒーローズ」はすでにiOS版も公開されていますが、これらはAndorid版から移植したものです。一方で現在は開発ツールのVIVID Runtime SDKがObjective-Cにも対応しているため、これを利用してiPhoneアプリからVIVID Runtime向けに移植したタイトルもあります。

VIVID Runtimeを利用しているのはパートナー様だけではなく、Gゲーによる自社タイトルの開発にも活用されています。そのため、ゲーム開発者の立場からのランタイム利用の勘所も掴んでいると思っています。今後のレポートでは、ゲーム開発者の視点から見たマルチプラットフォーム開発について紹介したいと思います。


取材日:2013.07.24