View a markdown version of this page

Entwicklungs-Roadmap für das Hosting mit Amazon-Server GameLift verwaltetes EC2 - 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 verwaltetes EC2

Diese Roadmap führt Sie durch die Entwicklung einer Amazon GameLift Servers verwalteten EC2-Hosting-Lösung für Ihr Multiplayer-Spiel. Amazon GameLift Serversbietet mehrere Optionen für das Hosting von Spielen. Weitere Informationen zu diesen Optionen finden Sie unter. GameLift Amazon-Server Hosting-Optionen für Spiele

Beim Amazon GameLift Servers verwalteten Hosting wird dein Spieleserver auf AWS Cloud virtuellen Computerressourcen gehostet, die deine Konfiguration Amazon GameLift Servers besitzen und entsprechend funktionieren. Sie erhalten die Sicherheit, Zuverlässigkeit und globale Verfügbarkeit von Amazon Elastic Compute Cloud (Amazon EC2) -Instances, die weiter für die Verwendung mit Multiplayer-Game-Hosting optimiert wurden. Amazon GameLift Serversoptimiert das Hosting-Management mit Tools wie automatischen Serverbereitstellungen, Lebenszyklusmanagement und automatischer Kapazitätsskalierung.

Eine Amazon GameLift Servers verwaltete Lösung besteht aus den folgenden Komponenten:

  • Ein Gameserver-Build, der in das Server-SDK für integriert ist Amazon GameLift Servers und auf allen Flotten eingesetzt werden kann.

  • Ein in das AWS SDK integrierter Spielclient und ein Backend-Service, um mit dem Amazon GameLift Servers Dienst zu interagieren und Spielsitzungen anzufordern.

  • Eine Amazon GameLift Servers Warteschlange oder ein anderer Platzierungsmechanismus zum Platzieren neuer Spielsitzungen mit verfügbaren Spielservern in allen Flotten.

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

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

Diese Roadmap bietet einen optimierten Weg, um Ihr Multiplayer-Spiel mit Amazon GameLift Servers verwaltetem EC2-Hosting erfolgreich zum Laufen zu bringen. 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.

Holen Sie sich einen Starthilfe mit dem GameLift Amazon-Server Plugin für Unreal Engine und Unity

Für eine schnellere Bereitstellung probieren Sie das Amazon GameLift Servers Plugin für Unreal Engine und Unity aus. Es bietet geführte UI-Workflows, mit denen Sie Ihren Spieleserver mit minimalem Einrichtungsaufwand schnell bereitstellen können, sodass Sie Ihre Spielkomponenten in Aktion ausprobieren können. Dann kannst du auf dieser Grundlage aufbauen, um eine benutzerdefinierte Hosting-Lösung für dein Spiel zu erstellen. Weitere Details finden Sie unter Bereite dein Unreal- oder Unity-Spiel mit dem Amazon GameLift Servers Plugin vor.

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.x) für dein Spielprojekt. Das Server-SDK ist in C++, C# und Go verfügbar. Laden Sie ein Amazon GameLift Servers Server-SDK herunter.

  • Ä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 OnProcessTerminate() undOnStartGameSession(). 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 Aufforderung reagieren, um den Spielserverprozess zu beenden.

    • 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. Erstellen Sie ein Installationsskript mit Ihren Build-Dateien, Abhängigkeiten und unterstützender Software. Siehe Packen Ihrer Spielserver-Build-Dateien. Wir empfehlen, einen Amazon Simple Storage Service (Amazon S3) -Bucket zu verwenden, um Versionen Ihres Spiel-Builds zu speichern.

  • Testen Sie Ihre Spieleserver-Integration. Für diese Aufgabe empfehlen wir, eine Amazon GameLift Servers Anywhere-Flotte für eine lokale Workstation einzurichten, wie unter beschriebenRichten Sie lokale Tests ein mit GameLift Amazon-Server Überall. Installieren Sie für diesen Schritt den Spieleserver-Build manuell auf dem Testgerät 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.

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 dieselbe Amazon GameLift Servers Anywhere-Flotte mit einer lokalen Workstation zum Testen verwenden.

    Für eine schnelle iterative Entwicklung oder wenn Sie mit Teams aus mehreren Personen arbeiten, empfehlen wir Ihnen, eine Cloud-basierte Testumgebung einzurichten. Diese Amazon GameLift Servers Toolkit-Lösung ahmt das Verhalten einer Amazon GameLift Servers verwalteten Flotte nach, ermöglicht es Ihnen jedoch, Spieleserver-Builds mit minimaler Bearbeitungszeit zu aktualisieren.

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ätigen DescribeGameSessionPlacement. 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.

  • (Optional) Füge FlexMatch Matchmaking-Komponenten hinzu. Eine Anleitung finden Sie im Amazon GameLift ServersFlexMatch Entwicklerhandbuch.

Bis zu diesem Zeitpunkt haben Sie mit selbstverwalteten Anywhere-Flotten gearbeitet, um Ihre Spielkomponenten zu testen und zu wiederholen, und Sie haben die Platzierung Ihrer Spielsitzungen optimiert. Der letzte Teil Ihrer Lösung besteht darin, die Art von Hosting-Ressourcen einzurichten, die Sie für ein Produktionssystem benötigen. Um mit der Planung und Konfiguration für die Produktion zu beginnen, sollten Sie zur Arbeit mit einer Amazon GameLift Servers verwalteten Flotte übergehen.

  • Verpacken Sie den Build Ihres Spieleservers und laden Sie ihn hochAmazon GameLift Servers. Erstellen Sie ein Installationsskript mit Ihren Build-Dateien, Abhängigkeiten und unterstützender Software. Siehe Erstelle einen Gameserver-Build für GameLift Amazon-Server. Sie können Ihren Build entweder Amazon GameLift Servers über die Konsole oder die AWS CLI hochladen.

    Bevor Sie Ihren Build hochladen, entscheiden Sie, was AWS-Region Sie für eine Flotte erstellen möchten. Du musst den Build in dieselbe Region hochladen. Weitere Informationen zur Auswahl eines Flottenstandorts finden Sie unterGeografische Standorte.

  • Erstellen Sie eine verwaltete EC2-Flotte. 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 Erstellen Sie eine GameLift Amazon-Server verwaltete EC2-Flotte. Gehen Sie mindestens wie folgt vor:

    • Gib der Flotte einen Namen und gib an, welcher hochgeladene Spiel-Build eingesetzt werden soll.

    • Wähle On-Demand Instances für deine Flotte und wähle einen Instance-Typ, der an deinem Flottenstandort verfügbar ist. Spot-Flotten sind eine wertvolle Option, erfordern jedoch zusätzliches Design und Konfiguration.

    • Erstellen Sie eine Laufzeitkonfiguration für die Flotte. Geben Sie mindestens den Startpfad für die ausführbare Datei Ihres Spielservers an.

    • Geben Sie die Porteinstellungen an, damit eingehender Datenverkehr auf Ihre Spieleserver zugreifen kann.

  • Füge die verwalteten Flotten deiner Warteschlange hinzu. Ersetze in der Warteschlange deiner Spielsitzung die Anywhere-Flotten durch deine verwalteten Flotten.

  • Testen Sie das Game-Hosting mit Ihren verwalteten Flotten. An diesem Punkt solltest du in der Lage sein, den gesamten Hosting-Zyklus zu testen, wobei ein Spielclient eine Spielsitzung anfordert, Verbindungsinformationen erhält und erfolgreich eine Verbindung zu einer Spielsitzung herstellt.

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: