Diese Anleitung unterstützt Entwickler beim Testen, Visualisieren und Optimieren ihrer Multiplayer-Spiele mit dem Test-Toolkit von Amazon GameLift. Mit dem Toolkit können Entwickler Fehler in ihrer Amazon-GameLift-Infrastruktur beheben, debuggen und optimieren. Diese Anleitung bietet optional die Möglichkeit, virtuelle Spieler zu verwenden, die denselben Code wie echte Spieler ausführen, sodass Entwickler den Erfolg ihres Spiels testen können, bevor sie es in die Produktion bringen.
Architekturdiagramm
Schritt 1
Amazon CloudFront bietet Zugriff auf die Toolkit-Webkonsole, die im Amazon Simple Storage Service (Amazon S3) gespeichert ist. Benutzer der Toolkit-Konsole authentifizieren sich mit Benutzerpools von Amazon Cognito.
Schritt 2
Die Webkonsole stellt eine Verbindung zu einer WebSocket-API von Amazon API Gateway her, die eine Funktion von AWS Lambda aufruft, um Anfragen zu verarbeiten und Daten in Amazon DynamoDB zu speichern.
Schritt 3
Die Lambda-Funktion kann die Infrastruktur von Amazon GameLift direkt abfragen und aktualisieren.
Schritt 4
Der Spiel-Listener empfängt GameLift-Ereignisse über Amazon EventBridge und nutzt AWS Step Functions, um Infrastrukturaktualisierungen von GameLift und Amazon CloudWatch abzufragen und zu empfangen.
Schritt 5
Der Spiel-Listener sendet aggregierte Ereignisdaten über einen benutzerdefinierten Event Bus von EventBridge. Die Ereignisse werden von einer Lambda-Funktion empfangen, die Daten in DynamoDB speichert und API Gateway aufruft, um Daten zur Anzeige an verbundene Benutzer der Webkonsole zu senden.
Schritt 6
Der Benutzer der Webkonsole kann auch virtuelle Spieleraufgaben auf AWS Fargate starten, um echte Spiele-Clients zu simulieren.
Schritt 7
Jede Aufgabe eines virtuellen Spielers stellt eine Gastidentität für Amazon Cognito her und stellt eine Verbindung zum API Gateway des Client-Services für das Spiel her, um ein Übereinstimmung anzufordern.
Schritt 8
Die Lambda-Funktionen rufen GameLift FlexMatch auf, um den Übereinstimmungs-Prozess zu starten und mithilfe von Warteschlangen zu Spielsitzungen erfolgreiche Übereinstimmungen in einer Flotte zu platzieren.
Schritt 9
Die Aufgaben der virtuellen Spieler stellen eine Verbindung zu den GameLift-Instances her, um ihre Spielesitzungen zu starten.
Well-Architected-Säulen
Das AWS-Well-Architected-Framework hilft Ihnen, die Vor- und Nachteile der Entscheidungen zu verstehen, die Sie beim Aufbau von Systemen in der Cloud treffen. Die sechs Säulen des Frameworks ermöglichen es Ihnen, architektonische bewärhte Methoden für die Entwicklung und den Betrieb zuverlässiger, sicherer, effizienter, kostengünstiger und nachhaltiger Systeme zu erlernen. Mit dem AWS-Well-Architected-Tool, das kostenlos in der AWS-Managementkonsole verfügbar ist, können Sie Ihre Workloads anhand dieser bewährten Methoden überprüfen, indem Sie eine Reihe von Fragen für jede Säule beantworten.
Das obige Architekturdiagramm ist ein Beispiel für eine Lösung, die unter Berücksichtigung der bewährten Methoden von Well-Architected erstellt wurde. Um eine vollständige Well-Architected-Lösung zu erhalten, sollten Sie so viele bewährte Methoden von Well-Architected wie möglich befolgen.
-
Betriebliche Exzellenz
Sowohl das Toolkit als auch das Beispielspiel werden vollständig mit Infrastruktur als Code bereitgestellt. Dadurch werden durch manuelle Prozesse verursachte Fehler reduziert und der Aufwand für das Bereitstellen von Änderungen verringert.
-
Sicherheit
Die Serverless-Webkonsolen-API in API Gateway ist mit einer auf AWS Identity and Access Management (IAM) basierenden Authentifizierung gegen einen Benutzerpool von Amazon Cognito geschützt.
Das Serverless-Beispielspiel-Backend in API Gateway ist mit einer IAM-basierten Authentifizierung zur sicheren Validierung der Gastidentität des Spielers geschützt.
Spieleserver in GameLift ermöglichen nur den Zugriff auf die Ports, die für die Client-Server-Kommunikation verwendet werden. Die Backend-Funktionen von Lambda haben nur Zugriff auf die von ihnen benötigten Services.
-
Zuverlässigkeit
Die Daten werden in DynamoDB-Tabellen gespeichert und nutzen die bedarfsgesteuerte Kapazitätszuweisung, um eine automatische Skalierung basierend auf Nachfrageänderungen vorzunehmen.
Die Backend-Services der Lösung nutzen Lambda, das Instances automatisch skaliert.
Das Beispiel-Spiel-Backend unterstützt die zielbasierte automatische Skalierung von GameLift, um Änderungen in der Nachfrage zu bewältigen.
-
Leistung und Effizienz
Durch den Einsatz verwalteter, Serverless-Technologien wie API Gateway, Lambda, DynamoDB und Fargate zahlen Sie nur für die Ressourcen, die Sie nutzen, und reduzieren den Betriebsaufwand für die Wartung der Lösung.
Die Lösung kann in einer Region Ihrer Wahl bereitgestellt werden. Es nutzt CloudFront, um die Latenz für den Endbenutzer der Webkonsole zu reduzieren.
-
Kostenoptimierung
Aufgaben für virtuelle Spieler können mit Fargate Spot gestartet werden, um die Testkosten zu senken.
Die Webkonsole und die Beispielspiel-Backends nutzen Serverless Technologien, sodass Sie nur für die Ressourcen bezahlen, die Sie nutzen.
Das Webkonsolen-Backend nutzt die nativen Skalierungs-Feature von Lambda und API Gateway, wobei DynamoDB-Tabellen eine Kapazitätszuweisung On-Demand verwenden, um sicherzustellen, dass die Ressourcen dem Bedarf entsprechen.
Das Beispielspiel-Backend unterstützt die zielbasierte automatische Skalierung von GameLift, um die erforderlichen Ressourcen zu minimieren.
-
Nachhaltigkeit
Die Anleitung nutzt in großem Umfang verwaltete Services. Dadurch wird die Verantwortung für die Aufrechterhaltung einer hohen durchschnittlichen Auslastung auf AWS verlagert.
Das Beispielspiel-Backend unterstützt die zielbasierte automatische Skalierung von GameLift, um die erforderlichen Ressourcen zu minimieren. Indem Spielsitzungen auf die Mindestanzahl von Server-Instances gebündelt werden, wird die Ressourcenauslastung konstant hoch gehalten.
Durch die weitreichende Nutzung von verwalteten Services reduziert die Anleitung Ihre individuellen Auswirkungen auf die Umwelt.
Sie können die Nachhaltigkeitsauswirkungen ungenutzter Ressourcen weiter reduzieren, indem Sie Spielserver in Spot-Flotten und virtuelle Spieleraufgaben in Fargate Spot starten.
Ressourcen zur Implementierung
Der Beispielcode dient als Ausgangspunkt. Er ist in der Branche erprobt, präskriptiv, aber nicht endgültig, und ein Blick unter die Haube, der Ihnen den Einstieg erleichtert.
Verwandte Inhalte
Titel
Titel
Haftungsausschluss
Der Beispielcode, die Softwarebibliotheken, die Befehlszeilentools, die Machbarkeitsnachweise, die Vorlagen oder andere zugehörige Technologien (einschließlich derjenigen, die von unseren Mitarbeitern bereitgestellt werden) werden Ihnen als AWS-Inhalte im Rahmen der AWS-Kundenvereinbarung oder der entsprechenden schriftlichen Vereinbarung zwischen Ihnen und AWS (je nachdem, was zutrifft) zur Verfügung gestellt. Sie sollten diese AWS-Inhalte nicht in Ihren Produktionskonten oder für Produktions- oder andere kritische Daten verwenden. Sie sind verantwortlich für das Testen, Sichern und Optimieren des AWS-Inhalts, z. B. des Beispielcodes, für die Verwendung in der Produktion auf der Grundlage Ihrer spezifischen Qualitätskontrollverfahren und -standards. Bei der Bereitstellung von AWS-Inhalten können AWS-Gebühren für die Erstellung oder Nutzung von kostenpflichtigen AWS-Ressourcen anfallen, z. B. für den Betrieb von Amazon-EC2-Instances oder die Nutzung von Amazon-S3-Speicher.