Tutorial: Schnelles Onboarding mit dem Wrapper Amazon GameLift Servers - 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.

Tutorial: Schnelles Onboarding mit dem Wrapper Amazon GameLift Servers

Willkommen zum Onboarding-Tutorial fürAmazon GameLift Servers. In diesem Tutorial stellen Sie Ihren Spieleserver schnell bereit, sodass er auf einer Flotte von Cloud-basierten Rechenressourcen gehostet wird. Verwenden Sie dieses Tutorial, um die Arbeit der Integration des Server-SDK für Amazon GameLift Servers in Ihren Spielcode zu überspringen und stattdessen Ihr Spiel mit den minimalen Funktionen bereitzustellen, um mit dem Amazon GameLift Servers Dienst zu kommunizieren und Spielsitzungen durchzuführen. Du richtest eine grundlegende Hosting-Lösung ein und nutzt sie, um alle Funktionen wie automatische Skalierung und Spielersuche zu nutzen. Es ist auch eine großartige Möglichkeit, einen Prototyp Ihres Spiels als Teil einer Live-Demo oder zum Testen zu hosten.

Die wichtigsten Vorteile dieser Onboarding-Methode:

  • Stellen Sie Ihren Spieleserver schnell bereit, um ihn schnell zu hosten.

  • Keine Änderungen am Spielcode und keine Änderungen erforderlich.

  • Verwenden Sie diese Methode mit jeder ausführbaren Datei eines Spiels, unabhängig von der Spiel-Engine.

  • Erkunden Sie alle Amazon GameLift Servers Verwaltungstools, einschließlich der Überwachung der Aktivität von Spielsitzungen und des Zustands des Hostings.

Anmerkung

Der Wrapper ist für Evaluierungszwecke und grundlegende Produktionszwecke vorgesehen. Erweiterte Funktionen wie die detaillierte Verwaltung von Spielersitzungen erfordern eine vollständige Server-SDK-Integration.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie über Folgendes verfügen:

  • Und AWS-Konto mit den entsprechenden Berechtigungen

  • AWS CLI installiert

  • Gehe zu 1.18+

  • Ein ausführbarer Multiplayer-Gameserver

  • Marke (Linux/Mac)

  • Git wurde mit einem aktiven Konto installiert

Übersicht

In diesem Tutorial wirst du:

  1. Holen Sie sich den Wrapper und bauen Sie ihn

  2. Bereite den Spielbuild vor

  3. Konfiguriere den Wrapper

  4. Lade den Spielserver-Build hoch

  5. Erstelle die verwaltete EC2 Flotte

  6. Erstelle eine Spielsitzung und stelle eine Verbindung zu ihr her

  7. Überwachen und verwalten Sie Ihre Spieleserver

  8. Skalieren Sie Ihre Spieleserver

Schritt 1: Holen Sie sich den Gameserver-Wrapper und bauen Sie ihn

Verwenden Sie die folgenden Befehle, um die Quelle des Gameserver-Wrappers abzurufen und den Wrapper zu erstellen. Diese Befehle verwenden SSH, aber du kannst auch direkt zum Github-Repository gehen.

Windows

> git clone git@github.com:amazon-gamelift/amazon-gamelift-servers-game-server-wrapper.git > cd amazon-gamelift-servers-game-server-wrapper > powershell -file .\build.ps1

Mac und Linux

$ git clone git@github.com:amazon-gamelift/amazon-gamelift-servers-game-server-wrapper.git $ cd amazon-gamelift-servers-game-server-wrapper $ make

Bei einem erfolgreichen Build wird ein Out-Verzeichnis hinzugefügtamazon-gamelift-servers-game-server-wrapper. In diesem Verzeichnis befinden sich drei Ordner, einer für jede unterstützte Hosting-Flottenoption, die eine Reihe von Build-Artefakten enthalten. In diesem Tutorial führen Sie die Bereitstellung auf verwalteten EC2 Flotten durch, sodass Sie den Ordner gamelift-servers-managed-ec2 verwenden.

Schritt 2: Bereite deinen Gameserver-Build vor

In diesem Schritt bereiten Sie die Build-Dateien Ihres Spieleservers für das Hochladen auf den Amazon GameLift Servers vor.

Erstelle das Spielverzeichnis

Bereite jetzt ein Spielverzeichnis auf deinem lokalen Computer vor. Dieses Verzeichnis muss alle Dateien enthalten, mit denen du deinen Spieleserver ausführen musstAmazon GameLift Servers. Dazu gehören der Gameserver-Wrapper, dein Gameserver-Build und die Datei config.yaml, die dafür sorgt, dass der Wrapper mit deinem Gameserver funktioniert.

Gehen Sie dazu wie folgt vor:

  1. Verwaltete Flotte. EC2 Suchen Sie im Wrapper-Ausgabeordner des Gameservers nach dem Build-Artefakt, das Sie in einer verwalteten EC2 Flotte einsetzen können. Der Build wird in ein Ausgangsverzeichnis geschrieben, wie hier angegeben:. out\linux\amd64\gamelift-servers-managed-ec2

  2. Kopieren Sie die ausführbare Datei Ihres Spieleservers und alle zugehörigen Dateien, die zum Ausführen erforderlich sind, in den gamelift-servers-managed-ec2 Ordner. Du kannst nach Bedarf verschachtelte Verzeichnisse einrichten.

Ein Beispiel für eine Verzeichnisstruktur sieht wie folgt aus:

gamelift-servers-managed-ec2 │-- config.yaml │-- amazon-gamelift-servers-game-server-wrapper │-- MyGame │ │-- server-executable.exe │ │-- my-game-settings │ │ ......

Schritt 3: Konfigurieren Sie den Wrapper für Ihre Flotte

Amazon GameLift Serversverwaltet den Lebenszyklus der Recheninstanzen einer Flotte, indem neue Instances mit Ihrem installierten Server-Build eingerichtet und Instances nach Bedarf recycelt werden. Der Dienst verwaltet den Prozesslebenszyklus des Spieleservers, der auf jeder Instanz ausgeführt wird. Eine verwaltete EC2 Flotte kann Instanzen an mehreren Standorten haben, um Spieler zu unterstützen, wo auch immer sie sich befinden.

Bearbeiten Sie die Datei config.yaml, um den Wrapper für die Protokollierung, Porteinrichtung und Serverinitialisierung zu konfigurieren.

  1. Konfigurieren Sie die Logging-Einstellungen. Der Gameserver-Wrapper generiert Protokollnachrichten für jeden Gameserver-Prozess. Standardmäßig ist die Protokollebene auf Debug eingestellt, um maximale Ausführlichkeit zu gewährleisten. Dies ist bei der Einrichtung und bei der Problembehandlung sehr nützlich und bestimmt, wie detailliert die Protokollmeldungen sind — in diesem Fall die ausführlichsten. Zu den Optionen gehören Debug, Info, Warn und Error (am wenigsten ausführlich).

  2. Geben Sie den Pfad zum Protokollverzeichnis des Spieleservers an. Der Standardpfad für Spieleserver-Logs ist./game-server-logs. Dieses Verzeichnis enthält alle Protokolle, die von deinem Spieleserver generiert wurden, und jede Instanz hat sie. Die Protokolle werden automatisch dorthin hochgeladen, Amazon GameLift Servers wo sie über den Tab „Ereignisse“ abgerufen werden können. Weitere Informationen finden Sie im Abschnitt Fehlerbehebung.

  3. Definieren Sie die Netzwerk-Port-Konfiguration. Stellen Sie den Gameport auf den von Ihnen bevorzugten Wert ein. Geben Sie für dieses Tutorial nur einen Port an, da Sie eine Flotte erstellen, auf der nur ein Gameserver-Prozess gleichzeitig pro Instanz ausgeführt wird. Wenn du dich dafür entscheidest, mehrere Prozesse gleichzeitig auszuführen, musst du genügend Ports für jeden gleichzeitigen Prozess konfigurieren. Der Standardwert ist 37016, wie in der Konfigurationsdatei gezeigt, aber im Allgemeinen sollten Sie für Flotten, die Linux-Builds verwenden, die Ports 22 und 1026-60000 verwenden. Verwenden Sie für Flotten, die Windows-Builds verwenden, die Ports 1026-60000.

  4. Richte den Pfad zur ausführbaren Datei des Spielservers ein. ./MyGame/my-server-executable.exePassen Sie dazu den Pfad zur ausführbaren Datei Ihres Spieleservers mit dem tatsächlichen Namen und Speicherort an. Dies ist der Einstiegspunkt für den Start deines Gameservers.

  5. Konfiguriere die Gameserver-Argumente. Geben Sie mindestens das Argument -port an und verwenden Sie denselben Game-Port-Wert, den Sie zuvor definiert haben. Der „pos“ -Wert 0 gibt an, dass dies das erste Argument ist. Fügen Sie nach Bedarf weitere Argumente hinzu. Diese Argumente werden beim Start an deinen Spieleserver übergeben, sodass du sein Laufzeitverhalten konfigurieren kannst.

    1. Argument: "--port"

    2. Wert: "{{.port number here}}"

    3. Position: 0 (Erstes Argument in der Liste)

Beispielkonfiguration:

log-config: wrapper-log-level: debug game-server-logs-dir: ./game-server-logs ports: gamePort: 37016 game-server-details: executable-file-path: ./MyGame/my-server-executable game-server-args: - arg: "--port" val: "{{.gameport}}" pos: 0

Schritt 4: Lade den Spielserver-Build hoch

Du hast jetzt alle erforderlichen Elemente deines Gameserver-Builds abgeschlossen (Gameserver-Wrapper, config.yaml und deine Gameserverdateien) und bist bereit, deinen Game-Build zum Hosten hochzuladen. Amazon GameLift Servers Am schnellsten kannst du deinen Game-Build hochladen, indem du den AWS CLI Befehl verwendest, upload-build wie im folgenden Beispiel gezeigt.

Einen Game-Build mit Windows hochladen:

aws gamelift upload-build \ --name gamelift-test-2025-03-11-1 \ --build-version gamelift-test-2025-03-11-1 \ --build-root out/windows/amd64/gamelift-servers-managed-ec2 \ --operating-system WINDOWS_2016 \ --server-sdk-version 5.3.0 \ --region us-west-2
Anmerkung

Verwenden Sie für Mac- und Linux-Builds --operating-system AMAZON_LINUX_2023

Wenn Sie den Build erstellen, notieren Sie sich die Build-ID aus der API-Antwort, um sie für die Flottenerstellung zu verwenden.

Schritt 5: Erstellen Sie die verwaltete EC2 Flotte

Die folgenden Schritte beschreiben eine minimale Flottenkonfiguration, damit Sie so schnell wie möglich einsatzbereit sind.

So erstellen Sie Ihre Flotte:

  1. Loggen Sie sich in die ein AWS Management Console und navigieren Sie zuAmazon GameLift Servers.

  2. Vergewissere dich in der Menüleiste oben im Konsolenfenster, in welcher Region sich dein Build befindet. Notiere dir das, denn deine Flotte muss sich in derselben Region befinden, sonst kannst du deinen Build nicht finden oder auswählen.

  3. Wählen Sie im Navigationsbereich im EC2 Abschnitt Verwaltet die Option Builds aus.

  4. Wählen Sie den Build aus, den Sie zuvor hochgeladen haben, um die Seite mit den Build-Details anzuzeigen.

  5. Wählen Sie im Bereich „Flotten“ die Option „Flotte erstellen“. Daraufhin wird die Seite „Verwaltete EC2 Flotte definieren“ angezeigt, auf der Sie den Status Ihrer Flotte verfolgen und auf der Registerkarte „Ereignisse“ Ereignisse bei der Flottenerstellung einsehen können.

  6. Geben Sie den Namen und die Beschreibung ein und wählen Sie Weiter.

  7. Auf der Seite Instanzdetails definieren wird standardmäßig die Region des Builds angezeigt. Wählen Sie alle weiteren Regionen aus, die Sie hinzufügen möchten.

  8. Wählen Sie als Flottenart die Option On-Demand.

  9. Wählen Sie unter Instanztypen die Option c5.large und dann Weiter aus.

  10. Unter Runtime-Konfiguration müssen Sie, da Ihr hochgeladenes Spiel-Build den Wrapper verwendet, stattdessen auf die ausführbare Wrapper-Datei verweisen. Für Windows-Spieleserver ist das. C:\game\amazon-gamelift-servers-game-server-wrapper.exe Für Linux-Spieleserver ist das/local/game/amazon-gamelift-servers-game-server-wrapper.

    Beispiel: LaunchPath": "/local/game/amazon-gamelift-servers-game-server-wrapper", "ConcurrentExecutions": 1, "Parameters": "—port 37016

    Konfigurieren Sie außerdem die Port-Werte des Spiels mit einem Bereich, der den Port, der in den Startparametern der Laufzeitkonfiguration festgelegt wurde, config.yaml und den Startparametern der Laufzeitkonfiguration berücksichtigt. Der Port in muss config.yaml nicht mit dem Port übereinstimmen, der in der Laufzeitkonfiguration der Flotte angegeben ist, aber wenn die Konfiguration zur Laufzeit einen anderen Port angibt, überschreibt dieser Wert den config.yaml Wert in. Die in der Laufzeitkonfiguration eingegebenen Startparameter haben auch Vorrang vor den Angaben in derconfig.yaml.

  11. Überprüfen Sie auf der Seite „Überprüfen und erstellen“ alle Konfigurationen und wählen Sie dann „Senden“, um Ihre Flotte zu erstellen. Der Flottenstatus ändert sich, wenn die Kapazität zum Hosten des Spielservers erhöht wird. Sehr bald wird der Status Aktiv angezeigt. Sobald die Aktivierung abgeschlossen und die Flotte bereitgestellt ist, startet der Dienst den Wrapper, der bereit ist, eine Anfrage für eine Spielsitzung zu empfangen.

Schritt 6: Erstelle eine Spielsitzung und stelle eine Verbindung zu ihr her

Wenn dein Flottenstatus Aktiv anzeigt, bedeutet das, dass die Spieleserver bereit sind und darauf warten, eine Spielsitzung zu veranstalten. Um eine Spielsitzung zu starten, stellen Sie eine Anfrage für eine Spielsitzung an den Amazon GameLift Servers Dienst. Hier verwenden Sie den, AWS CLI um diese Anfrage zu stellen.

Anmerkung

Denken Sie daran, dass das Erstellen einer Spielsitzung mit dem nützlich AWS CLI ist, um den Prozess zu testen und sich mit ihm vertraut zu machen. Irgendwann werden Sie programmatische AWS SDK-Aufrufe zu Ihrem Spiel-Backend-Service hinzufügen, als Teil des Matchmaking- oder Platzierungssystems für Spielsitzungen Ihres Spiels.

Verwenden Sie Folgendes, um eine Spielsitzung zu erstellen:

aws gamelift create-game-session \ --fleet-id <FLEET_ID> \ --game-properties '[{"Key": "exampleProperty", "Value": "exampleValue"}]' \ --maximum-player-session-count 3 \ --region us-west-2

Sie können auch benutzerdefinierte Spieleigenschaften an Ihre ausführbare Serverdatei übergeben. Weitere Informationen finden Sie in der README-Datei unter Gameserver-Argumente. Wenn er den create-game-session Aufruf erhält, Amazon GameLift Servers informieren sie den Wrapper, die ausführbare Datei des Spieleservers zu starten und eine Spielsitzung zu starten. Was darin enthalten ist, config.yaml wirkt sich auf die Konfiguration des Spielservers aus, und die Startparameter, die in der Konsole festgelegt sind, bestimmen die Konfiguration der Spielsitzung selbst.

Beispielformat für das Hinzufügen von Spieleigenschaften:

defaultArgs: - arg: "--port" val: "{{.GamePort}}" pos: 0 - arg: "--ipAddress" val: "{{.IpAddress}}" pos: 1 - arg: "--gameSessionId" val: "{{.GameSessionId}}" pos: 2

Schritt 7: Verwalte und überwache deine Flotte

Nun, da deine Spieleserver-Flotte eingerichtet und eine Spielsitzung gestartet wurde, kannst du sie von der Amazon GameLift Servers Konsole aus verwalten und überwachen. Das geht am besten über die Seite mit den Flottendetails, auf der du die Flottendetails bearbeiten oder die Flottenskalierung und Kapazität auf der Registerkarte Skalierung ändern kannst. Im folgenden Abschnitt findest du Informationen zur Skalierung deiner Spieleserver.

Wähle den Tab Metriken, um dir Diagramme anzusehen, die die Überwachung von Aktivitäts- und Hardwaremetriken darstellen. Weitere Informationen zu den Metrikdiagrammen erhalten Sie, wenn Sie auf den Link Info neben der ID Ihrer Flotte klicken. Zusätzlich kannst du deine Spieleserver über den Tab „Metriken“ genau überwachen, aber du kannst diesen Metriken im CloudWatch Dashboard auch Alarme hinzufügen.

So navigierst du von der Konsole aus zum CloudWatch Dashboard:

  1. Geben Sie "CloudWatch" in die Suchleiste ein und wählen Sie es aus der Suchergebnisliste aus, um die CloudWatch Übersicht anzuzeigen.

  2. Scrollen Sie nach unten und wählen Sie „ GameLift Dashboard anzeigen“, um Grafiken zu sehen, die auf den wichtigsten Kennzahlen Ihrer Flotten und Spielsitzungen basieren.

Schritt 8: Skalieren Sie Ihre Spieleserver

Im nächsten Schritt richten Sie Auto Scaling ein. Mit Auto Scaling skalieren Sie Ihre Flottenkapazität dynamisch als Reaktion auf die Aktivität des Spieleservers. Wenn Spieler ankommen und Spielsitzungen starten, fügt Auto Scaling weitere Instanzen hinzu, und wenn die Nachfrage der Spieler sinkt, werden durch Auto Scaling ungenutzte Instanzen freigegeben. Dies ist eine effektive Methode, um Ihre Hosting-Ressourcen und -Kosten zu minimieren und gleichzeitig ein reibungsloses, schnelles Spielerlebnis zu bieten.

Während du dich auf den Start des Spiels vorbereitest, solltest du die auto Skalierung für deine Flotten einrichten. Auto Scaling wird als effektive Methode empfohlen, um deine Hosting-Ressourcen und -Kosten zu minimieren und gleichzeitig ein reibungsloses, schnelles Spielerlebnis zu bieten.

Um die Flottenkapazität manuell einzurichten

Um die Flottenkapazität manuell einzurichten

  1. Gehen Sie auf der Detailseite Ihrer Flotte zur Registerkarte Skalierung.

  2. Wählen Sie einen Standort aus und klicken Sie auf Bearbeiten.

  3. Ändern Sie den Wert Gewünschte Instanzen und ändern Sie die Einstellungen für Min. und Max. Größe, um über die aktuellen Werte hinaus zu skalieren.

Anmerkung

Verwenden Sie die Einstellung „Max. Instanzen“ als Notlösung, um übermäßige Skalierung und Kosten zu vermeiden.

  1. Wählen Sie Bestätigen aus.

So verwenden Sie zielbasiertes Auto Scaling

So verwenden Sie zielbasiertes Auto Scaling

Zielbasiertes Autoscaling (Target Tracking) verknüpft die Flottenskalierung mit dem Prozentsatz der verfügbaren Spielsitzungen. Wenn Spieler dein Spiel schnell spielen und die Anzahl der verfügbaren Spielsitzungen abnimmt, reagiert das System, indem es automatisch weitere Instanzen zur Flotte hinzufügt.

  1. Wählen Sie unter Zielbasierte Auto-Scaling-Richtlinie die Option Richtlinie hinzufügen aus und legen Sie fest, dass sich die Kapazität der Flotte automatisch ändert, wenn sie den von Ihnen festgelegten Schwellenwert für den Prozentsatz verfügbarer Spielsitzungen erreicht. Ein größerer Puffer kann Überspannungen besser bewältigen und sorgt dafür, dass neue Spieler schnell mit Spielen beginnen, aber das kann auch zu höheren Hosting-Kosten führen.

  2. Wählen Sie Bestätigen, um die Änderungen zu akzeptieren.

Regelbasierte auto Skalierung bietet Ihnen eine detailliertere Steuerung, z. B. die Möglichkeit, die Skalierung mit anderen Flottenkennzahlen zu verknüpfen und benutzerdefinierte Schwellenwerte und Skalierungsreaktionen festzulegen. Es bietet leistungsstarke Optionen, erfordert aber auch die Verwendung der CLI und umfangreiche Tests, um zu verstehen, wie sich benutzerdefinierte Regeln in Aktion verhalten. Dieses Tutorial konzentriert sich auf die erste Einrichtung des zielbasierten Ansatzes.

Beheben Sie häufig auftretende Probleme

Im Folgenden finden Sie häufig auftretende Probleme, die beim Ausführen Ihrer Spieleserver und Spielsitzungen auftreten können. Wenn entweder der Server oder die Spielsitzung nicht richtig laufen, besteht der erste Schritt darin, die Protokolle zu überprüfen, die eines der unten beschriebenen Probleme bei neuen Bereitstellungen oder Spielen in der Produktion aufdecken können.

Folgendes wird häufig in den Protokollen aufgedeckt:

  • Der Spieleserver-Prozess kann nicht gestartet werden. Dies könnte ein Fehler in der Wrapper-Konfiguration sein. Vergewissern Sie sich, dass die Datei den richtigen Startpfad und die richtigen Startparameter und Argumente hat.

  • Der Spielserver-Build kann nicht ausgeführt werden. Dies ist wahrscheinlich ein Fehler im Spielcode.

  • Spieler können keine Verbindung zu Spielsitzungen herstellen. Dies ist wahrscheinlich ein Fehler bei der Portkonfiguration.

  • Verzögerte oder langsame Verbindungen. Überprüfen Sie die Skalierungsrichtlinien und Schwellenwerte.

  • Keine Verbindung. Überprüfen Sie die Portregeln und die Konfiguration für Ihre Flotte.

Um die Ereignisprotokolle für Ihre Amazon GameLift Servers Flotte einzusehen

Um die Ereignisprotokolle für Ihre Amazon GameLift Servers Flotte einzusehen

  1. Öffnen Sie die Amazon GameLift Servers-Konsole.

  2. Wählen Sie auf der Seite mit den Flottendetails die Registerkarte Ereignisse und laden Sie das Protokoll herunter. Auf dem Tab „Metriken“ kannst du auch Aktivitäten und Hardwaremetriken für den Zustand des Spielservers und die Aktivierung von Spielsitzungen überwachen.

Um Spielsitzungsprotokolle einzusehen

Um Spielsitzungsprotokolle einzusehen

  1. Öffne von der Konsole aus deine Flotte und öffne den Tab Spielsitzungen.

  2. Wähle eine Spielsitzungs-ID aus der Liste aus, um die entsprechende Übersichtsseite aufzurufen.

  3. Wähle Protokolle herunterladen, um eine Protokolldatei lokal herunterzuladen.

Verwenden Sie die GetGameSessionLogURL API, um Spielsitzungsprotokolle mit der CLI anzuzeigen. Amazon GameLift Serversspeichert die Protokolle automatisch für 14 Tage.

Sie können auch CloudWatch Amazon-Logs für Ihre Flotte konfigurieren. Dies bietet zusätzliche Protokollierungsfunktionen und die Integration mit anderen AWS Überwachungsdiensten.

Für den Zugriff auf Protokolle in Echtzeit oder für längere Aufbewahrungsfristen durch CloudWatch:

  1. Geben Sie oben im Amazon GameLift Servers Konsolen-Dashboard "CloudWatch" in die Suchleiste ein und wählen Sie es aus der Ergebnisliste aus.

  2. Gehen Sie zu den CloudWatch Protokollgruppen und suchen Sie nach bestimmten Sitzungen. Am einfachsten ist es, auf Alle suchen zu klicken und mit gameSessionId unserer clientId zu filtern.

Nächste Schritte