Entwicklungs-Roadmap für Amazon GameLift Managed Hosting - Amazon GameLift

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 Amazon GameLift Managed Hosting

Diese Roadmap führt Sie durch die Entwicklung einer Amazon GameLift Managed Hosting-Lösung für Ihr Multiplayer-Spiel. Amazon GameLift bietet mehrere Hosting-Optionen für Spiele an. Weitere Informationen zu diesen Optionen finden Sie unter GameLift Amazon-Lösungen.

Mit Amazon GameLift Managed Hosting wird Ihr Spieleserver auf virtuellen AWS Cloud Computerressourcen gehostet, die Amazon GameLift besitzt und die auf Grundlage Ihrer Konfiguration betrieben werden. Sie erhalten die Sicherheit, Zuverlässigkeit und globale Verfügbarkeit von Amazon Elastic Compute Cloud (AmazonEC2) -Instances, die weiter für die Verwendung mit Multiplayer-Game-Hosting optimiert wurden. Amazon GameLift optimiert das Hosting-Management mit Tools wie automatischen Serverbereitstellungen, Lifecycle-Handling und automatischer Kapazitätsskalierung.

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

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

  • Ein Gameserver-Build, der in den GameLift Amazon-Server integriert ist SDK und auf allen Flotten eingesetzt werden kann.

  • Ein in den integrierter Spieleclient und Backend-Service zur Interaktion mit dem AWS SDK GameLift Amazon-Service und zum Anfordern von Spielsitzungen.

  • Eine GameLift Amazon-Warteschlange, um neue Spielesitzungen mit verfügbaren Spieleservern in allen Flotten zu platzieren.

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

Diese Roadmap bietet einen optimierten Weg, um Ihr Multiplayer-Spiel mit Amazon GameLift Managed Hosting erfolgreich zum Laufen zu bringen. 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 für den Start mit GameLift Amazon-Hosting vor

Holen Sie sich eine Starthilfe mit dem GameLift Amazon-Plugin

Wenn du Projekte mit Unreal Engine oder Unity entwickelst, beginne damit, dein Spiel für das Hosten mit dem GameLift Amazon-Plugin einzurichten. Mit dem Plugin können Sie Amazon GameLift SDKs zu Ihrem Spieleprojekt hinzufügen und mithilfe der geführten Workflows eine einfache, funktionierende Version einer von Amazon GameLift verwalteten Hosting-Lösung erstellen. Anschließend kannst du auf diesen Grundlagen aufbauen und sie nach Bedarf anpassen.

Fügen Sie Ihrem Spieleserver Funktionen hinzu, damit er mit dem GameLift Amazon-Service kommunizieren kann, wenn er für das Hosting bereitgestellt wird.

  • Holen Sie sich den GameLift Amazon-Server SDK (Version 5.x) für Ihr Spieleprojekt. Der Server SDK ist in C++, C# und Go verfügbar. Laden Sie einen GameLift Amazon-Server herunterSDK.

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

    • Fügen Sie Code hinzu, um Amazon zu initialisieren GameLift SDK und eine WebSocket Verbindung mit dem GameLift Amazon-Service herzustellen. Verwenden Sie die SDK ServeraktionInitSdk().

    • Fügen Sie Code hinzu, um dem GameLift Amazon-Service zu melden, wenn der Serverprozess bereit ist, Spielsitzungen zu hosten. Verwenden Sie die SDK ServeraktionProcessReady().

    • Implementieren Sie die erforderlichen Callback-Funktionen OnRefreshConnection()OnProcessTerminate(), undOnStartGameSession(). Mit diesen Funktionen können Spieleserverprozesse eine Verbindung mit dem GameLift Amazon-Dienst aufrechterhalten, auf Aufforderung von Amazon GameLift eine Spielsitzung einleiten und auf eine Aufforderung zum Beenden des Spieleserverprozesses reagieren.

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

  • Verpacke deinen Gameserver-Build. Erstelle ein Installationsskript mit deinen 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 Game-Builds zu speichern.

  • Testen Sie Ihre Gameserver-Integration. Für diese Aufgabe empfehlen wir, ein Amazon einzurichten GameLift Anywhere Flotte für eine lokale Workstation, wie unter beschriebenRichten Sie lokale Tests mit Amazon ein GameLift Anywhere. Installieren Sie für diesen Schritt Ihren Gameserver-Build manuell auf dem Testgerät und starten Sie einen Serverprozess. Verwenden Sie den, AWS CLI um eine neue Spielsitzung anzufordern und zu überprüfen, ob der GameLift Amazon-Service 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, Backend-Servicefunktionen einzurichten, die als Vermittler zwischen Ihrem Spielclient und dem Amazon-Service dienen. GameLift Dieser Ansatz schützt Ihre Hosting-Ressourcen und gibt Ihnen mehr Kontrolle darüber, wie Spieler an Spielsitzungen teilnehmen.

  • Entwickeln Sie Backend-Servicefunktionen für das Hosting. Der Backend-Service kommuniziert mit dem GameLift Amazon-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 Ihren Backend-Service, nicht direkt an Amazon GameLift. Nachdem der Backend-Service 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 dasselbe Amazon verwenden GameLift Anywhere Flotte mit einer lokalen Workstation zum Testen.

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

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

  • Erstellen Sie eine Warteschlange für Spielsitzungen, 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 Erstellen Sie eine Warteschlange für Spielsitzungen.

    • Fügen Sie Ihrer Warteschlange mindestens Ihre Anywhere-Flotten als Ziele hinzu. Bei allen anderen Einstellungen handelt es sich um 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 verwendest DescribeGameSessionPlacement. Bevor du jedoch eine Warteschlange zur Verarbeitung großer Datenmengen verwenden kannst, musst du die Ereignisbenachrichtigungen aktivieren. Siehe Richten Sie eine Eventbenachrichtigung für die Platzierung von Spielsitzungen ein.

  • (Optional) Fügen Sie FlexMatch Matchmaking-Komponenten hinzu. Anleitungen finden Sie im GameLift FlexMatchAmazon-Entwicklerhandbuch.

Bis zu diesem Zeitpunkt haben Sie mit selbstverwalteten Systemen gearbeitet Anywhere Flotten, um deine Spielkomponenten zu testen und zu verbessern, und du hast die Platzierung deiner Spielsitzungen verfeinert. 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, möchten Sie zur Arbeit mit einer von Amazon GameLift verwalteten Flotte übergehen.

  • Package Sie Ihren Gameserver-Build und laden Sie ihn auf Amazon hoch GameLift. Erstelle ein Installationsskript mit deinen Build-Dateien, Abhängigkeiten und unterstützender Software. Siehe Stellen Sie einen benutzerdefinierten Server-Build für GameLift Amazon-Hosting bereit. Sie können Ihren Build entweder GameLift über die Konsole oder die auf Amazon hochladen AWS CLI.

    Bevor Sie Ihren Build hochladen, entscheiden Sie, in welchem AWS-Region Bereich Sie eine Flotte erstellen möchten. Sie müssen den Build in dieselbe Region hochladen. Weitere Informationen zur Auswahl eines Flottenstandorts finden Sie unterStandort der Flotte.

  • Erstellen Sie eine verwaltete EC2 Flotte. Wenn Sie eine Flotte erstellen, beginnt Amazon GameLift sofort mit der Bereitstellung Ihres Gameserver-Builds für das Hosting. Sie können viele Aspekte einer verwalteten Flotte konfigurieren. Anleitungen finden Sie unter Erstellen Sie eine von Amazon GameLift verwaltete EC2 Flotte. Gehen Sie mindestens wie folgt vor:

    • Geben Sie der Flotte einen Namen und geben Sie an, welcher hochgeladene Spiel-Build eingesetzt werden soll.

    • Wählen Sie On-Demand-Instances für Ihre Flotte und wählen Sie einen Instance-Typ aus, der an Ihrem 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 Spieleservers an.

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

  • Füge die verwalteten Flotten zu deiner Warteschlange hinzu. Ersetze in deiner Warteschlange für Spielsitzungen die Anywhere-Flotten durch „ deine verwalteten Flotten hinzu“.

  • Testen Sie das Spiele-Hosting mit Ihren verwalteten Flotten. Zu diesem Zeitpunkt solltest du in der Lage sein, den gesamten Hosting-Zyklus zu testen. Ein Spieleclient fordert eine Spielsitzung an, ruft Verbindungsinformationen ab und stellt erfolgreich eine Verbindung zu einer Spielsitzung her.

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

  • Erwägen Sie, Spot-Flotten hinzuzufügen, um Kosten zu sparen. Siehe Tutorial: Erstellen Sie eine GameLift Amazon-Warteschlange mit Spot-Instances.

  • Wenn dein Spieleserver andere AWS Ressourcen kommunizieren muss, richte IAM Rollen ein, um den Zugriff zu verwalten. Siehe Kommunizieren Sie mit anderen AWS Ressourcen aus Ihren Flotten.

  • Ermitteln Sie, wo Sie die Spieleserver geografisch platzieren möchten. Fügen Sie Ihren verwalteten Flotten entfernte Standorte hinzu. Siehe Designleitfaden für verwaltete Flotten.

  • Optimieren Sie die Flottenleistung, indem Sie einen Instance-Typ und eine Instance-Größe auswählen und die Laufzeit so konfigurieren, dass mehrere Serverprozesse ausgeführt werden. Siehe Managen Sie, wie Amazon Spieleserver GameLift startet.

  • Experimentieren Sie mit den Optionen zur Platzierung von Spielsitzungen für verwaltete Flotten, einschließlich der Anpassung der Priorisierungseinstellungen. Siehe Entwerfen Sie eine Warteschlange für Spielsitzungen.

  • Richten Sie eine automatische Kapazitätsskalierung ein, um der erwarteten Spielernachfrage gerecht zu werden. Siehe Skalierung der Game-Hosting-Kapazität mit Amazon GameLift.

  • Richten Sie Standby-Flotten in anderen Flotten ein AWS-Regionen und ändern Sie Warteschlangen und auto Skalierung, um bei Bedarf Failover abzuwickeln.

  • Richten Sie Hosting-Observability-Tools ein, einschließlich Analyse und Protokollierung. Siehe Überwachung von Amazon GameLift.

  • Automatisieren Sie Ihre Bereitstellung mithilfe von Infrastructure as Code (IaC). Siehe Verwaltung von GameLift Amazon-Hosting-Ressourcen mit AWS CloudFormation.

    Amazon GameLift unterstützt die Verwendung von AWS CloudFormation Vorlagen für alle bereitstellungsspezifischen Konfigurationen. Sie können den auch verwenden AWS Cloud Development Kit (AWS CDK) , um Ihre GameLift Amazon-Ressourcen zu definieren. Weitere Informationen zu finden Sie im AWS Cloud Development Kit (AWS CDK) Entwicklerhandbuch. AWS CDK

    Um die Bereitstellung Ihrer AWS CloudFormation Stacks zu verwalten, empfehlen wir die Verwendung von Tools und Diensten für Continuous Integration und Continuous Delivery (CI/CD), wie z. AWS CodePipeline Mit diesen Tools können Sie die Installation automatisch oder mit Genehmigung durchführen, wann immer Sie eine Binärdatei für einen Spieleserver erstellen. Mit einem CI/CD-Tool oder -Service kann die Bereitstellung von Ressourcen für eine neue Spielserverversion wie folgt aussehen:

    • Erstelle und teste deine Gameserver-Binärdatei.

    • Laden Sie die Binärdatei auf Amazon hoch GameLift.

    • Stellen Sie mit dem neuen Build neue Flotten bereit.

    • Füge die neuen Flotten zu deiner Warteschlange für Spielsitzungen hinzu und entferne die Flotten mit der vorherigen Build-Version.

    • Wenn die Flotten mit dem vorherigen Build keine aktiven Spielsitzungen mehr veranstalten, lösche die AWS CloudFormation Stapel dieser Flotten.