お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2013/04/17 16:46

イベント

日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート

画像集#001のサムネイル/日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート
 Unity開発者のための一大イベント「Unite Japan」二日目となる2013年4月16日に,「iPhoneでリアルタイムマルチプレイを実現! Photon Network Engine」と題された講演がAppBank GAMESによって行われた。

 Photon Network Engineというのは,Exit Gamesが開発したネットワークエンジンだ。最近,GMOクラウドが日本でもSaaS(Software as a Service)型のサービスの乗り出して話題になっている。かなりホットなセッションと言っていいだろう。

 さて,AppBank GAMESの宮川義之氏は,早くからUnityでネットワーク機能を持ったゲームを作っていた開発者の一人だ。Unity関連のイベントではよく講演を行っているのだが,それは国内にUnityに関する情報があまりに少ないので,早く情報を共有できる仲間を作りたかったからだという。一方で,今回のUniteでの講演は,Photonの情報を共有できるユーザーを増やしたいという気持ちからのものだとのこと。

画像集#002のサムネイル/日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート
AppBank GAMES 代表取締役 宮川義之氏
画像集#003のサムネイル/日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート
AppBank GAMES 小野将司氏

 この講演では,同社が2012年12月にリリースした「ダンジョンズ & ゴルフ」(以下,ダンゴル)の2.0バージョン制作過程における,ネットワーク機能実装にまつわる話が,小野将司氏らの開発者達によって紹介された。ダンゴルは,ゲーム制作経験のない新規スタッフを中心に,約1年かけて制作したものだという。
 目指したのは,非同期ではないリアルタイム対戦ができるゲームで,回線が切れたら,オフラインモードに自動的に移行するようなもの。とはいえ,宮川氏以外はネットワークゲーム制作の経験はない。期間も予算も限られている。

画像集#004のサムネイル/日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート 画像集#005のサムネイル/日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート

 そのような状況で取れる技術的な解決策で選択肢は3つあったという。

  • Unityのネットワーク機能を使う
  • サードパーティのネットワークエンジンを使う
  • 自分で作る

画像集#006のサムネイル/日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート
 まず選ばれたのが,Unityの標準機能を使うことだ。これは,非常に使いやすく,開発段階のテストでは問題なく動作していたという。ただし,実機で試験をすると実用にはならなかったとのこと。
 Unityのネットワーク機能は専用サーバーなしで実現されるものであり,同時接続している端末のどれか1台がサーバーの代わりをするというものだった。これが3G回線だとまったく使えないというわけだ。
 とくにiPhoneユーザーの多数が使っているであろうソフトバンクモバイルの3G回線の場合,上り方向で期待できるのは10MB/秒がせいぜいなのだという。1秒間の通信回数を10回としても,1回あたりにやり取りできるのは1KB。これが4人対戦だと端末3台を相手にすることになり,さらに3分の1にまで減ってしまう。しかもよく切れるので,サーバー用に使うには不適であり,3G回線でネットワークゲームをやるなら専用サーバーは必須であるというのがAppBank GAMESの結論となったようだ。

 そこで既存のネットワークエンジンを探したところ,見つかったのがPhotonだったという。あっさり見つかって,見たところ機能もよさそうで,ほかに代わりになりそうなものがなかったということで,Photonの導入が決まったのだという。
 Photonのよいところとしては,Unityとの親和性が高いことが挙げられていた。用意されている。ネームスペースが異なるくらいで,基本的にはUnityのネットワーク関係と同じ関数が揃っているとのこと。Unityの機能を使って開発を進めていたなら,簡単に移行できるわけだ。

 PhotonにはSaaS型の「Photon Cloud」と,自前でサーバーを立てる「Photon Server」の2種類があるという。日本でサービスされているのはクラウドタイプだ。SaaSとかクラウドとかいうとなにやら分かりにくいのだが,これはオンラインゲームエンジンをサーバーごと提供してくれるというものだと思っていればいいだろう。とにかくクラウドタイプであれば,サーバーの管理も不要で低コストでオンラインゲームを実現できる。

画像集#007のサムネイル/日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート 画像集#008のサムネイル/日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート
画像集#009のサムネイル/日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート 画像集#010のサムネイル/日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート

画像集#011のサムネイル/日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート
 しかし,ダンゴルでは,外部のサーバーとやり取りをする必要があったため,サーバータイプを導入したとのこと。サーバータイプはSDKが提供され,さまざまなタイプのゲームに対応したサンプルアプリケーションも豊富だとのこと。負荷分散をするロードバランサー機能なども標準で用意されている。
 ダンゴルは,ゲームルームを探し,空きがなければ新しいルームを作るという仕様なので,そのあたりを中心にサーバープログラムに手を入れたという。情報が少なくてかなり苦労したようだ。曰く「サーバータイプはイバラの道」とのこと。

画像集#012のサムネイル/日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート 画像集#013のサムネイル/日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート
画像集#014のサムネイル/日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート 画像集#015のサムネイル/日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート

画像集#016のサムネイル/日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート
 一方で,クライアント側のプログラム実装についても解説が行われた。Photonで用意されているデータ送信方式には,厳密に同期するState Synchronizationと,イベント発生時などのみ同期を取るRPC(Remote Procedure Call)の2種類が用意されていたとのことだが,ダンゴルではRPCのみを使用しているという。さほどシビアな同期が求められていないことと,3G通信では完全な同期は厳しいといったことが理由のようだ。

 次に,接続が切れたときにシングルプレイモードに自動的に移行する処理について解説されたが,これはPhotonの標準機能として用意されているとのことで,オフラインモードのフラグを立てるだけで対応できたようだ。

画像集#017のサムネイル/日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート 画像集#018のサムネイル/日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート

 ただし,どのタイミングで対戦相手が切れるかが分からないため,アクセスしようとしたオブジェクトが急になくなっていた場合など,かなり面倒なデバッグ作業が必要だったとのこと。このあたりは,実際にやってみないと分からないので,社内総出で検証を行っていたそうだ。マルチプレイのテストでは,複数のUnityを並列して起動するなど,特殊な技も紹介されていた。

画像集#019のサムネイル/日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート 画像集#020のサムネイル/日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート

 ともあれ,ゲーム開発経験もほとんどないスタッフが約1年でゲームを完成させたことなどからして,UnityとPhotonを組み合わせた環境は,かなり強力だという。なお,とくに理由がない場合はクラウドのほうがコストも低く,手間がなくてよいのではないかとのこと。クラウドタイプは,同時接続数が20までなら無料という嬉しい設定になっている。
 情報量が少ないのが難だが,GMOクラウドによる日本でのサービスも始まったことから日本語情報の充実に期待したいところだ。

画像集#021のサムネイル/日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート 画像集#022のサムネイル/日本サービスも開始されるゲームエンジンサービス「Photon」をUnityで使うには。「Unite Japan」講演レポート

「Unite Japan」公式サイト

  • 関連タイトル:

    Unity

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
スペシャルコンテンツ
注目記事ランキング
集計:11月08日〜11月09日