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スクリプトは、ビルドリストの次のシーンを読み込みます。つまり、プロジェクトを正常に実行すると、クライアントメニューシーンが読み込まれます。

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

次の章 >>

To Document Top