4 - Boltサーバーの構築とデプロイ
この章では、ゲームサーバーの実行可能ファイルをアップロードする方法と、 PlayFab Servers 2.0サービスでビルドを構成する方法を説明します。
ゲームバイナリができた今PlayFabダッシュボードに戻る前の最後のステップは、すべてのファイルを単一のパッケージに圧縮することです。この例では bolt_sample.zipと名前を付けます。
この時点で注意すべき点: ルートレベルでゲームの実行可能ファイルを使用してファイルを圧縮します(バイナリをサブフォルダに 含めないでください)。これにより、後でビルド構成が容易になります。
以下に示すように、この例の場合、実行可能ファイルの名前は bolt_sample.exeです。
 
  Thunderheadで新しいビルドを作成
ゲームサーバーを実行するには、まず必要なすべての設定を含むビルド(PlayFabサービスに関して)が必要です。
Thunderheadはこれらの設定を使用して、コンテナーを構築し、ファイアウォールを構成し、仮想マシンを様々なリージョンに配布します。これらはすべて1か所で設定されます。
PlayFabダッシュボードに戻り、左側のMultiplayerメニューをクリックし、BuildタブでNew Buildを選択します。
ビルドを適切に構成するために、いくつかのフィールドに入力する必要があるので、ステップごとに説明します。
 
  こちらのリンクの PlayFabの公式ドキュメントページにも同様のドキュメントがあります。
ビルド詳細 - 情報
このセクションでは、ビルドに名前を付け、使用する仮想マシン構成と、VMごとに実行できるゲームサーバーの数を選択します。
これは、サーバーがゲームを適切にシミュレートするために必要な計算能力を選択することであるため、重要なステップで、ゲームごとに様々でしょう。
また、PlayFabを使用すると、同じマシンから複数のサーバーを実行できるようになります。これは、ネットワークの使用率、そしてもちろんCPU消費の観点からも意味があります。 VMの種類と価格については、こちらをご覧ください:https://docs.microsoft.com/en-us/gaming/playfab/features/multiplayer/servers/billing-for-thunderhead.
- 推奨オプション:
- ビルド名: Bolt Server Build;
- 仮想マシン: Standard_A8_v2 (8 cores);
- マシンごとのサーバー数:1.
 
- ビルド名: 
ビルド詳細 - 仮想マシンOS
PlayFab Thunderheadは、WindowsとLinuxの両方の仮想マシンに対応していますが、Linuxサーバーを実行するには、自分でコンテナーイメージを構築し、サーバーに直接アップロードする必要があります。一方、Windowsビルドでは、簡単にバイナリをアップロードできますが、柔軟性は低くなります。
- 推奨オプション:
- プラットフォーム:Windows;
- コンテナーイメージ:Windows Server Core.
 
- プラットフォーム:
ビルド詳細 - アセット
ゲームバイナリーをアップロードする場所です。
このリストに含める各ファイルは、ビルドプロセスの後半でコンテナーイメージに埋め込まれ、コンテナの実行時に展開されます。
これにより、ゲームの実行に必要なカスタムファイルを適切に送信できます。
Uploadボタンをクリックして、以前にパッケージ化したzipを選択します。
- 推奨オプション:
- アセットパッケージ: bolt_sample.zip;
- マウントパス: C:\Assets.
 
- アセットパッケージ: 
 
  ビルド詳細 - 開始コマンド
このフィールドはシンプルでありながら有力です。実行可能ファイルを実行するために、どのエントリポイントコマンドを実行する必要があるかを設定します。
サーバーをヘッドレスモードで実行する必要があるため、Unityコマンドライン引数(詳細は こちら)を使用して、このmodeに従う必要があることをゲームに通知します。
入力フィールドに次のように書きます:
Plain Old Text
C:\Assets\bolt_sample.exe -batchmode -nographics
いくつかの部分に分けてみましょう:
- C:\Assets: 前のフィールドで設定したマウントパスであり、zipを解凍する場所です。
- bolt_sample.exe: 前に設定したゲーム実行可能ファイルの名前。
- -batchmode -nographics: ゲームをヘッドレスモードで実行するために必要な引数。つまり、何も表示されず、ホストからの入力もキャプチャされません。
ビルド詳細 - ネットワーク
サーバーが外部世界と通信する必要があることを考慮して、このセクションでは、開く必要があるすべての必要なポートを設定できるようにして、PlayFabによって管理されるコンテナーと仮想マシンのファイアウォール設定に変更を直接適用します。
2つのセットのポートを開く必要があります:(i)すべての接続が仲介されるメインBoltサーバーポート(この例では、任意のポート 60001を選択)と、(i)サーバーがPhotonサーバーと通信するために必要なPhoton Cloudポート。こちらからPhotonが使用するポートの完全なリストを取得できますが、UDPしか必要ありません。
以下の表に従って、適切なポートを開いてビルドを取得してください。
| Port | Name | Protocol | 
|---|---|---|
| 60001 | bolt_server | UDP | 
| 5055 | master_server1 | UDP | 
| 27001 | master_server2 | UDP | 
| 5056 | game_server1 | UDP | 
| 27002 | game_server2 | UDP | 
| 5058 | name_server1 | UDP | 
| 27000 | name_server2 | UDP | 
ビルド詳細 - オプション
CertificateとMetadataはオプションのフィールドであり、このチュートリアルでは説明しません。
リージョン
Regionsフィールドでは、プレイヤーを待つためにサーバーがデプロイされるリージョンを定義します。必要なリージョンを設定できますが、値1が最低でもスタンバイサーバーと最大サーバーに設定されていることを確認してください。
これにより、 1つのゲームサーバーを実行する1つの仮想マシンが保証されます。
これらの値は後から変更できます。
- 推奨オプション:
- リージョン: East US
- スタンバイサーバー: 1
- 最大サーバー:1
 
- リージョン: 
構築と接続
ビルド設定が適切に設定されたので、Saveボタンをクリックします。次のステップには時間がかかります。
すべての設定を保持した後、PlayFab Orchestratorがシーンに入り、残りの詳細を処理します。
- Azureインフラストラクチャで利用可能な- ホスティングマシンをプロビジョニングする。
- 必要な仮想マシンを作成する。
- 設定を使用して Dockerイメージを設定および作成する。
- Game Serverを実行しているコンテナーを生成する。
このプロセスのステータスは、メインダッシュボードのBuildタブのMultiplayerメニューから直接確認できます。
ステータスがDeployingからHealthに変わるはずです。
緑色のHealthステータスが表示されたら、サーバーがPlayFab Thunderheadにデプロイされて実行されていることを意味します!
VMごとにより多くのサーバーを実行している場合、他のタブに、ゲームが実行されている仮想マシンと個々のインスタンスのステータスに関する詳細情報が表示されます。
Azure VMにリモートアクセスすることもできます。これは、デバッグを実行するのに非常に便利です。
この時点で、Game Serverに接続する準備ができています。
Unityプロジェクトに戻り、 PlayFabHeadlessServerシーンからゲームを実行します。クライアントとして起動し、Thunderheadサーバーによって公開されたセッションに参加できるPlayFabClientメニューが瞬時に読み込まれます。