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.
Generieren Sie manuelle Backfill-Anfragen von einem Spieleserver
Du kannst Match-Backfill-Anfragen manuell über den Spielserverprozess initiieren, der die Spielsitzung hostet. Der Serverprozess enthält die meisten up-to-date Informationen über Spieler, die mit dem Spiel verbunden sind, und über den Status leerer Spielerplätze.
In diesem Thema wird davon ausgegangen, dass Sie bereits die notwendigen FlexMatch-Komponenten erstellt und erfolgreich Matchmaking-Prozesse zu Ihrem Spieleserver und einem clientseitigen Spieleservice hinzugefügt haben. Weitere Details zur Einrichtung von FlexMatch finden Sie unter Roadmap: Fügen Sie einer Amazon GameLift Servers Hosting-Lösung Matchmaking hinzu.
Um Match-Backfill für Ihr Spiel zu ermöglichen, fügen Sie die folgenden Funktionen hinzu:
-
Senden Sie Matchmaking-Backfill-Anforderungen an einen Matchmaker und verfolgen Sie den Status der Anfragen.
-
Aktualisieren Sie die Spielinformationen für die Spielsitzung. Siehe Aktualisiere die Spieldaten auf dem Spielserver.
Wie andere Serverfunktionen verwendet auch ein Spielserver das Amazon GameLift Servers-Server-SDK. Dieses SDK ist in C++ und C# verfügbar.
Um Match-Backfill-Anforderungen von Ihrem Spielserver zu erstellen, führen Sie die folgenden Aufgaben aus.
-
Lösen Sie eine Match-Backfill-Anforderung aus. Normalerweise wollen Sie eine Backfill-Anforderung auslösen, wenn ein passendes Spiel einen oder mehrere leere Spieler-Slots hat. Sie können Backfill-Anforderungen an bestimmte Umstände knüpfen, z. B. um kritische Rollen zu besetzen oder Teams auszugleichen. Wahrscheinlich möchten Sie auch die Backfilling-Aktivität auf der Grundlage des Alters einer Spielsitzung einschränken.
-
Erstellen Sie eine Backfill-Anforderung. Fügen Sie Code hinzu, um Match-Backfill-Anforderungen zu erstellen und an einen FlexMatch-Matchmaker zu senden. Backfill-Anfragen werden über diese Server APIs bearbeitet:
Um eine Backfill-Anforderung zu erstellen, rufen Sie
StartMatchBackfillmit den folgenden Informationen auf. Um eine Backfill-Anforderung abzubrechen, rufen SieStopMatchBackfillmit der Ticket-ID der Backfill-Anforderung auf.-
Ticket-ID — Geben Sie eine Matchmaking-Ticket-ID an (oder entscheiden Sie sich für eine automatische Generierung). Sie können denselben Mechanismus verwenden, um Tickets sowohl Matchmaking- als auch IDs Backfill-Anfragen zuzuweisen. Tickets für Matchmaking und Backfilling werden auf die gleiche Weise verarbeitet.
-
Matchmaker — Identifizieren Sie, welcher Matchmaker für die Backfill-Anfrage verwendet werden soll. Im Allgemeinen werden Sie den gleichen Matchmaker verwenden wollen, der auch für die Erstellung des ursprünglichen Matchs verwendet wurde. Diese Anforderung nimmt eine Matchmaking-Konfiguration-ARN entgegen. Diese Informationen werden im Objekt der Spielsitzung gespeichert (GameSession), das dem Serverprozess Amazon GameLift Servers bei der Aktivierung der Spielsitzung zur Verfügung gestellt wurde. Der Matchmaking-Konfiguration-ARN ist in der Eigenschaft
MatchmakerDataenthalten. -
ARN für die Spielsitzung — Identifizieren Sie, dass die Spielsitzung aufgefüllt wird. Sie können den ARN der Spielsitzung abrufen, indem Sie die Server-API GetGameSessionId() aufrufen. Während des Matchmaking-Prozesses haben Tickets für neue Anfragen keine Spielsitzungs-ID, während Tickets für Backfill-Anforderungen eine solche besitzen. Das Vorhandensein der Sitzungs-ID ist ein Weg, um den Unterschied zwischen Tickets für neue Spiele und Tickets für Backfills zu erkennen.
-
Spielerdaten — Füge Spielerinformationen (Spieler) für alle aktuellen Spieler der Spielsitzung hinzu, die du auffüllst. Diese Informationen ermöglichen es dem Matchmaker, die bestmöglichen Spiele für die Spieler zu finden, die sich gerade in der Spielsitzung befinden. Sie müssen die Teammitgliedschaft für jeden Spieler angeben. Geben Sie kein Team an, wenn Sie kein Backfill verwenden. Wenn Ihr Spielserver den Verbindungsstatus des Spielers korrekt gemeldet hat, sollten Sie diese Daten wie folgt erfassen können:
-
Der Serverprozess, der die Spielsitzung hostet, sollte die meisten up-to-date Informationen darüber enthalten, welche Spieler derzeit mit der Spielsitzung verbunden sind.
-
Um Spieler IDs, Attribute und Teamzuweisungen abzurufen, rufen Sie Spielerdaten aus dem Objekt (GameSession), der
MatchmakerDataEigenschaft (sieheÜber Matchmaker-Daten) der Spielsitzung ab. Die Matchmaker-Daten umfassen alle Spieler, die der Spielsitzung zugeordnet wurden, sodass Sie die Spielerdaten nur für die aktuell verbundenen Spieler abrufen müssen. -
Sammeln Sie neue Latenzwerte von allen aktuellen Spielern und fügen Sie diese in jedes
Player-Objekt ein, wenn der Matchmaker Latenzdaten anfordert. Wenn Latenzdaten weggelassen werden und der Matchmaker eine Latenzregel hat, wird die Anfrage nicht erfolgreich zugeordnet. Backfill-Anforderungen erfordern Latenzdaten nur für die Region, in der sich die Spielsitzung gerade befindet. Sie können die Region einer Spielsitzung aus derGameSessionId-Eigenschaft desGameSession-Objekts abrufen. Dieser Wert ist ein ARN, der die Region enthält.
-
-
-
Verfolgen Sie den Status einer Backfill-Anfrage. Amazon GameLift Serversinformiert deinen Spieleserver mithilfe der Server-SDK-Callback-Funktion über den Status von Backfill-Anfragen
onUpdateGameSession(siehe Serverprozess initialisieren). Fügt Code für die Bearbeitung der Statusmeldungen — sowie der aktualisierten Spielsitzungsobjekte als Ergebnis erfolgreicher Backfill-Anfragen — unter hinzu. Aktualisiere die Spieldaten auf dem SpielserverEin Matchmaker kann jeweils nur eine Match-Backfill-Anforderung aus einer Spielsitzung verarbeiten. Wenn Sie eine Anfrage stornieren müssen, rufen Sie () an. StopMatchBackfill Wenn Sie eine Anforderung ändern müssen, rufen Sie
StopMatchBackfillauf und senden Sie dann eine aktualisierte Anforderung.