Entwicklungs-Roadmap für das Hosting mit Amazon GameLift Servers verwalteten Containern - 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.

Entwicklungs-Roadmap für das Hosting mit Amazon GameLift Servers verwalteten Containern

Diese Roadmap führt dich durch die Entwicklung einer Amazon GameLift Servers Managed-Hosting-Lösung für deine containerisierten Spieleserver. Managed Containers ist nur eine Hosting-Lösung, die von angeboten wird. Amazon GameLift Servers Weitere Informationen zu Hosting-Optionen finden Sie unterAmazon GameLift ServersLösungen.

Eine verwaltete Container-Lösung mit Amazon GameLift Servers den folgenden Komponenten:

  • Eine oder mehrere Containerflotten, die Amazon Elastic Compute Cloud (Amazon EC2) -Instances verwenden, die für das Hosten von Spielen im Mehrspielermodus optimiert sind.

  • Ein Container-Image mit Ihrem Spieleserver-Build, das in das private Repository von Amazon Elastic Container Registry (Amazon ECR) hochgeladen wurde. Der Spielserver-Build ist in das Server-SDK für Linux integriert Amazon GameLift Servers und für die Ausführung unter Linux konzipiert.

  • Ein Backend-Dienst, der im Namen deiner Spieleclients mit dem Amazon GameLift Servers Dienst interagiert. Der Back-End-Dienst verwendet Funktionen in der Service-API fürAmazon GameLift Servers, die Teil des SDK ist. AWS

  • Eine Warteschlange für Amazon GameLift Servers Spielsitzungen, die Anfragen für neue Spielsitzungen verarbeitet, nach verfügbaren Spieleservern in allen Flotten sucht und einen Spieleserver auffordert, eine Spielsitzung zu starten.

  • (Optional) Ein FlexMatch Matchmaker, um Mehrspieler-Matches zu erstellen und Spielsitzungen für sie einzurichten.

Diese Roadmap bietet einen optimierten Weg, um Ihre containerisierten Spieleserver mit verwalteten Containern erfolgreich zum Laufen zu bringen. Amazon GameLift Servers Sobald Sie die erforderlichen Komponenten installiert haben, können Sie mit der Spieleentwicklung fortfahren und Ihre Hosting-Lösung individuell anpassen. Je näher die Markteinführung rückt, finden Sie hier Hilfe bei der Vorbereitung Ihrer Hosting-Lösung für den Einsatz auf Produktionsebene. Bereite dein Spiel mit Amazon GameLift Servers Hosting auf den Start vor

Beschleunigen Sie das Onboarding mit diesen Tools für verwaltete Container:
  • Das Container-Starterkit optimiert die Integration und die Einrichtung der Flotte. Es erweitert deinen Spieleserver um wichtige Funktionen zur Verwaltung von Spielsitzungen und verwendet vorkonfigurierte Vorlagen, um eine Containerflotte und eine automatisierte Bereitstellungspipeline für deinen Spieleserver aufzubauen. Verwende nach der Bereitstellung die Amazon GameLift Servers Konsole und die API-Tools, um die Leistung deiner Flotte zu überwachen, Spielsitzungen zu verwalten und Messwerte zu analysieren.

  • Entwickler von Unreal Engine und Unity können die Amazon GameLift ServersPlugins verwenden, um ihren Spieleserver zu integrieren und aus der Entwicklungsumgebung Ihrer Game Engine heraus eine Containerflotte aufzubauen. Die geführten Workflows des Plugins helfen dir dabei, eine schnelle, einfache Lösung mit cloudbasiertem Hosting mithilfe verwalteter Container zu erstellen. Du kannst auf dieser Grundlage aufbauen, um eine maßgeschneiderte Hosting-Lösung für dein Spiel zu erstellen.

Füge deinem Spieleserver Funktionen hinzu, sodass er mit dem Amazon GameLift Servers Dienst kommunizieren kann, wenn er zum Hosten bereitgestellt wird.

  • Hol dir das Server-SDK für Amazon GameLift Servers (Version 5.2 oder höher) für dein Spielprojekt. Das Server-SDK ist in C++, C# und Go verfügbar. Laden Sie das Server-SDK für herunterAmazon GameLift Servers. Das Server-SDK ist in C++, C# und Go verfügbar.

  • Ändern Sie den Code Ihres Spieleservers, um Server-SDK-Funktionen hinzuzufügen. Anleitungen finden Sie unter Integrieren Sie Spiele mit benutzerdefinierten Spieleservern. Gehen Sie mindestens wie folgt vor:

    • Fügen Sie Code hinzu, um das Amazon GameLift Servers SDK zu initialisieren und eine WebSocket Verbindung mit dem Amazon GameLift Servers Dienst herzustellen. Verwenden Sie die Server-SDK-AktionInitSdk().

    • Fügen Sie Code hinzu, um dem Amazon GameLift Servers Dienst zu melden, wenn der Serverprozess bereit ist, Spielsitzungen zu veranstalten. Verwenden Sie die Server-SDK-AktionProcessReady().

    • Implementieren Sie die erforderlichen OnStartGameSession() Rückruffunktionen undOnProcessTerminate(). Mit diesen Funktionen können Spieleserverprozesse eine Verbindung mit dem Amazon GameLift Servers Dienst aufrechterhalten, auf Aufforderung eine Spielsitzung einleiten und auf eine Anfrage zum Beenden des Spielserverprozesses antworten. Amazon GameLift Servers

    • Fügen Sie Code hinzu, um dem Amazon GameLift Servers Dienst zu melden, wenn der Serverprozess eine Spielsitzung beendet. Verwenden Sie die Server-SDK-AktionProcessEnding().

  • Verpacke deinen Gameserver-Build. Baue deinen Gameserver so, dass er unter Linux läuft. Bereite den Build und andere Dateien vor, die für den Betrieb des Spieleservers benötigt werden. Wenn du unter Windows entwickelst, beinhaltet dieser Schritt möglicherweise die Einrichtung eines separaten Linux-Workspace oder die Verwendung eines Tools wie Windows Subsystem for Linux (WSL). Du benötigst eine Linux-Umgebung, um deinen Gameserver-Build zu testen und deine Container-Images zu erstellen und zu testen.

  • Testen Sie Ihre Gameserver-Integration. Vergewissere dich, dass dein integrierter Spieleserver eine Verbindung zum Amazon GameLift Servers Dienst herstellen und auf Eingabeaufforderungen reagieren kann. Wir empfehlen, eine einfache Amazon GameLift Servers Anywhere-Flotte mit einer lokalen Workstation als Testhost einzurichten, wie unter beschriebenLokales Testen mit Amazon GameLift Servers Anywhere einrichten. Installieren Sie Ihren Gameserver-Build auf dem Testhost und starten Sie einen Serverprozess. Verwenden Sie die AWS CLI, um eine neue Spielsitzung anzufordern, und stellen Sie sicher, dass der Amazon GameLift Servers Dienst Ihren Serverprozess erfolgreich zum Starten einer Spielsitzung auffordert.

Erstelle eine Möglichkeit für deinen Spielclient, die Teilnahme an einer Spielsitzung anzufordern, Verbindungsinformationen abzurufen und dann direkt eine Verbindung zu einer gehosteten Spielsitzung herzustellen. Der gängigste Ansatz besteht darin, eine Backend-Servicefunktion einzurichten, die als Vermittler zwischen deinem Spielclient und dem Dienst dient. Amazon GameLift Servers Dieser Ansatz schützt deine Hosting-Ressourcen und gibt dir mehr Kontrolle darüber, wie Spieler an Spielsitzungen teilnehmen.

  • Entwickeln Sie Backend-Servicefunktionen für das Hosting. Der Backend-Dienst kommuniziert mit dem Amazon GameLift Servers Dienst und übermittelt Verbindungsinformationen an einen Spieleclient. Diese Funktion umfasst das Starten von Spielsitzungen, das Platzieren von Spielern in Spiele und das Abrufen von Informationen zu Spielsitzungen. Anleitungen finden Sie unter Integrieren Sie Spiele mit benutzerdefinierten Spieleservern. Gehen Sie mindestens wie folgt vor:

  • Füge deinem Spielclient Funktionen hinzu, mit denen Spieler an einer gehosteten Spielsitzung teilnehmen können. Der Spielclient sendet Anfragen an deinen Backend-Service, nicht direkt anAmazon GameLift Servers. Nachdem der Backend-Dienst Verbindungsinformationen zur Spielsitzung bereitgestellt hat, stellt der Spielclient eine direkte Verbindung mit der Spielsitzung her, um das Spiel zu spielen.

  • Testen Sie die Integration Ihres Spielclients. Sie können Ihre bestehende Amazon GameLift Servers Anywhere-Flotte mit einer lokalen Workstation zum Testen verwenden. Verwenden Sie den neuen Backend-Dienst, um eine neue Spielsitzung anzufordern, und stellen Sie sicher, dass: (1) der Amazon GameLift Servers Dienst Ihren Serverprozess erfolgreich auffordert, eine Spielsitzung zu starten, und (2) ein Spielclient eine Verbindung zur Spielsitzung herstellen kann.

Passen Sie anAmazon GameLift Servers, wie Sie Anfragen für neue Spielsitzungen bearbeiten möchten, und suchen Sie nach verfügbaren Spieleservern, auf denen sie gehostet werden können. Amazon GameLift Serversverfolgt automatisch die Verfügbarkeit aller Spielserver auf allen Flotten. Wenn ein Spielclient eine Anfrage zur Teilnahme an einer Spielsitzung sendet, Amazon GameLift Servers sucht er anhand definierter Prioritäten wie minimale Latenz, Kosten und Verfügbarkeit nach der „bestmöglichen“ Platzierung.

  • Erstelle eine Warteschlange für eine Spielsitzung, um eine neue Spielsitzung auf verfügbaren Spieleservern zu platzieren. Warteschlangen sind der wichtigste Mechanismus für die Platzierung von Spielsitzungen. Anleitungen finden Sie unter Eine Warteschlange für Spielsitzungen erstellen.

    • Fügen Sie Ihrer Warteschlange mindestens Ihre Anywhere-Flotten als Ziele hinzu. Alle anderen Einstellungen sind optionale Anpassungen.

  • Konvertieren Sie den CreateGameSession() Anruf in Ihrem Backend-Servicecode in. StartGameSessionPlacement() Weitere Informationen findest du unter Eine Spielsitzung in einer Warteschlange mit mehreren Standorten erstellen.

  • Erstelle einen Mechanismus, um einen Spielclient zu benachrichtigen, wenn eine Spielsitzung bereit ist, daran teilzunehmen. Während der Entwicklung kannst du den Status einer Spielsitzung abfragen, indem du einen Call to verwendestDescribeGameSessionPlacement. Bevor du jedoch eine Warteschlange zur Verarbeitung großer Datenmengen verwenden kannst, musst du die Ereignisbenachrichtigungen aktivieren. Siehe Event-Benachrichtigung für die Platzierung von Spielsitzungen einrichten.

  • Fügen Sie FlexMatch Matchmaking hinzu (optional). Erstelle einen Regelsatz für die Spielerzuweisung und erstelle eine Matchmaking-Konfiguration, die mit deiner Warteschlange für Spielsitzungen funktioniert. Anleitungen zur Einrichtung eines Matchmaking-Systems findest du im Entwicklerhandbuch. Amazon GameLift ServersFlexMatch

  • Testen Sie das Platzierungssystem. Sie können Ihre bestehende Amazon GameLift Servers Anywhere-Flotte mit einer lokalen Workstation zum Testen verwenden. Verwenden Sie den Back-End-Dienst, um eine neue Spielsitzung anzufordern, und stellen Sie sicher, dass der Amazon GameLift Servers Dienst Ihren Serverprozess erfolgreich zum Starten einer Spielsitzung auffordert.

Nachdem du deinen Spieleserver erfolgreich integriert hast, erstelle ein Container-Image mit der ausführbaren Datei deines Spieleservers. Speichern Sie es zur Verwendung in einem Amazon Elastic Container Registry (Amazon ECR) -Repository. Amazon GameLift Servers Detaillierte Anweisungen finden Sie unter Erstellen Sie ein Container-Image für Amazon GameLift Servers.

  • Holen Sie sich die Dockerfile-Vorlage für einen Spieleserver-Container (bereitgestellt von). Amazon GameLift Servers Ändern Sie die Datei für die Build-Dateien Ihres Spieleservers.

  • Erstellen Sie ein Container-Image für den Spieleserver. Wenn Sie in einer Linux-Umgebung arbeiten, verwenden Sie das Docker-Tool, um Ihr Image zu erstellen.

  • Übertragen Sie Ihr Container-Image auf Amazon ECR. Erstellen Sie ein öffentliches oder privates Repository in Amazon ECR, indem Sie dasselbe verwenden AWS-Konto und AWS-Region wo Sie Ihre Containerflotte einsetzen möchten. Laden Sie Ihr Container-Image dorthin.

  • Testen Sie Ihre Container-Images mit Ihrer Anywhere-Flotte (optional). Möglicherweise möchten Sie Ihre Container-Images lokal testen, bevor Sie sie in einer in der Cloud gehosteten Containerflotte bereitstellen. Sie können Ihre bestehende Amazon GameLift Servers Anywhere-Flotte mit einer lokalen Workstation zum Testen verwenden. Installieren und starten Sie den Spielserver-Container und stellen Sie sicher, dass: (1) der Amazon GameLift Servers Dienst Ihren Serverprozess erfolgreich auffordert, eine Spielsitzung zu starten, und (2) ein Spielclient eine Verbindung zur Spielsitzung herstellen kann.

Bis zu diesem Zeitpunkt hast du mit einer selbstverwalteten Anywhere-Flotte gearbeitet, um deine Spielkomponenten zu testen und zu iterieren. Der letzte Teil Ihrer Lösung besteht darin, die Cloud-basierten Hosting-Ressourcen einzurichten, die Sie für ein Produktionssystem benötigen. Um mit der Planung und Konfiguration für die Produktion zu beginnen, möchten Sie eine Amazon GameLift Servers verwaltete Containerflotte einrichten und diese für die Produktion anpassen.

  • Erstellen Sie Definitionen für Containergruppen. Container-Gruppendefinitionen beschreiben die Container-Architektur für eine Flotte und identifizieren, welche Container-Images bereitgestellt werden sollen. Siehe Erstellen Sie eine Containergruppendefinition für eine Amazon GameLift Servers Containerflotte. Erstellen Sie Ihre Container-Gruppendefinition dort, AWS-Region wo die Container-Images gespeichert sind. Weitere Informationen zur Auswahl eines Flottenstandorts finden Sie unterStandort der Flotte. Gehen Sie mindestens wie folgt vor:

    • Erstellen Sie eine Spielserver-Container-Gruppendefinition.

    • Fügen Sie eine Container-Definition mit einem Container-Image zu Ihrem Gameserver-Build hinzu.

    • Konfiguriere einen Portbereich für die Gameserver-Prozesse des Containers.

  • Erstellen Sie eine verwaltete Containerflotte. Wenn du eine Flotte erstellst, beginnt Amazon GameLift Servers sofort mit der Bereitstellung deines Gameserver-Builds für das Hosting. Du kannst viele Aspekte einer verwalteten Flotte konfigurieren. Anleitungen finden Sie unter Erstelle eine Amazon GameLift Servers verwaltete Containerflotte. Gehen Sie mindestens wie folgt vor:

    • Richten Sie eine AWS Identity and Access Management (IAM) -Servicerolle für die Containerflotte ein. Siehe Richten Sie eine IAM-Servicerolle ein für Amazon GameLift Servers.

    • Geben Sie die Definition der Spielserver-Containergruppe an, die auf Flotteninstanzen bereitgestellt werden soll.

    • Verwenden Sie Standardwerte, sofern verfügbar, für alle anderen Parameter. Amazon GameLift Serversberechnet einige Parameter für eine optimale Konfiguration.

  • Fügen Sie die Containerflotten zu Ihrer Warteschlange hinzu. Ersetze in deiner Warteschlange für Spielsitzungen die Anywhere-Testflotte durch deine verwaltete Containerflotte.

  • Testen Sie das Game-Hosting mit Ihren Containerflotten. Zu diesem Zeitpunkt sollten Sie in der Lage sein, die gesamte Lösung zu testen. Starte einen Spielclient und fordere über den Backend-Dienst eine Spielsitzung an. Holen Sie sich Verbindungsinformationen und stellen Sie eine Verbindung zu einer Spielsitzung auf der Containerflotte her.

  • Iteriere deine Flotteneinsätze. Sie können Containergruppendefinitionen und Flottenkonfigurationen aktualisieren und anschließend Updates für bestehende Flotten bereitstellen.

Während du dich auf die Veröffentlichung des Spiels vorbereitest, musst du deine verwalteten Hosting-Ressourcen optimieren. Zu den zu berücksichtigenden Entscheidungen gehören unter anderem: