Photon Fusionを利用することで、非常に幅広いジャンルのオンラインマルチプレイヤーゲームが制作できるようになります。公式ドキュメントにはその実例として、無料でダウンロードできる様々なサンプルが公開されていて、実際の動作を確認したり、ゲーム開発における実装の参考にしたりすることができます。
今回この記事では、公開されているFusionのゲームサンプルの中から「Impostor」を紹介します。このゲームは、日本でも非常に有名で人気がある人狼系ゲームのシンプルなクローンゲームで、最大8人のプレイヤーがクルーメイト(乗組員)とインポスター(妨害者)の2チームに分かれ、クルーメイトは与えられたタスクの完遂かインポスターの追放を目指し、インポスターはクルーメイトの作業を妨害しながらクルーメイトの排除を目指します。
通信周りの実装にはPhoton FusionとPhoton Voiceが使用されていて、プレイヤー同士のマッチメイキングやゲームプレイの同期に加えて、ボイスチャット機能も備わっています。
マッチメイキング
ゲームのタイトル画面の「Play」ボタンを押すと、ルームの作成/参加が可能になります。ルームを作成するなら「Host」を、作成済みのルームへ参加するなら「Join」を選択します。Fusionは標準でランダムマッチが実行できるようになっているため、空きルームを自動的に検索してそこへプレイヤーを割り当てるような機能が簡単に実現できます。

また、ルームコードを入力して、フレンド同士で遊べるプライベートルームの作成/参加も可能です。ルームコードはパスワードのようなもので、「ルームコードと同じ名前のルームの作成/参加を行うと、同じルームコードを指定したプレイヤー同士がマッチングする」という単純な仕組みになっています。

ゲーム内ロビー
マッチメイキングに成功すると、同じルーム内のプレイヤーのアバターが同期されるようになります。プレイヤーは中央テーブルから、自分のアバターの色を変更することが可能で、その変更はすぐに他のプレイヤー上でも反映されます。

ホストは上部端末から、ゲームの設定を調整した後に、ゲームを開始することが可能です。

ゲームプレイ
ゲームが開始されたら、各プレイヤーは船内マップを自由に動き回って、チームの目的達成を目指します。クルーメイトはタスクを進め、インポスターは誰にも見つからないようにしながらクルーメイトをキルしていきます。タスクの進捗状況やクルーメイトの生死状態などは、すべてFusionの機能によってスムーズに同期が行われることが確認できます。

他のクルーメイトがキルされた姿を発見した場合、その状況を報告することで、生存者全員のボイスチャットによる会議を開くことができます。また、中央テーブルの緊急ボタンを押すことで、任意のタイミングで緊急会議を開くこともできます。

そして、最終的にどちらかのチームが目的を達成すると、結果画面が表示された後に自動的にゲーム内ロビーに戻ります。ここまでの基本的なゲームループは、プロジェクトのソースコードを読んで開発の参考にすることもできるでしょう。

終わりに
以前まではWeb上の情報が少ない面があったPhoton Fusionですが、現在はドキュメントやサンプルが充実してきていていますので、これらのコンテンツを活用して、ぜひオンラインマルチプレイヤーゲームの開発を始めてみてください!