【Unite 2016 Tokyo】快適な通信プレイに欠かせない「Photon」とは 『ファイナルファンタジーグランドマスターズ』での実例で魅力を伝える
2016年4月4日~4月5日の2日間、東京・お台場にて開催された、国内最大のUnity公式カンファレンスイベント「Unite 2016 Tokyo」。日本では2012年から始まり、今年で5年目となるUnite 2016 Tokyoは、UnityユーザーによるUnityユーザーのための最新の情報と実践的な講演、Unityに関わりのある様々なワークショップ、開発者同士の交流を体験できるイベントだ。
本稿では、本イベントの1日目(4月4日)18:00より行われた、開発者向け講演「『ファイナルファンタジーグランドマスターズ』開発の裏側、そのリアルタイム通信を支えるPhotonの実例」についてのレポートをお届けする。
なお、本講演には、GMOクラウド Photon 運営事務局の並木健太郎氏、スクウェア・エニックスの渕上貴史氏、クルーズの加藤督樹氏、長内義英氏らが登壇。オンラインRPGをUnityでスマホ向けに実現したプロセスや、リアルタイム通信を支えるPhoton Enterprise Cloudについて、実例を挙げて話を展開した。
■講演についての資料は下記URLからダウンロード可能
http://japan.unity3d.com/unite/unite2016/schedule
【登壇者紹介】
・GMOクラウド株式会社 Photon 運営事務局 並木健太郎氏
・株式会社スクウェア・エニックス 渕上貴史氏
・クルーズ株式会社 加藤督樹氏
・クルーズ株式会社 長内義英氏
●『ファイナルファンタジーグランドマスターズ』とは
『ファイナルファンタジーXI』の世界観ををベースにしたスマホ向けMMORPG。本作に登場する3D化された背景やモンスターについては、原作からの流用ではなく、クルーズが新規に開発を行っているという。
■快適なマルチプレイを可能にする「Photon」を紹介
まず始めに、並木氏が登壇し、「Photon」の概要を説明した。「Photon」は、複数のプレイヤー間でリアルタイムにデータのやり取りを行い、対戦や協力など、マルチプレイを可能にするためのものだという。
▲Photon 運営事務局の並木氏が「Photon」のサービス内容や魅力を紹介。
▲必要な情報は上図の通りだが、基本的にはデータのやり取りができれば問題ないとのこと。
続いて、現在、「Photon」が提供している2種類のサービス「Photon CLOUD」と「Photon SERVER」について紹介。主な違いは下記の通り。
●Photon Cloud
・クラウド型サービス
・サーバーはサービス提供元で運用
・クライアントにSDKを組み込むだけで利用可能
●Photon Server
・ライセンス型サービス
・ミドルウェアとして提供、購入者が運用
・サーバーサイドのカスタマイズが自由に
▲「Photon Cloud」のサービス一覧。
▲サービスによっては互換性も備えているとのこと。Photon CHATとPhoton VOICEに関しては互換性なし。
また、サービスの選び方についても解説があった。導入を検討されている方は下記の項目を参考にしていただきたい。また、UnityであればPUNを使って無料アカウントでRealtimeを試用できるとのこと。サーバー側のカスタマイズが必要になった場合には、まずWebhooksやPluginでのカスタマイズを勧めた。
【サービスの選び方】
・Chat、Voiceはクラウドでの利用が必須
・Unityを使用するならClient SDKはPUNがオススメ
・サーバーはRealtimeを基本に、トラフィック量が少ないならTurnbasedも検討を
・自社運用が必須、ロビーなどのカスタマイズが必須ならPhoton Serverの検討も
さらに、「Photon Cloud」の上位サービスにあたる「Photon Enterprise Cloud」についても紹介。Realtimeとの互換性を持つため、規模が大きくなった際にアプリの書き換えなしで「Photon Enterprise Cloud」に移行することが可能だったり、複数タイトルで共有して利用効率を高めることもできるという。「Photon Cloud」との比較、「Photon Enterprise Cloud」の詳細は以下の通り。
【Privateサービスについて】
・サービスを提供するサーバーは専有で利用可能
・他のクライアントによる影響の心配がない
・500msg/sec,room以上といったトラフィックが多い場合でも対応可能
【CCUについて】
・1,000CCU単位で、上限なく追加が可能
・ビッグタイトルになっても安心して使える
・最初はRealtimeでスタートし、規模が大きくなったらEnterprise Cloudに移行することもアプリの書き換えなしで可能
【複数タイトル共有について】
・構築されたEnterprise Cloudを複数タイトルで共有することができる
・複数タイトルで利用することにより、利用効率を高めていくことも可能
【構築に関して】
・必要に応じてサーバー側の設定変更が可能
・指定のリージョンに構築
【Plugin対応】
・Pluginを使うことでサーバー側ロジックの組み込みが可能
●Pluginとは
・独自コードをPhotonのサーバー上で動かすための仕組み
・DLL形式で、サ-バー本体とは独立した形でビルド・デプロイが可能
・Photon ServerだけでなくPhoton Enterprise Cloudでも利用可能
Pluginは、Game Server上にてルームベースで動く形となっているため、主にルームでのイベント(作成、入室、イベント受信など)でコールバックが呼ばれて動作する。ロビーなどのカスタマイズができない点には注意とのこと。そして、「Photon Enterprise Cloud」とPluginを組み合わせることで、マルチプレイ通信やサーバーロジックを自社でサーバー運用することなく実現できるという。
■関連サイト
■『ファイナルファンタジーグランドマスターズ』でのPhoton採用理由と実例
ここからは、いよいよ『ファイナルファンタジーグランドマスターズ』でのPhoton使用実例を紹介。
▲渕上氏曰く、「如何にスマホで手軽にMMORPGの体験を提供できるかをテーマに話し合いを進めていた中でPhotonを採用するに至った」とのこと。
▲『ファイナルファンタジーグランドマスターズ』のディレクターである加藤氏からはPhotonを採用した理由が語られた。
加藤氏は、『ファイナルファンタジーグランドマスターズ』を制作する際、まず始めにリアルタイム通信の部分をどう構築するかが課題になったとコメント。本作では、サンプルのモックを、Photonを使って1週間ほどで作れたことがきっかけとなり、採用にまで至ったとのこと。
【採用の決め手となったポイント】
・過去に別の業務でPhoton Realtimeの採用経験があった
・サーバーサイドのカスタマイズがC#で実装が可能
・リアルタイム通信における実績が15年以上あり、信頼性が高い
▲プログラマーの長内氏。『ファイナルファンタジーグランドマスターズ』では、先ほど紹介された中から「Photon Enterprise Cloud」を利用している。
その後、長内氏より、サービスプラットフォームに「SQUARE ENIX BRIDGE」を使用していること、装備変更やガチャについての通信は、クルーズの独自リアルタム通信サーバーを介して行われていることなど、本作でのネットワーク構成についての解説が行われた。「Photon Server」では、主にクエストやバトルをリアルタイムに処理しているという。
▲必ずPhoton Serverを経由するおかげで、チートを働こうとした場合の不正対策を容易に実現しているとの話。
より詳細な資料となる、クエストを選択するまでの流れや、ルーム内のユーザー推移は下図の通り。
プレイヤーの移動については、ポインティング移動方式を採用しており、トラフィック量を抑えるために座標のみをサーバーに送信しているとのこと。中間の経路補完については、送られてきた座標をもとに各クライアントが経路探索で計算してプレイヤーの移動を行っているという話だった。
▲敵シンボルの移動についても基本はプレイヤーの移動と変わらないが、唯一、異なるのは、サーバー側で更新を行っていることだという。
次に、バトルについての実装例の説明へ。バトルの判定はすべてサーバー側で行われているため、ゲーム画面上にも進行は表示されているが、将来を予測してシミュレートした情報であり、一定のタイミングで情報の同期が行われている。そのため、ping値が高いほどズレが発生してしまい、稀に時間が進んだり、逆に巻き戻ったように見える現象が起きることがあるという。ただし、プレイヤーがどのコマンドを選択したかや、敵がどのような判断を下したかについては信頼性のある通信を使用して対応しているとのこと。
▲各ユーザーの通信環境を分かりやすく判断できるようpingを視覚化している。
そのほか、サーバー側では、ルーム単位で入室や退室など、受け付けたコマンドを順序通りに処理している。
最後に長内氏は、「Photon Enterprise Cloud」を使用したことで通信周りのことを任せることができ、ゲームロジックの実装に集中できたこと、ネットワーク技術が標準機能として実装されることを示唆して本講演の締めとした。
■講演についての資料は下記URLからダウンロード可能
http://japan.unity3d.com/unite/unite2016/schedule
■関連サイト
■『ファイナルファンタジーグランドマスターズ』
©2015SQUARE ENIX CO., LTD. All Rights Reserved. Developed by CROOZ, Inc.
会社情報
- 会社名
- 株式会社スクウェア・エニックス
- 設立
- 2008年10月
- 代表者
- 代表取締役社長 桐生 隆司
- 決算期
- 3月
- 直近業績
- 売上高2428億2400万円、営業利益275億4800万円、経常利益389億4300万円、最終利益280億9600万円(2023年3月期)
会社情報
- 会社名
- クルーズ株式会社
- 設立
- 2001年5月
- 代表者
- 代表取締役社長 小渕 宏二
- 決算期
- 3月
- 直近業績
- 売上高140億円、営業利益6億4400万円、経常利益6億2800万円、最終利益2億5400万円(2023年3月期)
- 上場区分
- 東証スタンダード
- 証券コード
- 2138
会社情報
- 会社名
- ユニティ・テクノロジース・ジャパン