ゲーム マネージャーを使用したビルドの配置
この記事では、ゲーム マネージャーを使用して VM のビルドを展開/作成するための一般的な手順を示します。
ビルドを初めて展開する場合は、Windows Runner C# サンプル、またはWrapper サンプルの使用をお勧めします。 どちらも、実際にサーバーをデプロイするために必要なすべてのアセットが含まれています。
注意
PlayFab Multiplayer Servers を使用して表示するには、ゲーム マネージャーから機能を有効にする必要があります。 手順については、「PlayFab サーバー 機能を有効にする」を参照してください。
各パラメーターに使用できる値の詳細については、「ビルド定義」を参照してください。
ゲーム マネージャーにサインインする
[マイ スタジオとタイトル] ページに移動し、ゲーム タイトルを選択してダッシュボードを表示します
「マルチプレイヤー>サーバーページ」 に移動し、右上にある[新しいビルド]を選択して新しいビルドを作成します
ビルドの詳細とともに始め、説明的な文字列をビルド名として使用します。
開発中は、Dasv4 など、制限付き無料扱いのサーバーを選択します。 価格の詳細については、「PlayFab マルチプレイヤー サーバーの課金」を参照してください。
コンピューターごとのサーバーに必要な値を設定します
次の図は、info セクションで使用される値を示しています。
次に、サーバーの詳細部分が表示され、この部分では、Windows または Linux の何れかのOS の種類を 1 つ選択する必要があります。 そしてあなたが選んで決定した OS に基づいて、プロセスまたはコンテナーの何れかのサーバーの種類を選択します。
注意
Linux プラットフォームの場合は、独自のコンテナー イメージを作成する必要があります。 詳細については、「Linux コンテナー イメージを作成してデプロイする」を参照してください。 コンテナー イメージを既にアップロードしている場合は、[イメージ] ドロップダウンに表示されます。 これを使用するには、イメージを選択します。
OS の種類を選択したら、サーバーの種類を選択できます。 OS/サーバーの種類に基づいて、次の機能を有効にできます。
- 仮想マシン メトリック プレビュー: これを有効にすると、CPU、メモリ、ネットワークなどのシステム レベルのメトリックを確認できます。詳細については、VM のパフォーマンス メトリック (プレビュー) に関する記事をお読みください。
- Windows Core Preview: テスト ビルドで最新バージョンの Windows オペレーティング システムをテストして、新しいオペレーティング システムでゲームがどのように実行されるのか確認できます。 詳細については、「Windows OS のパッチレベルの更新プログラム」を参照してください。
- Automatic Crash Dump Collection: Windows コンテナー サーバー タイプの自動クラッシュ ダンプ 収集機能を有効化できます。 完全、ミニ、またはカスタムのダンプの取得を選び決定できます。 詳細については、「クラッシュ ダンプの 自動収集の有効化」をご覧ください。
次の図は、Windows をプラットフォームとして選択し、かつ Process ベースのサーバー タイプとするときに [OS] セクションで使用される値を示しています。 Linux プロセス ベースのサーバーを使用するオプションもあります。
次の図は、プラットフォームとして Linux を選択したが、コンテナー ベースのサーバー タイプを使用する場合に、OS セクションで使用される値を示しています。 Windows コンテナー ベースのサーバーを使用するオプションもあります。
- 資産で、[アップロード] を選択します。 コンパイル済みの PlayFab マルチプレイヤー サーバー ビルドを含むフォルダーに移動し、アップロードする .zip パッケージを選択します。
- Windows プラットフォームの場合は、PlayFab ゲーム サーバー ビルドを資産としてアップロードする必要があります。 PlayFab ゲーム サーバー ビルドを作成する方法については、「ゲーム サーバー ビルドの作成」を参照してください。 資産をアップロードして、Windows コンテナー イメージを変更、カスタマイズします。 Windows サーバー内のアセットのマウント パスは、C ドライブにルートが置かれる必要があります。
Windows コンテナー サーバー用の資産
Windows サーバーのアセットは C ドライブに存在する必要があります。さもなければ、API がエラーを返す可能性があります。 マウント パスはコンテナー のみ 必要です。
注意
プロセス ベースのサーバーのマウント パスは指定しません。
- Linux プラットフォームでは、ゲーム サーバーをコンテナー イメージの一部に含めることができるので、アセットのアップロードはオプションです。 ただし、引き続きゲーム サーバーが必要です。アップロードするコンテナー内でマウント パスが有効であることを確かめて下さい。
アセットをアップロードする場合:
- C:\Assets を設定するか、マウント パスとして別のパスを選択します
- C:\Assets\YourGameServerBuild.exe を Start コマンドとして設定します
- ネットワークの場合は、ポート番号、名前、プロトコルを設定します。
コンテナー サーバー タイプを使用している場合は、ポート番号を指定する必要があります。
たとえば、コンテナー サーバー タイプの Game Manager では、次を指定できます:
- ポート名: "gameServerPort"
- ポート番号: 7777
- プロトコル: UDP
次に、コードで次のような操作を行います
int port = 7777; // since you already know the port
GameServer gs = new GameServer(port);
gs.start();
注意
コンテナー モードでは、各ゲーム サーバーは独自のネットワーク名前空間で実行されます。 これが、すべてのゲーム サーバーが同じポートをリッスンできる理由です。 コンテナー ポートは、仮想マシン上のポートに動的かつ一意にマップされます。 ただし、プロセス モードについては、すべてのゲーム サーバーが同じネットワーク名前空間で実行されます。 すべてのゲーム サーバーが同じポートをリッスンすると競合が発生します。それが、GSDK から ServerListeningPort を取得する必要がある理由です。
プロセス サーバー タイプについては、GSDK を使用してポート番号を取得する必要があります。 ビルド定義の一部としてポート番号を含めません。
次に、コードで次のようなことを行いたいと思います:
var gsc = GameServerSDK.GetConnectionInfo();
var gp = gsc.Where(x=>x.Name=="gameServerPort").Single();
GameServer gs = new GameServerPort(gp.ServerListeningPort);
完全なサンプル コードを表示するには、GSDK/CSharp/GSDK_CSharp_Standard の GameServerConnectionInfo.cs に移動します。GSDK からポートを取得する上記のコード サンプルは、コンテナー モードでも機能します。
開始コマンドは、要求された全ての引数を含めたゲームの実行ファイルへの絶対パス (マウント パスを含む) にする必要があります。 たとえば、開始コマンドは、C:\Assets\wrapper.exe -g C:\Assets\fakegame.exe arg1 arg2 のようになります。 "C:\Assets" の部分を開始コマンドの絶対パスに追加する必要があるのは、それが Windows コンテナー ベースのサーバーである場合のみです。 それは、ゲーム アセットの展開元ディレクトリだからです。
開始コマンドは、アップロードされたアセット内の相対パスです。 実行可能ファイルがアセット フォルダ内に直接ある場合は、<yourGameServerBuild.exe> を使用できます。 別のフォルダー (例えば GameDirectory など) 内にある場合、開始コマンドは gameDirectory/YourGameServerBuild.exe のようになります。
- [領域] で、サーバーを展開する領域を選択します。 次に、スタンバイ サーバーの数と最大サーバー数を指定します。
- [保存] を選択して、展開プロセスを開始します。 ビルドのホーム ページが取得されます。 ビルドには、次の図に示すように、Deploying 状態が表示されます。
数分で、ビルドはDeployed 状態になります。 これは、サーバーが展開され、割り当て可能なことを意味します。 ゲーム サーバーの割り当ての詳細については、こちらをご覧頂くことが可能で、そこではMpsAllocatorSample を使用してサーバーの割り当てを検証することができます。
ビルドを展開した後も、次のパラメーターを変更できます。
- リージョン
- スタンバイ サーバー
- 最大サーバー数
領域設定の構成方法
- [サーバー]>[ビルド] ページに移動します
- 変更するビルドを選択します
- [リージョン] タブで、[リージョン別のサーバー] セクションに移動します
- 領域の追加/削除とサーバー番号の変更
ヒント
開発中に、VM コア時間の使用を回避するために、未使用または異常なリージョンをシャット オフします。 コア時間の使用は、VM の起動時に開始され、VM がシャット オフされるまで続行されます。 リージョンのターゲット スタンバイ サーバーが 0 に達するか、リージョンが削除されない限り、リージョン内の VM は自動的にシャット オフされません。
VM をシャットダウンするには 3 つの方法があります
- リージョンのターゲット スタンバイを 0 に設定すると、このリージョンの VM のみがシャットダウンされます。
- ビルドから特定のリージョンを削除します。
- ビルド全体を削除すると、このビルドのすべてのリージョンにわたって VM がシャットダウンされます。