View a markdown version of this page

Serverless-based Backend-Architektur des Spiels - Linse für die Spieleindustrie

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.

Serverless-based Backend-Architektur des Spiels

Viele Spieleentwickler wollen die Infrastruktur nicht selbst verwalten, sondern ziehen es vor, ihre Spiele mithilfe von Technologien zu entwickeln, die es ihnen ermöglichen, sich auf die Software zu konzentrieren. In diesem Szenario wird eine serverlose Architektur empfohlen, da Sie so Funktionen schneller und mit weniger Betriebsaufwand entwickeln 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.

Serverless-based Referenzarchitektur für das Backend eines Spiels

Serverless-based Referenzarchitektur für das Spiel-Backend

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.

  • Spiellogik als serverlose Funktionen: Spielfunktionen und Backend-Geschäftslogik werden als AWS Lambda Funktionen ausgeführt, die als Reaktion auf Ereignisse initiiert werden. Das senkt die Kosten, da Sie nur zahlen, wenn die Funktion ausgeführt wird. Lambda bietet Ihnen die Flexibilität, jedes Spielfeature als separaten Microservice zu schreiben und dabei eine Programmiersprache Ihrer Wahl zu verwenden. Sie könnten sich beispielsweise für die Entwicklung von.NET-Lambda-Funktionen entscheiden, wenn Sie Erfahrung mit C# zur Entwicklung von Unity-Spielen haben, oder Sie könnten Node.js Lambda-Funktionen entwickeln, wenn Sie sowohl ein Frontend als auch ein Backend für ein webbasiertes Spiel programmieren möchten. JavaScript

  • NoSQL-Datenspeicher 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 von 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 voneinander überwachen und verwalten können. Dadurch entstehen auch Grenzen der Trennung, falls sich die Eigentümerschaft für Funktionen oder Dienste innerhalb deines Teams ändert. In dieser Referenzarchitektur werden DynamoDB-Tabellen zum Speichern von Daten wie Verbindungsstatus, Spieldetails, Spielerfortschritt und Bestenlisteninformationen verwendet.

  • Einzelspieler-Gameplay: Einzelspieler-Funktionen ermöglichen es Spielern, Aktionen wie das Auswählen und Spielen eines Spiels und das Ansehen 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 Spiel abgeschlossen ist, sendet das Backend auch Benachrichtigungen an Amazon SNS-Themen, die Lambda-Funktionen asynchron starten, um den Fortschritt und die Statistiken des Spielers zu speichern.

  • Multiplayer-Gameplay: Für Multiplayer-Spielfunktionen müssen die Spieler in der Lage sein, mit dem Spiel zu interagieren, um Punkt-zu-Punkt-Kommunikation zu ermöglichen sowie Updates von anderen verbundenen Spielern zu übertragen und zu empfangen. Eine WebSockets Implementierung eignet sich für die Punkt-zu-Punkt-Kommunikation in einem einfachen Spiel wie Quizspielen. Spieler können eine WebSockets Verbindung zu Amazon API Gateway herstellen WebSockets, das die Verbindung verwaltet und die Lambda-Funktionen nur dann aufruft, wenn für einen Spieler Nachrichten gesendet oder empfangen werden müssen. Für Anwendungsfälle, in denen eine Kommunikation zwischen Spielern erforderlich ist, AWS IoT Core unterstützt es die Nachrichtenübermittlung WebSockets über MQTT, sodass Kunden Themen abonnieren und auf die eingegangenen Nachrichten reagieren können. In dieser Architektur wird WebSockets 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 zu AWS IoT können Sie Redis Pub/Sub für die Nachrichtenübermittlung oder Redis Streams wählen, wenn Sie die Nachrichtenspeicherung benötigen.

  • Verwenden Sie VPC-enabled Lambda-Funktionen, um auf Ressourcen in Ihren privaten Subnetzen zuzugreifen: Konfigurieren Sie VPC-enabled Lambda-Funktionen für den Zugriff auf Ressourcen in den privaten Subnetzen Ihrer VPC, z. B. Amazon ElastiCache, das verwendet wird, um die Abfragezeiten für Datensätze mit niedriger Latenz wie Live-Bestenlisten zu reduzieren.

Weitere Informationen finden Sie in der Anleitung für benutzerdefiniertes Game-Backend-Hosting unter. AWS