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 Clientservice-Architektur kann das Backend den Status von Matchmaking-Tickets aus einer hoch skalierbaren Datenbank abrufen, anstatt direkt auf die API zuzugreifen. Amazon GameLift Servers

Das folgende Diagramm zeigt ein serverloses Backend, mit dem Spieler Spiele zugeordnet werden können AWS-Services , die auf Flotten laufen. Amazon GameLift Servers 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 Spielern Spiele zuordnet, die auf Flotten laufen. Amazon GameLift Servers
  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 über Amazon GameLift Servers FlexMatch Matchmaking eine Übereinstimmung an.

  6. FlexMatchordnet eine Gruppe von Spielern mit geeigneter Latenz zu und fordert dann über eine Warteschlange eine Platzierung für eine Spielsitzung anAmazon GameLift Servers. Die Warteschlange enthält Flotten mit einem oder mehreren AWS-Region Standorten.

  7. After Amazon GameLift Servers platziert die Sitzung an einem der Standorte der Flotte und 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 mithilfe des Server-SDK für validiert. Amazon GameLift Servers