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がインスタンスを強制終了しないことが保証されます。
これらのステップは以下に説明されており、すべてサンプルコードによって実行されます。
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ビルドを実行することもできますが、別のアプローチを使用してサーバーコンテナーを作成します。
次の章でこの実行可能ファイルを使用して、ヘッドレスサーバーを実行します。