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.
Serverlose Backend-Architektur für Spiele
Viele Spieleentwickler möchten die Infrastruktur nicht verwalten und ziehen es stattdessen vor, ihre Spiele mithilfe von Technologien zu entwickeln, die es ihnen ermöglichen, sich auf Software zu konzentrieren. In diesem Szenario wird eine serverlose Architektur empfohlen, da Sie damit Funktionen schneller und mit weniger Betriebsaufwand erstellen und veröffentlichen können. Serverlose Architekturen werden mithilfe von Cloud-Diensten entworfen, die je nach Bedarf dynamisch skaliert werden können, ohne dass Server eingerichtet, verwaltet und skaliert werden müssen. Die folgende Referenzarchitektur veranschaulicht, wie ein Spiel mithilfe einer serverlosen Architektur erstellt wird.
Serverlose Backend-Referenzarchitektur für Spiele
Diese Referenzarchitektur veranschaulicht ein webbasiertes Quizspiel, das Einzelspieler- und Mehrspielerfunktionen bietet.
-
Spielerauthentifizierung: Spieler authentifizieren sich mit Amazon Cognito, das eine sichere Authentifizierung mit einem Benutzerverzeichnis für die Verwaltung der Spieleridentität bietet.
-
Spielelogik als serverlose Funktionen: Spielfunktionen und Backend-Geschäftslogik werden als AWS Lambda Funktionen ausgeführt, die als Reaktion auf Ereignisse ausgelöst werden. Dadurch werden die Kosten niedrig gehalten, da Sie nur zahlen, wenn die Funktion ausgeführt wird. Lambda bietet Ihnen die Flexibilität, jedes Spielfeature als separaten Microservice in einer Programmiersprache Ihrer Wahl zu schreiben. Sie könnten sich beispielsweise dafür entscheiden, .NET-Lambda-Funktionen zu entwickeln, wenn Sie Erfahrung mit C# zur Erstellung von Unity-Spielen haben, oder Sie könnten Lambda-Funktionen für Node.js entwickeln, wenn Sie sowohl ein Frontend als auch ein Backend für ein webbasiertes Spiel programmieren möchten. JavaScript
-
NoSQL Data Store für Spiel- und Spielerdaten: Verwenden Sie DynamoDB, um Ihre Spieler- und Spieldaten zu speichern, da es speziell für die Speicherung großer Datenmengen aus Microservices entwickelt wurde. Wie in dieser Architektur veranschaulicht, hat es sich bewährt, separate Datenspeicher für die Datenspeicheranforderungen der einzelnen Spielfunktionen zu verwenden, sodass Sie die Funktionen problemlos unabhängig überwachen und verwalten können. Dadurch entstehen auch Trennungsgrenzen, wenn sich innerhalb Ihres Teams die Eigentümerschaft für Funktionen oder Dienste ändert. In dieser Referenzarchitektur werden DynamoDB-Tabellen verwendet, um Daten wie Verbindungsstatus, Spieldetails, Spielerfortschritte und Bestenlisteninformationen zu speichern.
-
Einzelspieler-Gameplay: Einzelspieler-Funktionen ermöglichen es Spielern, Aktionen wie das Auswählen und Spielen eines Spiels und das Anzeigen der Bestenliste durchzuführen. Diese Funktionen werden als RESTful Backend-Services implementiert, die mit einer Amazon API Gateway-HTTP-API gehostet werden, die die entsprechende Lambda-Funktion aufruft, um Daten in DynamoDB-Tabellen abzurufen und festzulegen. Wenn das Gameplay abgeschlossen ist, sendet das Backend auch Benachrichtigungen an Amazon SNS SNS-Themen, die asynchron Lambda-Funktionen starten, um den Fortschritt und die Statistiken des Spielers zu speichern.
-
Mehrspieler-Gameplay: Für die Funktionen von Multiplayer-Spielen müssen die Spieler in der Lage sein, mit dem Spiel zu point-to-point kommunizieren sowie Updates von anderen verbundenen Spielern zu senden und zu empfangen. Eine WebSockets Implementierung eignet sich für die point-to-point Kommunikation in einem leichten Spiel, z. B. bei Quizspielen. Spieler können eine WebSockets Verbindung zu Amazon API Gateway herstellen WebSockets, das die Verbindung verwaltet und die Lambda-Funktionen nur aufruft, wenn Nachrichten für einen Spieler gesendet oder empfangen werden müssen. Für Anwendungsfälle, in denen one-to-many Kommunikation zwischen Spielern erforderlich ist, AWS IoT Core bietet es Unterstützung für Nachrichten WebSockets über MQTT, sodass Kunden Themen abonnieren und auf die empfangenen Nachrichten reagieren können. In dieser Architektur werden WebSockets Over-MQTT verwendet, um Anwendungsfälle wie die Übertragung von Live-Updates im Spiel und das Stellen von Fragen an verbundene Spieler zu unterstützen. Als Alternative können Sie Redis Pub/Sub für die Nachrichtenzustellung oder Redis Streams wählen, wenn Sie die Aufbewahrung von Nachrichten benötigen. AWS IoT
-
Verwenden Sie VPC-fähige Lambda-Funktionen, um auf Ressourcen in Ihren privaten Subnetzen zuzugreifen: Konfigurieren Sie VPC-fähige Lambda-Funktionen für den Zugriff auf Ressourcen in den privaten Subnetzen Ihrer VPC, wie Amazon ElastiCache, wodurch die Abfragezeiten für Datensätze mit niedriger Latenz wie Live-Bestenlisten reduziert werden.