PlayFab マルチプレーヤーサーバーとの統合

マッチメイキングには、検索結果と一致するように、自動的にゲームサーバーを作成するオプションが含まれています。 割り当てられたサーバーは、キューの構成で構成されているビルドを実行します。起動時に、サーバーは、最初の選手の一覧として、match の @outlook .com メンバーに渡されます。

マッチメイキングキューは、1つのマルチプレイヤーサーバービルドに関連付けられています。

マッチメイキングとサーバーの直接的な統合を使用するための要件

マッチメイキングからマルチプレイヤーサーバーを割り当てるには、最初にビルドを構成して展開する必要があります。 ここに記載されているリンクに従って、マルチプレイヤー向けのサーバービルドに関する詳細情報を確認してください。

マッチメイキングでは、領域の選択ルールもキューに追加する必要があります。したがって、一致する要素は、ビルドの最適な領域に割り当てることができます。 地域選択ルールに渡された待機時間の測定値は、ビルドがアクティブになっている地域と一致する必要があります。 領域選択ルールに属性を渡す方法の詳細については、「地域選択ルール」を参照してください。

キューのサーバー割り当てをアクティブ化する

キューに対してサーバーの割り当てを有効にするには、[キューの構成] ページで [サーバーの割り当てを有効にする] BuildIdチェックguidボックスをオンにし、キューに関連付ける () を提供する必要があります。 この機能を有効にすると、マッチメイキングはキュー内に作成されたすべての一致に対してサーバーを割り当てようとします。

次の例は、マルチプレーヤーサーバーの統合を備えたキューの構成を示しています。

"MatchmakingQueue": {
    "Name": "ServerEnabledQueue",
    "MinMatchSize": 2,
    "MaxMatchSize": 2,
    "ServerAllocationEnabled": true,
    "BuildId": "88b3e315-829c-4b6d-9872-74f427ad5331",
    "Rules": [
        {
            "Type": "RegionSelectionRule",
            "MaxLatency": 1000,
            "Path": "Latencies",
            "Weight": 1,
            "Name": "RegionRule",
            "SecondsUntilOptional": 60
        }
    ]
}

サーバーの割り当てが有効になっている場合、マッチメイキングへの呼び出しの流れは変わりません。 マッチメイキングにサーバーが割り当てられると、結果として返されるサーバーの詳細は、 Getmatchを呼び出すことによって match オブジェクト自体から読み取ることができます。

サーバーの割り当てが有効になってGetMatchいるキューの呼び出しについては、次のサンプル応答が提供されています。

{
    "MatchId": "7c36330d-46b5-443f-8d8f-10390bce09d5",
    "Members": [{
        "TeamId": "",
        "Entity": {
            "Id": "67282A13A1A58910",
            "Type": "title_player_account",
            "TypeString": "title_player_account"
        },
        "Attributes": {
            "DataObject": null,
            "EscapedDataObject": "{\"StringEqualityRulePath\":\"0bc42969-76b1-4dcb-871d-d6e19cee741b\"}"
        }
    },
    {
        "TeamId": "",
        "Entity": {
            "Id": "6DB2B17FD21CC230",
            "Type": "title_player_account",
            "TypeString": "title_player_account"
        },
        "Attributes": {
            "DataObject": null,
            "EscapedDataObject": "{\"StringEqualityRulePath\":\"0bc42969-76b1-4dcb-871d-d6e19cee741b\"}"
        }
    }],
    "RegionPreferences": ["WestUs", " EastUs"],
    "ServerDetails": {
        "IPV4Address": "40.76.31.170",
        "Ports": [{
            "Name": "game_port",
            "Num": 30003
        }]
    }
}

クライアントは、応答の [サーバーの詳細] セクションの IP アドレスとポートを使って、サーバーに接続することができます。 クライアントをマルチプレーヤーサーバーに接続する方法の詳細については、「クライアントをサーバーに接続する」を参照してください。

注意

ビルドの領域が不足している場合、マッチメイキングは、その領域内のキューの一致を割り当てることができません。 マッチメイキングは、チケットの有効期限が切れるまで、割り当ての再試行を続けます。 マルチプレイヤーの能力を向上させるには、「コア制限の引き上げ」および「その他の Azure 地域へのアクセス」を参照してください

ゲームサーバーに渡される情報

マッチメイキングがサーバーに渡す情報の一覧を次に示します。

  • SessionId -サーバー SessionIdの場合は、一致の matchid と等しくなります。
  • [ Initialplayers ]: この値は、一致するメンバーの一覧に設定されます。 プレーヤーの一覧は、" sdk" を使ってゲームで読み上げることができます。
  • Preferredregions -このフィールドは、対応するRegionPreferencesフィールドに設定されます。 この一覧からサーバーの適切な地域が選択されます。

マッチメイキングは、チケットの属性をゲームサーバーに渡しません。 ゲームがサーバー上のチケット属性にアクセスする必要がある場合は、 ReturnMemberAttributesヘッダーとの間でgetmatchを呼びtrue出すことで実行できます。