View a markdown version of this page

Entwicklungs-Roadmap für das Hosting mit Amazon-Server GameLift verwaltete Container - GameLift Amazon-Server

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-Server GameLift verwaltete Container

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

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

  • Ein Container-Image mit Ihrem Spieleserver-Build, das in das private Repository von Amazon Elastic Container Registry (Amazon ECR) hochgeladen wurde. Der Spieleserver-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 Spielclients mit dem Amazon GameLift Servers Dienst interagiert. Der Backend-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 oder ein anderer Platzierungsmechanismus, der Anfragen für neue Spielsitzungen verarbeitet, in allen Flotten nach verfügbaren Spielservern sucht und einen Spielserver auffordert, eine Spielsitzung zu starten.

  • (Optional) Ein FlexMatch Matchmaker, der Mehrspieler-Matches erstellt und Spielsitzungen für sie einrichtet.

  • Eine oder mehrere Container-Flotten, die Amazon Elastic Compute Cloud (Amazon EC2) -Instances verwenden und für das Hosting von Multiplayer-Spielen optimiert sind.

Diese Roadmap bietet einen optimierten Weg, um Ihre containerisierten Spieleserver mit verwalteten Containern erfolgreich zum Laufen zu bringen. Amazon GameLift Servers Nachdem Sie die erforderlichen Komponenten eingerichtet haben, können Sie mit der Spieleentwicklung fortfahren und Ihre Hosting-Lösung anpassen. Je näher die Markteinführung rückt, desto mehr Hilfe bei der Vorbereitung deiner Hosting-Lösung Bereite dich auf den Start vor mit GameLift Amazon-Server Hosten für den Einsatz in der Produktion findest du in diesen Dokumenten.

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. Verwenden Sie nach der Bereitstellung die Amazon GameLift Servers Konsole und die API-Tools, um die Leistung der Flotte zu überwachen, Spielsitzungen zu verwalten und Kennzahlen zu analysieren.

  • Entwickler von Unreal Engine und Unity können die Amazon GameLift Servers Plugins 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. Auf dieser Grundlage kannst du aufbauen, um eine benutzerdefinierte Hosting-Lösung für dein Spiel zu erstellen.

Fügen Sie Ihrem Spieleserver Funktionen hinzu, damit er mit dem Amazon GameLift Servers Dienst kommunizieren kann, wenn er für das Hosting 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 herunter Amazon GameLift Servers. Das Server-SDK ist in C++, C# und Go verfügbar.

  • Ändere deinen Spieleservercode, um Server-SDK-Funktionen hinzuzufügen. Anleitungen finden Sie unter Bereite ein Spiel für das Hosten vor mit Amazon GameLift Servers. 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 abzuhalten. Verwenden Sie die Server-SDK-AktionProcessReady().

    • Implementieren Sie die erforderlichen Callback-Funktionen OnStartGameSession() undOnProcessTerminate(). Mit diesen Funktionen können Spieleserverprozesse eine Verbindung mit dem Amazon GameLift Servers Dienst aufrechterhalten, eine Spielsitzung einleiten, wenn sie dazu aufgefordert werdenAmazon GameLift Servers, und auf eine Anfrage zur Beendigung des Spieleserverprozesses antworten.

    • 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().

  • Verpacken Sie Ihren Spieleserver-Build. Baue deinen Spieleserver 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 Sie unter Windows entwickeln, beinhaltet dieser Schritt möglicherweise die Einrichtung eines separaten Linux-Arbeitsbereichs oder die Verwendung eines Tools wie dem Windows-Subsystem für Linux (WSL). Sie benötigen eine Linux-Umgebung, um Ihren Spieleserver-Build zu testen und auch Ihre Container-Images zu erstellen und zu testen.

  • Teste deine Spieleserver-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 beschriebenRichten Sie lokale Tests ein mit GameLift Amazon-Server Überall. Installiere deinen Gameserver-Build auf dem Testhost und starte 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.

Nachdem du deinen Spieleserver erfolgreich integriert hast, erstelle ein Container-Image mit der ausführbaren Datei deines Spieleservers. Speichern Sie es in einem Amazon Elastic Container Registry (Amazon ECR) -Repository zur Verwendung mitAmazon 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 Ändere die Datei für die Build-Dateien deines Gameservers.

  • Erstelle 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, verwenden Sie dasselbe AWS-Konto und den Ort, AWS-Region an dem Sie Ihre Containerflotte einsetzen möchten. Schieben 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 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 Spieleserver-Container und stellen Sie sicher, dass: (1) der Amazon GameLift Servers Dienst Ihren Serverprozess erfolgreich zum Starten einer Spielsitzung auffordert 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 wiederholen. Wenn Sie einen funktionierenden Gameserver-Build haben, der für integriert istAmazon GameLift Servers, können Sie mit der Einrichtung der Cloud-basierten, Amazon GameLift Servers verwalteten Containerflotte beginnen, die Ressourcen hostet, die Sie für eine Produktionsumgebung benötigen.

  • Erstellen Sie Containergruppendefinitionen. Containergruppendefinitionen beschreiben die Container-Architektur für eine Flotte und geben an, welche Container-Images bereitgestellt werden sollen. Siehe Erstellen Sie eine Containergruppendefinition für eine Amazon GameLift Servers Containerflotte. Erstellen Sie Ihre Containergruppendefinition an derselben AWS-Region Stelle, an der die Container-Images gespeichert sind. Weitere Informationen zur Auswahl eines Flottenstandorts finden Sie unterGeografische Standorte. Gehen Sie mindestens wie folgt vor:

    • Erstellen Sie eine Definition für eine Spieleserver-Containergruppe.

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

    • Konfiguriere einen Portbereich für die Spieleserverprozesse des Containers.

  • Erstellen Sie eine verwaltete Containerflotte. Wenn du eine Flotte erstellst, beginnt Amazon GameLift Servers sofort, deinen Gameserver-Build für das Hosting bereitzustellen. Du kannst viele Aspekte einer verwalteten Flotte konfigurieren. Anleitungen finden Sie unter Erstelle eine GameLift Amazon-Server 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 für alle anderen Parameter Standardwerte, sofern verfügbar. Amazon GameLift Serversberechnet einige Parameter für eine optimale Konfiguration.

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

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

  • Wiederholen Sie den Einsatz Ihrer Flotte. Sie können Containergruppendefinitionen und Flottenkonfigurationen aktualisieren und dann Aktualisierungen für bestehende Flotten bereitstellen.

Schaffen Sie eine Möglichkeit für Ihren Spielclient, die Teilnahme an einer Spielsitzung anzufordern, Verbindungsinformationen abzurufen und sich dann direkt mit einer gehosteten Spielsitzung zu verbinden. Der gängigste Ansatz besteht darin, Backend-Servicefunktionen einzurichten, die als Vermittler zwischen deinem Spielclient und dem Dienst dienen. Amazon GameLift Servers Dieser Ansatz schützt deine Hosting-Ressourcen und gibt dir mehr Kontrolle darüber, wie Spieler in Spielsitzungen platziert werden.

  • Entwickeln Sie Backend-Servicefunktionen für das Hosting. Der Backend-Dienst kommuniziert mit dem Amazon GameLift Servers Dienst und liefert Verbindungsinformationen an einen Spielclient. Diese Funktion umfasst das Starten von Spielsitzungen, das Platzieren von Spielern in Spielen und das Abrufen von Informationen zur Spielsitzung. Anleitungen finden Sie unter Bereite ein Spiel für das Hosten vor mit Amazon GameLift Servers. Gehen Sie mindestens wie folgt vor:

    • Holen Sie sich das AWS SDK für Amazon GameLift Servers und fügen Sie es Ihrem Backend-Serviceprojekt hinzu. Weitere Informationen finden Sie unter Amazon GameLift Servers SDK-Ressourcen für Kundendienste.

    • Fügen Sie Code hinzu, um einen Amazon GameLift Servers Client zu initialisieren und wichtige Einstellungen zu speichern. Siehe Richten Sie das ein GameLift Amazon-Server API.

    • Fügen Sie Funktionen hinzu, um die AWS SDK-Aktion aufzurufen CreateGameSession() und Verbindungsinformationen zur Spielsitzung an einen Spielclient weiterzugeben. Siehe Eine Spielsitzung auf einer bestimmten Flotte erstellen.

      Ein Anruf CreateGameSession() ist ein praktischer Ausgangspunkt, um neue Spielsitzungen anzufordern. Nachdem Sie ein System zur Platzierung von Spielsitzungen eingerichtet haben (siehe Schritt 3), ersetzen Sie diesen Code durch einen Anruf an StartGameSessionPlacement() (oder StartMatchmaking() falls Sie ihn verwendenFlexMatch).

      Eine Anleitung zur Gestaltung Ihres Back-End-Dienstes finden Sie unterErstellen Sie einen Backend-Service für GameLift Amazon-Server.

  • Füge deinem Spielclient Funktionen hinzu, mit denen Spieler an einer gehosteten Spielsitzung teilnehmen können. Der Spielclient stellt 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 zur 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-Service, um eine neue Spielsitzung anzufordern, und stellen Sie sicher, dass: (1) der Amazon GameLift Servers Dienst Ihren Serverprozess erfolgreich zum Starten einer Spielsitzung auffordert und (2) ein Spielclient eine Verbindung zur Spielsitzung herstellen kann.

Passen Sie anAmazon GameLift Servers, wie Anfragen für eine neue Spielsitzung bearbeitet werden sollen, und suchen Sie nach verfügbaren Spielservern, 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 einer Reihe definierter Prioritäten wie Mindestlatenz, Kosten und Verfügbarkeit nach der „bestmöglichen“ Platzierung.

  • Erstelle eine Warteschlange für Spielsitzungen, um eine neue Spielsitzung mit verfügbaren Spielservern 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.

  • Wandeln Sie den CreateGameSession() Anruf in Ihrem Backend-Servicecode in um. StartGameSessionPlacement() Siehe Eine Spielsitzung in einer Warteschlange mit mehreren Standorten erstellen.

  • Schaffen Sie einen Mechanismus, um einen Spielclient zu benachrichtigen, wenn eine Spielsitzung zum Beitritt bereit ist. Während der Entwicklung können Sie den Status der Spielsitzung abfragen, indem Sie einen Anruf an tätigenDescribeGameSessionPlacement. Bevor du eine Warteschlange für die Verarbeitung großer Datenmengen verwenden kannst, musst du allerdings die Event-Benachrichtigungen aktivieren. Siehe Event-Benachrichtigung für die Platzierung von Spielsitzungen einrichten.

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

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

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