Integration in PlayFab Multiplayer-Server

Matchmaking enthält eine Option, die automatisch einen Spielserver für die resultierende Übereinstimmung erstellen kann. Der zugeordnete Server führt einen Build aus, der in der Konfiguration der Warteschlange konfiguriert ist. Beim Start wird der Server in den Mitgliedern des Spiels als Liste der ersten Spieler übergeben.

Eine Matchmaking-Warteschlange ist an einen einzelnen Multiplayerserverbuild oder einen Buildalias gebunden.

Anforderungen für die verwendung der direkten Integration von Matchmaking und Servern

Um einen Multiplayer-Server aus dem Matchmaking zuzuordnen, müssen Sie zunächst einen Build konfigurieren und bereitstellen. Optional können Sie einen Buildalias erstellen und diesen auch verwenden. Buildaliase werden bevorzugt, da sie mehr Flexibilität bei der Verwendung von Titeln ermöglichen. Folgen Sie dem link, den wir hier bereitgestellt haben, um weitere Informationen zu Multiplayer-Server-Builds und Multiplayer-Server-Buildalias zu erhalten.

Außerdem muss der Warteschlange eine Regionsauswahlregel hinzugefügt werden, damit Übereinstimmungen in der optimalen Region für den Build zugeordnet werden können. Die Latenzmessungen, die an die Regionsauswahlregel übergeben werden, sollten mit den Regionen übereinstimmen, in denen der Build aktiv ist. Weitere Informationen zum Übergeben von Attributen an eine Regionsauswahlregel finden Sie unter Regionsauswahlregel.

Aktivieren der Serverzuordnung für die Warteschlange

Um die Serverzuordnung für eine Warteschlange zu aktivieren, müssen Sie das Kontrollkästchen Serverzuordnung aktivieren auf der Seite mit der Warteschlangenkonfiguration aktivieren. Nachdem Sie dies aktiviert haben, wählen Sie entweder Buildalias oder Build-ID aus. Wählen Sie in der Dropdownliste den richtigen Wert aus, der von der Warteschlange verwendet werden soll. Nachdem Sie das Feature aktiviert haben, versucht die Matchmaking, einen Server für alle übereinstimmungen zuzuweisen, die in der Warteschlange erstellt wurden.

Im folgenden Beispiel sollte die Konfiguration für eine Warteschlange mit Multiplayerserverintegration unter Verwendung einer Build-ID aussehen.

"MatchmakingQueue": {
    "Name": "ServerEnabledQueue",
    "MinMatchSize": 2,
    "MaxMatchSize": 2,
    "ServerAllocationEnabled": true,
    "BuildId": "88b3e315-829c-4b6d-9872-74f427ad5331",
	"RegionSelectionRule": {
		"MaxLatency": 1000,
		"Path": "Latencies",
		"Weight": 1.0,
		"Name": "RegionSelectionRule"
	}
}

Hier sehen Sie das gleiche Beispiel mit einem verwendeten Buildalias.

"MatchmakingQueue": {
    "Name": "ServerEnabledQueue",
    "MinMatchSize": 2,
    "MaxMatchSize": 2,
    "ServerAllocationEnabled": true,
    "BuildAliasParams": {
        "AliasId": "d14e2ac7-ea51-47aa-a7ba-cc427ab74f9s"
    },
	"RegionSelectionRule": {
		"MaxLatency": 1000,
		"Path": "Latencies",
		"Weight": 1.0,
		"Name": "RegionSelectionRule"
	}
}

Der Ablauf der Aufrufe an die Matchmaking-Instanz bleibt unverändert, wenn die Serverzuordnung aktiviert ist. Sobald die Matchmaking einen Server für die Übereinstimmung zuweist, können die resultierenden Serverdetails aus dem Match-Objekt selbst gelesen werden, indem GetMatch aufgerufen wird.

Unten finden Sie eine Beispielantwort für einen GetMatch Aufruf einer Warteschlange mit aktivierter Serverzuordnung.

{
    "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
        }]
    }
}

Die Clients können die IP-Adresse und den Port aus dem Abschnitt mit den Serverdetails der Antwort verwenden, um eine Verbindung mit dem Server herzustellen. Weitere Informationen zum Verbinden von Clients mit Multiplayerservern finden Sie unter Verbinden von Clients mit Servern.

Notiz

Wenn eine Region Ihres Builds nicht mehr genügend Kapazität hat, kann die Matchmaking keine Übereinstimmungen für die Warteschlange in dieser Region zuordnen. Die Zuordnung wird so lange wiederholt, bis das Ticket abläuft. Informationen zum Erhöhen der Multiplayerkapazität finden Sie unter Zugreifen auf erhöhte Kerngrenzwerte und zusätzliche Azure-Regionen.

An den Spielserver übergebene Informationen

Dies ist die Liste der Informationen, die die Matchmaking an den Server übergibt.

  • SessionId : Die SessionId für den Server ist gleich der MatchId für die Übereinstimmung.
  • InitialPlayers : Dieser Wert wird auf die Liste der Mitglieder in der Übereinstimmung festgelegt. Die Liste der Spieler kann im Spiel mithilfe des GSDK gelesen werden.
  • PreferredRegions : Dieses Feld ist auf das RegionPreferences Feld aus der Übereinstimmung festgelegt. Der Spieleserverdienst wählt eine geeignete Region für den Server aus dieser Liste aus.

Beim Matchmaking werden keine Ticketattribute an den Spielserver übergeben. Wenn das Spiel auf Ticketattribute auf dem Server zugreifen muss, kann dies durch Aufrufen von GetMatch mit dem ReturnMemberAttributes Header von ausgeführt truewerden.

Notiz

Wir haben kürzlich die Übergabe des Warteschlangennamens während der Serverzuordnung aktiviert. Dieses Feature befindet sich in der Vorschauphase, und Sie können hier mehr darüber erfahren.