FlexMatchZu einem von Amazon GameLift gehosteten Spieleserver hinzufügen - Amazon GameLift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

FlexMatchZu einem von Amazon GameLift gehosteten Spieleserver hinzufügen

In diesem Thema wird beschrieben, wie Sie benutzerdefinierten Spieleservern, die Amazon GameLift Managed Hosting verwenden, FlexMatch Matchmaking-Unterstützung hinzufügen. Weitere Informationen zum Hinzufügen von FlexMatch zu Ihren Spielen finden Sie in den folgenden Themen:

Bei den Informationen in diesem Thema wird davon ausgegangen, dass Sie das Amazon GameLift Server SDK erfolgreich in Ihr Gameserverprojekt integriert haben, wie unter Amazon GameLift zu Ihrem Gameserver hinzufügen beschrieben. Wenn dies abgeschlossen ist, stehen die meisten der benötigten Mechanismen zur Verfügung. Die Abschnitte in diesem Thema behandeln die verbleibenden Aktivitäten für Spiele, die mit FlexMatch eingerichtet wurden.

Richte deinen Gameserver für Matchmaking ein

Um Ihren Spielserver so einzurichten, dass er mit dem Spiel-Matching umgehen kann, führen Sie die folgenden Aufgaben aus.

  1. Starten Sie Spielsitzungen, die mit Matchmaking erstellt wurden. Um eine neue Spielsitzung anzufordern, GameLift sendet Amazon eine onStartGameSession() Anfrage mit einem Spielesitzungsobjekt an Ihren Spieleserver (siehe GameSession). Ihr Spielserver verwendet die Informationen der Spielsitzung, einschließlich der angepassten Spieldaten, um die angeforderte Spielsitzung zu starten. Weitere Informationen findest du unter Eine Spielsitzung starten.

    Für Match-Spiele enthält das Spielsitzungsobjekt auch eine Reihe von Matchmaker-Daten. Matchmaker-Daten enthalten Informationen, die Ihr Spieleserver benötigt, um eine neue Spielsitzung für das Match zu starten. Dazu gehören die Teamstruktur des Matches, Teamzuweisungen und bestimmte Spielerattribute, die für Ihr Spiel relevant sein könnten. Ihr Spiel könnte beispielsweise basierend auf der durchschnittlichen Spieler-Qualifikationsstufe bestimmte Features oder Levels freischalten. Sie können basierend auf den Präferenzen des Spielers aber auch eine Zuordnung wählen. Weitere Informationen finden Sie unter Arbeiten Sie mit Matchmaker-Daten.

  2. Verarbeitung von Spieler-Verbindungen. Beim Herstellen einer Verbindung zu einem passenden Spiel verweist ein Spielclient auf eine Spieler-ID und eine Spielersitzungs-ID (siehe Einen neuen Spieler validieren). Ihr Spieleserver verwendet die Spieler-ID, um einen eingehenden Spieler mit Spielerinformationen in den Matchmaker-Daten zu verknüpfen. Matchmaker-Daten identifizieren die Teamzuordnung eines Spielers und können weitere Informationen für die korrekte Darstellung des Spielers im Spiel liefern.

  3. Melden von Spielern, die ein Spiel verlassen. Vergewissere dich, dass dein Gameserver die Server-API aufruftRemovePlayerSession(), um ausgeschiedene Spieler zu melden (siehe Ende einer Spielersitzung melden). Dieser Schritt ist wichtig, wenn Sie FlexMatch-Backfill zum Füllen verfügbarer Spielerplätze in bestehenden Spielen verwenden. Dies ist von entscheidender Bedeutung, wenn Ihr Spiel Backfill-Anforderungen über einen clientseitigen Spieleservice initiiert. Weitere Informationen zur Implementierung von FlexMatch-Backfill finden Sie unter Füllt bestehende Spiele auf mit FlexMatch.

  4. Anfordern von neuen Spielern für bestehende Spielsitzungen (optional). Entscheiden Sie, wie Sie Ihre vorhandenen Match-Spiele auffüllen möchten. Wenn als Backfill-Modus Ihrer Matchmaker „manuell“ eingestellt ist, ist es ratsam, Backfill-Unterstützung zu Ihrem Spiel hinzuzufügen. Wenn als Backfill-Modus „automatisch“ eingestellt ist, benötigen Sie möglicherweise eine Methode, mit der Sie ihn für einzelne Spielsitzungen ausschalten können. So möchten Sie beispielsweise vielleicht das Backfilling einer Spielsitzung stoppen, sobald ein bestimmter Punkt im Spiel erreicht wurde. Weitere Informationen zum Verwalten von Match-Backfill finden Sie in Füllt bestehende Spiele auf mit FlexMatch.

Arbeiten Sie mit Matchmaker-Daten

Ihr Gameserver muss in der Lage sein, die Spielinformationen in einem GameSessionObjekt zu erkennen und zu verwenden. Der GameLift Amazon-Dienst leitet diese Objekte an Ihren Spieleserver weiter, wenn eine Spielesitzung gestartet oder aktualisiert wird. Zu den Kerninformationen der Spielsitzung gehören die ID und der Name der Spielsitzung, die maximale Spieleranzahl, Verbindungsinformationen und benutzerdefinierte Spieldaten (falls vorhanden).

Bei Spielsitzungen, die mit FlexMatch erstellt werden, enthält das GameSession-Objekt auch eine Reihe von Matchmaker-Daten. Zusätzlich zu einer eindeutigen Match-ID identifiziert es den Matchmaker, mit dem das Match erstellt wurde, und beschreibt die Teams, Teamzuweisungen und Spieler. Es enthält die Spielerattribute aus der ursprünglichen Matchmaking-Anforderung (siehe Player-Objekt). Wenn Sie Latenzdaten von aktuellen Spielern benötigen (z. B. für das Match-Backfill), empfehlen wir Ihnen, neue Daten abzurufen.

Anmerkung

Matchmaker-Daten geben den vollständigen Matchmaking-Konfigurations-ARN an, der den Konfigurationsnamen, das AWS Konto und die Region identifiziert. Wenn Match-Backfill von einem Spiele-Client oder -Service angefordert wird, wird nur der Konfigurationsname benötigt. Sie können den Konfigurationsnamen extrahieren, indem Sie die Zeichenfolge nach „:matchmakingconfiguration/“ analysieren. Im gezeigten Beispiel lautet der Name der Matchmaking-Konfiguration "MyMatchmakerConfig“.

Die folgenden JSON-Daten zeigen einen typischen Satz von Matchmaker-Daten. Dieses Beispiel beschreibt ein Spiel mit zwei Spielern, bei dem die Spieler auf der Grundlage von Skill-Bewertungen und der höchsten erreichten Stufe aufeinander abgestimmt sind. Der Matchmaker hat außerdem auf Basis des Charakters nach passenden Spielern gesucht. So wurde sichergestellt, dass die Spieler, die sich in einem Match befinden, mindestens eine bevorzugte Karte gemeinsam haben. In diesem Fall sollte der Spieleserver in der Lage sein, die am meisten bevorzugte Zuordnung zu bestimmen und sie in der Spielsitzung zu verwenden.

{ "matchId":"1111aaaa-22bb-33cc-44dd-5555eeee66ff", "matchmakingConfigurationArn":"arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig", "teams":[ {"name":"attacker", "players":[ {"playerId":"4444dddd-55ee-66ff-77aa-8888bbbb99cc", "attributes":{ "skills":{ "attributeType":"STRING_DOUBLE_MAP", "valueAttribute":{"Body":10.0,"Mind":12.0,"Heart":15.0,"Soul":33.0}} } }] },{ "name":"defender", "players":[{ "playerId":"3333cccc-44dd-55ee-66ff-7777aaaa88bb", "attributes":{ "skills":{ "attributeType":"STRING_DOUBLE_MAP", "valueAttribute":{"Body":11.0,"Mind":12.0,"Heart":11.0,"Soul":40.0}} } }] }] }