【Photon Fusion】「Impostor」サンプルの紹介

【Photon Fusion】「Impostor」サンプルの紹介

Photon Fusionを利用することで、非常に幅広いジャンルのオンラインマルチプレイヤーゲームが制作できるようになります。公式ドキュメントにはその実例として、無料でダウンロードできる様々なサンプルが公開されていて、実際の動作を確認したり、ゲーム開発における実装の参考にしたりすることができます。

今回この記事では、公開されているFusionのゲームサンプルの中から「Impostor」を紹介します。このゲームは、日本でも非常に有名で人気がある人狼系ゲームのシンプルなクローンゲームで、最大8人のプレイヤーがクルーメイト(乗組員)とインポスター(妨害者)の2チームに分かれ、クルーメイトは与えられたタスクの完遂かインポスターの追放を目指し、インポスターはクルーメイトの作業を妨害しながらクルーメイトの排除を目指します。

通信周りの実装にはPhoton FusionとPhoton Voiceが使用されていて、プレイヤー同士のマッチメイキングやゲームプレイの同期に加えて、ボイスチャット機能も備わっています。

マッチメイキング

ゲームのタイトル画面の「Play」ボタンを押すと、ルームの作成/参加が可能になります。ルームを作成するなら「Host」を、作成済みのルームへ参加するなら「Join」を選択します。Fusionは標準でランダムマッチが実行できるようになっているため、空きルームを自動的に検索してそこへプレイヤーを割り当てるような機能が簡単に実現できます。 マッチメイキング01

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

ゲーム内ロビー

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

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

ゲームプレイ

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

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

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

終わりに

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

GMOグローバルサイン・ホールディングス株式会社ウェブサイト