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
メニューが瞬時に読み込まれます。