View a markdown version of this page

Tutorial: Schnelles Onboarding mit dem Amazon-Server GameLift Hülle - 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.

Tutorial: Schnelles Onboarding mit dem Amazon-Server GameLift Hülle

Willkommen zum Onboarding-Tutorial für. Amazon GameLift Servers In diesem Tutorial stellst du deinen Spieleserver schnell so ein, dass er auf einer Flotte von Cloud-basierten Rechenressourcen gehostet wird. Nutze dieses Tutorial, um die Integration des Server-SDK für Amazon GameLift Servers in deinen Spielcode zu überspringen und dein Spiel stattdessen 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 den vollen Funktionsumfang wie automatische Skalierung und Matchmaking zu nutzen. Es ist auch eine großartige Möglichkeit, einen Prototyp deines Spiels als Teil einer Live-Demo oder zum Testen zu hosten.

Die wichtigsten Vorteile dieser Onboarding-Methode:

  • Stellen Sie Ihren Spieleserver schnell für das Hosting bereit.

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

  • Verwenden Sie diese Methode mit jeder ausführbaren Spieldatei, unabhängig von der Spielengine.

  • Entdecke alle Amazon GameLift Servers Management-Tools, einschließlich der Überwachung der Aktivität von Spielsitzungen und des Hosting-Zustands.

Anmerkung

Der Wrapper ist für Testzwecke und grundlegende Produktionszwecke vorgesehen. Für erweiterte Funktionen wie die detaillierte Verwaltung von Spielersitzungen ist eine vollständige Server-SDK-Integration erforderlich.

Voraussetzungen

Stellen Sie vor Beginn 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-Spieleserver

  • Machen Sie (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 Spiel-Build vor

  3. Konfiguriere den Wrapper

  4. Lade den Gameserver-Build hoch

  5. Erstellen Sie die verwaltete EC2-Flotte

  6. Erstellen Sie eine Spielsitzung und stellen Sie eine Verbindung zu ihr her

  7. Überwache und verwalte deine Spieleserver

  8. Skalieren Sie Ihre Spieleserver

Schritt 1: Hol dir den Gameserver-Wrapper und baue ihn

Verwende die folgenden Befehle, um die Quelle des Spielserver-Wrappers abzurufen und den Wrapper zu erstellen. Diese Befehle verwenden SSH, du kannst aber auch direkt zum GitHub Projektarchiv 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 für verwaltete EC2-Flotten durch, also verwenden Sie den Ordner. gamelift-servers-managed-ec2

Schritt 2: Bereite deinen Gameserver-Build vor

In diesem Schritt bereitest du die Build-Dateien deines Spieleservers für den Upload 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 Sie Ihren Spieleserver ausführen müssenAmazon 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 Spieleserver funktioniert.

Gehen Sie dazu wie folgt vor:

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

  2. Kopiere die ausführbare Datei deines Spielservers und alle zugehörigen Dateien, die zum Ausführen erforderlich sind, in den gamelift-servers-managed-ec2 Ordner. Du kannst nach Bedarf verschachtelte Verzeichnisse verwenden.

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 es neue Instances hochfährt, auf denen Ihr Server-Build installiert ist, und recycelt Instances nach Bedarf. Der Service verwaltet den Prozesslebenszyklus des Spielservers, der auf jeder Instance ausgeführt wird. Eine verwaltete EC2-Flotte kann über Instanzen an mehreren Standorten verfügen, um Spieler zu unterstützen, wo auch immer sie sich befinden.

Bearbeiten Sie die Datei config.yaml, um den Wrapper für Logging, Port-Setup und Serverinitialisierung zu konfigurieren.

  1. Konfigurieren Sie die Logging-Einstellungen. Der Gameserver-Wrapper generiert Log-Meldungen für jeden Gameserver-Prozess. Standardmäßig ist das Log-Level auf Debug gesetzt, um eine maximale Ausführlichkeit zu gewährleisten. Dies ist bei der Einrichtung und Problembehandlung sehr hilfreich 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 Log-Verzeichnis des Spielservers an. Der Standardpfad für Spieleserverprotokolle ist./game-server-logs. Dieses Verzeichnis enthält alle Logs, die von deinem Spieleserver generiert wurden, und jede Instanz hat sie. Die Logs werden automatisch dorthin hochgeladen, Amazon GameLift Servers wo über den Events-Tab auf sie zugegriffen werden kann. Weitere Informationen finden Sie im Abschnitt zur Problembehandlung.

  3. Definieren Sie die Konfiguration des Netzwerkports. Stellen Sie den Game-Port auf den von Ihnen bevorzugten Port ein. Geben Sie für dieses Tutorial nur einen Port an, da Sie eine Flotte erstellen, auf der nur ein Spielserverprozess pro Instanz gleichzeitig 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 verwenden Sie für Flotten, die Linux-Builds verwenden, die Ports 22 und 1026-60000. Verwenden Sie für Flotten, die Windows-Builds verwenden, die Ports 1026-60000.

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

  5. Konfiguriere die Argumente für den Spielserver. Geben Sie mindestens ein -port-Argument 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 weitergegeben, 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 Gameserver-Build hoch

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

Einen Spiel-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_2022 \ --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 sein können.

So erstellen Sie Ihre Flotte:

  1. Loggen Sie sich in das ein AWS-Managementkonsole und navigieren Sie zuAmazon GameLift Servers.

  2. Vergewissern Sie sich in der Menüleiste oben im Konsolenfenster, in welcher Region sich Ihr 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 Abschnitt Managed EC2 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 Abschnitt Flotten die Option Flotte erstellen aus. Daraufhin wird die Detailseite „Verwaltete EC2-Flotte definieren“ angezeigt, auf der Sie den Status Ihrer Flotte verfolgen und die Ereignisse zur Flottenerstellung auf der Registerkarte „Ereignisse“ 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 für den Flottentyp On-Demand.

  9. Wählen Sie unter Instance-Typen die Option c5.large und dann Weiter aus.

  10. Unter Laufzeitkonfiguration: Da Ihr hochgeladener Spiel-Build den Wrapper verwendet, müssen Sie stattdessen auf die Wrapper-Programmdatei 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 Game-Port-Werte mit einem Bereich, der den Port berücksichtigt, der in den Startparametern config.yaml und in den Startparametern der Laufzeitkonfiguration festgelegt wurde. Der Port in muss config.yaml nicht mit dem in der Laufzeitkonfiguration der Flotte angegebenen übereinstimmen, aber wenn zur Laufzeit in der Konfiguration ein anderer Port angegeben ist, überschreibt dieser Wert den config.yaml Wert in. In der Laufzeitkonfiguration eingegebene Startparameter überschreiben auch die 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 steigt. 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 verbinde dich mit ihr

Wenn dein Flottenstatus Aktiv lautet, bedeutet das, dass die Spielserver bereit sind und darauf warten, eine Spielsitzung zu veranstalten. Um eine Spielsitzung zu starten, stelle eine Anfrage für eine Spielsitzung an den Amazon GameLift Servers Service. 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 fügst du programmgesteuerte AWS SDK-Aufrufe zu deinem Spiel-Backend-Service als Teil des Matchmaking- oder Platzierungssystems für Spielsitzungen hinzu.

Nutze 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 die Programmdatei Ihres Servers übergeben. Einzelheiten finden Sie in den Argumenten für Spieleserver in der README-Datei. Wenn der Wrapper den Aufruf create-game-session erhält, Amazon GameLift Servers informiert es den Wrapper, die Programmdatei des Spielservers 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 eingestellt 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

Jetzt, da deine Spieleserverflotte eingerichtet und eine Spielsitzung gestartet ist, kannst du sie von der Amazon GameLift Servers Konsole aus verwalten und überwachen. Das erreichst du am besten auf der Seite mit den Flottendetails, auf der du die Flottendetails bearbeiten oder die Flottenskalierung und Kapazität auf dem Tab Skalierung ändern kannst. Im folgenden Abschnitt erfährst du mehr über die Skalierung deiner Spielserver.

Wähle den Tab „Metriken“, um Grafiken anzuzeigen, 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. Außerdem kannst du deine Spieleserver im Reiter „Metriken“ genau überwachen, aber du kannst diesen Messwerten 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 für Ihre Flotten und Spielsitzungen basieren.

Schritt 8: Skalieren Sie Ihre Spieleserver

Für den nächsten Schritt richtest du die automatische Skalierung ein. Mit Auto Scaling skalierst du deine Flottenkapazität dynamisch als Reaktion auf die Aktivität des Spielservers. Wenn Spieler ankommen und Spielsitzungen starten, fügt Auto Scaling weitere Instanzen hinzu, und wenn die Nachfrage der Spieler sinkt, gibt Auto Scaling ungenutzte Instanzen frei. 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 automatische Skalierung für deine Flotten einrichten. Die automatische Skalierung 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 zum Tab 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 die Min - und Max-Größe, um über die aktuellen Werte hinaus zu skalieren, und wählen Sie „Bestätigen“.

Anmerkung

Verwenden Sie die Einstellung „Maximale Anzahl an Instanzen“ als Übergangslösung, um übermäßige Skalierung und Kosten zu vermeiden.

Um die zielbasierte automatische Skalierung zu verwenden

Um die zielbasierte automatische Skalierung zu verwenden

Target-based Autoscaling (Zielverfolgung) verknüpft die Flottenskalierung mit dem Prozentsatz der verfügbaren Spielsitzungen. Wenn die Anzahl der Spieler dazu drängt, dein Spiel zu spielen, und die Anzahl der verfügbaren Spielsitzungen abnimmt, reagiert das System, indem es der Flotte automatisch weitere Instanzen hinzufügt.

  1. Wählen Sie unter Target-based 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 so neue Spieler schnell in die Spiele locken, kann aber auch zu höheren Hosting-Kosten führen.

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

Rule-based Auto Scaling 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 zielorientierten Ansatzes.

Beheben Sie häufig auftretende Probleme

Die folgenden Probleme können häufig auftreten, wenn Sie Ihre Spieleserver und Spielsitzungen in Betrieb nehmen. Wenn entweder der Server oder die Spielsitzung nicht richtig läuft, ist der erste Schritt, die Protokolle zu überprüfen, die möglicherweise eines der unten beschriebenen Probleme bei neuen Bereitstellungen oder Spielen in der Produktion aufdecken.

In den Protokollen wird häufig Folgendes enthüllt:

  • Der Spieleserverprozess 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 Spieleserver-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 einzusehen GameLift Amazon-Server Flotte

Um die Event-Logs 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 den Tab Ereignisse und laden Sie das Protokoll herunter. Im Reiter „Metriken“ kannst du auch Aktivitäten und Hardwaremetriken für den Zustand des Spielservers und die Aktivierungen von Spielsitzungen überwachen.

Um die Protokolle der Spielsitzungen einzusehen

Um Spielsitzungsprotokolle einzusehen

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

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

  3. Wähle Logs herunterladen, um eine Log-Datei lokal herunterzuladen.

Verwenden Sie die GetGameSessionLogURL API, um die Sitzungsprotokolle des Spiels 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 Logs in Echtzeit oder für längere Aufbewahrungsfristen durch CloudWatch:

  1. Geben Sie oben im Dashboard Ihrer Amazon GameLift Servers Konsole "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 nach Spiel SessionId oder Client-ID zu filtern.

Nächste Schritte