Eigenständige Spielesitzungsserver mit einem serverlosen Backend - Amazon GameLift Servers

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.

Eigenständige Spielesitzungsserver mit einem serverlosen Backend

Mithilfe einer serverlosen Client-Servicearchitektur kann das Backend den Status von Matchmaking-Tickets aus einer hoch skalierbaren Datenbank abrufen, anstatt direkt auf Amazon GameLift Servers API.

Das folgende Diagramm zeigt ein serverloses Backend AWS-Services , mit dem Spieler Spiele zugeordnet werden können, die auf Amazon GameLift Servers Flotten. Die folgende Liste enthält eine Beschreibung für jeden nummerierten Callout im Diagramm. Um dieses Beispiel auszuprobieren, lesen Sie den Artikel Sitzungsbasiertes Spielen für mehrere Spieler auf. AWS GitHub

Beispiel für eine serverlose Architektur, die Spieler den Spielen zuordnet, die auf laufen Amazon GameLift Servers Flotten.
  1. Der Spielclient fordert eine Amazon Cognito Cognito-Benutzeridentität aus einem Amazon Cognito Cognito-Identitätspool an.

  2. Der Spielclient erhält temporäre Zugangsdaten und fordert über eine Amazon API Gateway eine Spielsitzung an.

  3. API Gateway ruft eine AWS Lambda Funktion auf.

  4. Die Lambda-Funktion fordert Spielerdaten aus einer Amazon DynamoDB DynamoDB-NoSQL-Tabelle an. Die Funktion stellt die Amazon Cognito Cognito-Identität in den Anforderungskontextdaten bereit.

  5. Die Lambda-Funktion fordert einen Abgleich an Amazon GameLift Servers FlexMatch Matchmaking.

  6. FlexMatch ordnet eine Gruppe von Spielern mit geeigneter Latenz zu und fordert dann über ein Amazon GameLift Servers Warteschlange. Die Warteschlange enthält Flotten mit einem oder mehreren AWS-Region Standorten.

  7. Nach Amazon GameLift Servers platziert die Sitzung an einem der Standorte der Flotte, Amazon GameLift Servers sendet eine Ereignisbenachrichtigung an ein Amazon Simple Notification Service (Amazon SNS) -Thema.

  8. Eine Lambda-Funktion empfängt das Amazon SNS SNS-Ereignis und verarbeitet es.

  9. Wenn das Matchmaking-Ticket ein MatchmakingSucceeded Ereignis ist, schreibt die Lambda-Funktion das Ergebnis zusammen mit dem Port und der IP-Adresse des Spieleservers in eine DynamoDB-Tabelle.

  10. Der Spielclient sendet eine signierte Anfrage an API Gateway, um den Status des Matchmaking-Tickets in einem bestimmten Intervall einzusehen.

  11. API Gateway verwendet eine Lambda-Funktion, die den Status des Matchmaking-Tickets überprüft.

  12. Die Lambda-Funktion überprüft die DynamoDB-Tabelle, um festzustellen, ob das Ticket erfolgreich ist. Wenn sie erfolgreich war, sendet die Funktion den Port und die IP-Adresse des Spielservers zusammen mit der Sitzungs-ID des Spielers zurück an den Client. Wenn das Ticket nicht erfolgreich war, sendet die Funktion eine Antwort, in der bestätigt wird, dass das Spiel noch nicht bereit ist.

  13. Der Spielclient stellt über TCP oder UDP eine Verbindung zum Spieleserver her, indem er den Port und die IP-Adresse verwendet, die der Backend-Dienst bereitstellt. Der Spielclient sendet dann die Sitzungs-ID des Spielers an den Spieleserver, der die ID dann mit dem Server-SDK für validiert Amazon GameLift Servers.