マルチプレイヤー セッションの割り当て
PlayFab マルチプレイヤー サーバー 2.0 では、RequestMultiplayerServer API を使用してマルチプレイヤー サーバー アプリケーションのインスタンスを割り当てることができます。 通常、この API は、特定のタイトル用に構成された PlayFab Developer Secret Key を使用して、自身のサービス(マッチメイキング サービスやロビー サービスなど)から呼び出されます。シークレット キーの詳細については、「Secret key management」を参照してください。 プレイヤーを集めてサーバーを割り当てる典型的なパターン:- クライアントがネットワーク QoS 情報を収集します。
- クライアントはカスタム マッチメイキング サービスと対話するか、ソーシャル招待で集まります。
- カスタム マッチメイキング サービスは、優先順位付きリージョン リストを使用してグループにセッションを割り当てます。
- BuildID - 割り当てる特定のサーバー ビルド。
- SessionID - セッションの識別子。これは呼び出し元が生成する GUID 文字列です。同じ論理セッションに対するこの API の再試行では、同じ識別子を再利用する必要があります。これにより、呼び出し元の再試行動作が不要なサーバーを作成する可能性が軽減されます。
- SessionCookie - アクティブ化時にゲーム サーバー SDK 経由で割り当てられたセッションに伝達される任意のデータです。このフィールドの典型的な使い方は、ゲーム サーバーがクライアントを認証するために使用する共有キーを伝達することです。データは 4 キロバイト未満でなければなりません。
- PreferredRegions - サーバーの割り当てに使用するリージョンの順序付きリスト。リージョンをランク付けするための主要な要因として、クライアント デバイスから収集したネットワーク QoS 測定値を使用することをお勧めします。
- サーバーの IPv4 アドレス。
- TCP/UDP ポート マッピング(「Connecting Clients to game servers」を参照)。
- サーバーの Region。
ゲーム開発中にゲーム サーバーを簡単に割り当てる方法として、MpsAllocatorSample(こちらで入手可能)を使用できます。
クライアントによる割り当て
マルチプレイヤー サーバーは高価かつ強力です。デフォルトでは、PlayFab Developer Secret Key を使用して、自身の信頼できるサービスからのみマルチプレイヤー サーバーを要求できます。 しかし、プレイヤー デバイスから直接サーバーを割り当てることで、サービス間呼び出しを実装するコストを節約でき、状況によっては便利な場合があります。 クライアントによる割り当てを有効にするには:- 左側のメニューから Settings を選択します。
- API Features タブを選択します。
- 次に Allow Client to start games オプションを有効にします。
デプロイされたマルチプレイヤー サーバーのデバッグ
Azure にデプロイされたゲーム サーバーをリモートでデバッグしたい場合があります。Visual Studio では、現在、コンテナー内に Visual Studio Remote Debugging ツールをインストールして構成する必要があります。以下の手順は、安全でない、認証されていないデバッグを可能にします。
- VS2017 Remote Debugging ツールを取得します:
- これらのツールをゲーム サーバー アセット パッケージに含めます。
- Game Manager または Entity API でサーバー ビルドを作成する際、ポート 4022 TCP をデバッグ ポートとして構成します。
- リモート デバッグを有効にするために、コンテナー内で
msvsmonを実行する必要があります。一般的なパターンは、Game Start コマンドとして CMD スクリプトを指定し、コマンドライン引数を使用してゲーム サーバー実行ファイルに加えてmsvsmonを起動することです。 msvsmonを次のパラメーターで一度実行します:
- 次のフラグを付けて
msvsmonを実行します(以下を参照)。
空いていないランダムなポートにバインドされるのではなく、ポートが既に使用されている場合にプロセスの終了コードを処理できるようにするために、ポートを明示的にリストすることをお勧めします。
- ゲーム サーバーを割り当てます。
- 割り当て呼び出しから返された外部デバッグ ポートを使用して、VS 経由でデバッグを試みます。
