PUN Classic (v1)、PUN 2、Boltはメンテナンスモードとなっております。Unity2022についてはPUN 2でサポートいたしますが、新機能が追加されることはありません。お客様のPUNプロジェクトおよびBoltプロジェクトが停止することはなく、将来にわたってパフォーマンス性能が落ちることはありません。 今後の新しいプロジェクトについては、Photon FusionまたはQuantumへ切り替えていただくようよろしくお願いいたします。

3 - Photon Bolt PlayFab Server Integration

Photon BoltとPlayFab Server 2.0の統合を実装する際の主な目的は、サービスによって提供される仮想マシン上でヘッドレスゲームサーバーを直接構築および実行する簡単な方法を準備することです。 この目的を達成できるように、弊社ではゲームに組み込むことができるすべての必要なAPIを使用して簡単なサンプルを作成しました。 この章では、このサンプルと適切な使用方法について説明します。

必要なファイルはすべて、こちらBolt Samplesリポジトリにあります。具体的にはPlayFabフォルダ上にあります。次のリンクを使用してアクセスできます:https://github.com/BoltEngine/Bolt-Sample/tree/master/PlayFab このフォルダからプロジェクトにファイルをダウンロードしてインポートしてください。

Scriptsフォルダ内には、次のように記述できるクラスのセットがあります:

  • PlayFabHeadlessServer:このクラスは、ヘッドレスサーバーコントローラーとして機能します。PlayFabおよび Bolt APIを使用して、サービスとの通信を制御し、ゲームサーバーを起動します。
  • PlayFabMenuClient:ゲームクライアントで使用される単純なメニューの実装です。Boltクライアントとしてゲームを開始し、ランダムなセッションに参加します。
  • PlayfabLogger: Boltのログシステムにフックしてサーバー実行のログを PlayFabスタック内の適切なフォルダに出力する特別なロガークラス。これにより、実行が完了した後にサーバーをデバッグすることができます。 詳細については、こちらをご覧ください。

Game Serverを実行してPlayFabエージェントと通信するプロセスには、一連の調整されたアクションが含まれます。これにより、実行可能ファイルが実行され続け、PlayFabがインスタンスを強制終了しないことが保証されます。 これらのステップは以下に説明されており、すべてサンプルコードによって実行されます。

headless server states
Headless Server States

PlayFab統合の使用

スクリプトのセットだけではあまり効果がありません。そのため、これらのスクリプトのユースケースを示すいくつかの簡単なシーンがサンプルに含まれています。 シーンは、サンプルのScenesフォルダーにあります。

  • PlayFabHeadlessServer: このシーンには、 PlayFabHeadlessServerスクリプトを保持するゲームオブジェクトが1つしか含まれていませんが、前の章でインポートした Multiplayer Agent API Packageに含まれる PlayFabMultiplayerAgentViewコンポーネントも含まれています。
  • PlayFabClient:このシーンはクライアントメニューを読み込み、プレーヤーが開いているセッションに参加できるようにします。
  • PlayFabGame:プレースホルダーのゲームシーンです。

PlayFabMultiplayerAgentViewコンポーネントについて:鼓動をPlayFabのAgentに送信して、サーバーが稼働していることを通知します。 このコンポーネントが存在しない場合、PlayFab Orchestrator(仮想マシンとコンテナを管理する監視システム)は、サーバーが生き続ける必要があるかどうかを認識せず、最終的にそれを強制終了します。

次の順序でシーンをBuild Settingsに含めます:(0)PlayFabHeadlessServer、(1)PlayFabClient、および(2)PlayFabGame。 デフォルトで、 batchmodeで開始されなかった場合、 PlayFabHeadlessServerスクリプトは、ビルドリストの次のシーンを読み込みます。つまり、プロジェクトを正常に実行すると、クライアントメニューシーンが読み込まれます。

ゲームが使用するRegionを考慮する必要があります。 デフォルトでは、Bolt はBest Regionに接続するように設定されているので、PlayFabインフラストラクチャ上でゲームサーバーを実行している場合、配備されている最も近いリージョンに接続します。 この動作は、ピア間の遅延を抑えるための仕様です。また、ゲームセッションが公開される場所を決定します。 ゲームセッションが特定のリージョンAで公開されていて、プレイヤーがリージョンBに接続している場合、プレイヤーは実行中のゲームに関する情報を受け取ることはありません。 テストを行う際は、Wizardウィンドウで直接Regionを選択するか、後でBolt Settingsウィンドウ(Bolt/Settingsメニュー)でPhoton ServicesセクションのRegionフィールドで固定リージョンを選択することができます。 任意のリージョンを選択することができますが(Photonリージョンの詳細はこちらを御覧ください)、サーバが動作するリージョンの近くのリージョンを選択することをお勧めします。 そうすることで、ゲームサーバーとプレイヤーの両方が同じリージョンに接続し、正しく接続できます。

Bolt/Compile AssemblyメニューでBolt Compilerを実行して、 Boltが変更を認識していることを確認し、Windowsプラットフォーム のスタンドアロン実行可能ファイルにプロジェクトをビルドします。 使用するサービスは主にWindowsビルドをサポートしているため、これは非常に重要です。 Linuxビルドを実行することもできますが、別のアプローチを使用してサーバーコンテナーを作成します。 次の章でこの実行可能ファイルを使用して、ヘッドレスサーバーを実行します。

build settings
ビルド設定

次の章 >>

Back to top