Plugin für Unity: Lokales Testen mit Amazon einrichten GameLift Anywhere - 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.

Plugin für Unity: Lokales Testen mit Amazon einrichten GameLift Anywhere

In diesem Workflow fügen Sie Client- und Server-Spielcode für GameLift Amazon-Funktionen hinzu und verwenden das Plug-in, um Ihre lokale Workstation als Testspielserver-Host zu bestimmen. Wenn Sie die Integrationsaufgaben abgeschlossen haben, verwenden Sie das Plugin, um Ihre Spielclient- und Serverkomponenten zu erstellen.

So starten Sie den Amazon GameLift Anywhere-Workflow:
  • Wählen Sie im Hauptmenü des Unity-Editors Amazon GameLift und dann Host with Anywhere aus. Diese Aktion öffnet die Plugin-Seite, auf der du dein Spiel mit einer Anywhere @-Flotte einrichten kannst. Auf dieser Seite wird ein fünfstufiger Prozess zur Integration, Erstellung und Veröffentlichung deiner Spielkomponenten vorgestellt.

Lege dein Profil fest

Wählen Sie das Profil aus, das Sie verwenden möchten, wenn Sie diesem Workflow folgen. Das von Ihnen ausgewählte Profil wirkt sich auf alle Schritte im Workflow aus. Alle Ressourcen, die Sie erstellen, sind mit dem AWS Konto des Profils verknüpft und werden in der AWS Standardregion des Profils platziert. Die Berechtigungen des Profilbenutzers bestimmen Ihren Zugriff auf AWS Ressourcen und Aktionen.

  1. Wählen Sie ein Profil aus der Dropdownliste der verfügbaren Profile aus. Wenn Sie noch kein Profil haben oder ein neues erstellen möchten, gehen Sie zum GameLiftAmazon-Menü und wählen Sie AWS Kontoprofile einrichten.

  2. Wenn der Bootstrap-Status nicht „Aktiv“ lautet, wählen Sie das Bootstrap-Profil und warten Sie, bis sich der Status auf „Aktiv“ ändert.

Integriere dein Spiel mit Amazon GameLift

Anmerkung

Wenn du das Beispielspiel importiert hast, kannst du diesen Schritt überspringen. In den Beispielspiel-Assets ist bereits der erforderliche Server- und Client-Code vorhanden.

Für diesen Schritt im Workflow aktualisierst du den Client- und Servercode in deinem Spielprojekt.

  • * Spieleserver müssen in der Lage sein, mit dem GameLift Amazon-Service zu kommunizieren, um Aufforderungen zum Starten einer Spielsitzung zu erhalten, Verbindungsinformationen zur Spielsitzung bereitzustellen und den Status zu melden.

  • Spielclients müssen in der Lage sein, Informationen über Spielsitzungen abzurufen, an Spielsitzungen teilzunehmen oder sie zu starten und Verbindungsinformationen abzurufen, um an einem Spiel teilzunehmen.

Integrieren Sie Ihren Servercode

Wenn du dein eigenes Spieleprojekt mit benutzerdefinierten Szenen verwendest, verwende den bereitgestellten Beispielcode, um deinem Spielprojekt den erforderlichen Servercode hinzuzufügen:

  1. Öffnen Sie den Assets/Scripts/Server Ordner in Ihren Spielprojektdateien. Wenn er nicht existiert, erstelle ihn.

  2. Gehe zum GitHub Repo aws/ amazon-gamelift-plugin-unity und öffne den Pfad. Samples~/SampleGame/Assets/Scripts/Server

  3. Finde die Datei GameLiftServer .cs. und kopiere sie in den Serverordner deines Spieleprojekts. Wenn du eine ausführbare Serverdatei erstellst, verwende diese Datei als Build-Ziel.

Der Beispielcode enthält die folgenden mindestens erforderlichen Elemente, die das Amazon GameLift C#-Server-SDK (Version 5) verwenden:

  • Initialisiert einen Amazon GameLift API-Client. Der InitSDK() Aufruf mit Serverparametern ist für eine Amazon GameLift Anywhere-Flotte erforderlich. Diese Einstellungen werden automatisch für die Verwendung im Plugin festgelegt.

  • Implementiert erforderliche Rückruffunktionen, um auf Anfragen vom GameLift Amazon-Service zu antworten, einschließlich OnStartGameSessionOnProcessTerminate, undonHealthCheck.

  • Ruft ProcessReady() mit einem bestimmten Port an, um den GameLift Amazon-Service zu benachrichtigen, wenn der Serverprozess bereit ist, Spielsitzungen zu hosten.

Wenn Sie den Beispielservercode anpassen möchten, sehen Sie sich diese Ressourcen an:

Integrieren Sie Ihren Client-Code

Wenn du dein eigenes Spielprojekt mit benutzerdefinierten Szenen verwendest, musst du grundlegende Funktionen in deinen Spielclient integrieren. Außerdem musst du UI-Elemente hinzufügen, damit sich Spieler anmelden und an einer Spielsitzung teilnehmen können. Verwenden Sie die Amazon GameLift Service APIs (im AWS SDK), um Informationen zu Spielsitzungen abzurufen, neue Spielsitzungen zu erstellen oder bestehenden Spielsitzungen beizutreten.

Wenn Sie mit einer Anywhere-Flotte einen Client für lokale Tests einrichten, können Sie dem GameLift Amazon-Service direkte Anrufe hinzufügen. Wenn Sie Ihr Spiel für Cloud-Hosting entwickeln — oder wenn Sie planen, Anywhere-Flotten für das Produktionshosting zu verwenden — müssen Sie einen clientseitigen Backend-Service einrichten, der die gesamte Kommunikation zwischen Spieleclients und dem Amazon-Service abwickelt. GameLift

Verwenden Sie die folgenden Ressourcen als Leitfaden, um Amazon GameLift in Ihren Kundencode zu integrieren.

  • Integrieren Sie den Client mit der GameLiftCoreApi Klasse im GitHub Repo amazon-gamelift-plugin-unity aws/. Diese Klasse bietet Steuerelemente für die Spielerauthentifizierung und das Abrufen von Informationen zur Spielsitzung.

  • Sehen Sie sich Beispiele für Spielintegrationen an, die im GitHub Repo aws/, verfügbar sind. amazon-gamelift-plugin-unity Samples~/SampleGame/Assets/Scripts/Client/GameLiftClient.cs

  • Folgen Sie den Anweisungen unter Amazon GameLift zu Ihrem Unity-Spielclient hinzufügen.

Für Spieleclients, die eine Verbindung zu einer Anywhere-Flotte herstellen, benötigt Ihr Spieleclient die folgenden Informationen. Das Plugin aktualisiert dein Spielprojekt automatisch, sodass es die Ressourcen verwendet, die du im Plugin erstellt hast.

  • FleetId - Die eindeutige Kennung für Ihre Anywhere-Flotte.

  • FleetLocation - Der benutzerdefinierte Standort Ihrer Anywhere-Flotte.

  • AwsRegion - Die AWS Region, in der Ihre Anywhere-Flotte gehostet wird. Dies ist die Region, die Sie in Ihrem Benutzerprofil festgelegt haben.

  • ProfileName - Ein AWS Anmeldeinformationsprofil auf Ihrem lokalen Computer, das den Zugriff auf das AWS SDK für ermöglicht GameLift. Der Spielclient verwendet diese Anmeldeinformationen, um Anfragen an den GameLift Amazon-Service zu authentifizieren.

Anmerkung

Das Profil mit den Anmeldeinformationen wird vom Plugin generiert und auf dem lokalen Computer gespeichert. Daher müssen Sie den Client auf dem lokalen Computer (oder auf einem Computer mit demselben Profil) ausführen.

Stellen Sie eine Connect zu einer Anywhere-Flotte her

In diesem Schritt bestimmen Sie eine Anywhere-Flotte, die verwendet werden soll. Eine Anywhere-Flotte definiert eine Sammlung von Rechenressourcen, die sich überall befinden können, für das Hosting von Spieleservern.

  • Wenn das AWS Konto, das Sie derzeit verwenden, bereits über Anywhere-Flotten verfügt, öffnen Sie das Dropdown-Feld Flottenname und wählen Sie eine Flotte aus. In dieser Dropdownliste werden nur die Anywhere-Flotten in der AWS Region für das aktuell aktive Benutzerprofil angezeigt.

  • Wenn es keine vorhandenen Flotten gibt oder Sie eine neue erstellen möchten, wählen Sie Neue Anywhere-Flotte erstellen und geben Sie einen Flottennamen ein.

Nachdem Sie eine Anywhere-Flotte für Ihr Projekt ausgewählt haben, GameLift überprüft Amazon, ob der Flottenstatus aktiv ist, und zeigt die Flotten-ID an. Sie können den Fortschritt dieser Anfrage im Ausgabeprotokoll des Unity-Editors verfolgen.

Registrieren Sie einen Computer

In diesem Schritt registrieren Sie Ihre lokale Workstation als Rechenressource in der neuen Anywhere-Flotte.

  1. Geben Sie einen Rechennamen für Ihren lokalen Computer ein. Wenn Sie der Flotte mehr als einen Computer hinzufügen, müssen die Namen eindeutig sein.

  2. Wählen Sie Compute registrieren. Sie können den Fortschritt dieser Anfrage im Ausgabeprotokoll des Unreal-Editors verfolgen.

Das Plugin registriert Ihre lokale Workstation mit der IP-Adresse, die auf localhost (127.0.0.1) eingestellt ist. Bei dieser Einstellung wird davon ausgegangen, dass du deinen Spielclient und Server auf demselben Computer ausführst.

Als Reaktion auf diese Aktion GameLift überprüft Amazon, ob es eine Verbindung zum Computer herstellen kann, und gibt Informationen über den neu registrierten Computer zurück.

Spiel starten

In diesem Schritt baust du deine Spielkomponenten und startest sie, um das Spiel zu spielen. Führen Sie die folgenden Schritte aus:

  1. Konfiguriere deinen Spielclient. In diesem Schritt forderst du das Plugin auf, ein GameLiftClientSettings Asset für dein Spielprojekt zu aktualisieren. Das Plugin verwendet dieses Asset, um bestimmte Informationen zu speichern, die dein Spielclient benötigt, um eine Verbindung zum GameLift Amazon-Service herzustellen.

    1. Wenn du das Beispielspiel nicht importiert und initialisiert hast, erstelle ein neues GameLiftClientSettings Asset. Wählen Sie im Hauptmenü des Unity-Editors „Assets“, „Erstellen“ GameLift, „Client-Einstellungen“. Wenn Sie GameLiftClientSettings in Ihrem Projekt mehrere Kopien davon erstellen, erkennt das Plugin dies automatisch und benachrichtigt Sie, welches Asset das Plugin aktualisieren wird.

    2. Wähle unter Spiel starten die Option Client konfigurieren: Anywhere-Einstellungen anwenden. Diese Aktion aktualisiert deine Spielclient-Einstellungen, sodass du die Anywhere-Flotte verwendest, die du gerade eingerichtet hast.

  2. Erstelle deinen Spielclient und starte ihn.

    1. Erstellen Sie eine ausführbare Client-Datei mithilfe des Standard-Unity-Build-Prozesses. Wechseln Sie unter Datei, Build-Einstellungen die Plattform zu Windows, Mac, Linux. Wenn du das Beispielspiel importiert und die Einstellungen initialisiert hast, werden die Build-Liste und das Build-Ziel automatisch aktualisiert.

    2. Startet eine oder mehrere Instanzen der neu erstellten ausführbaren Datei für den Spielclient.

  3. Starte einen Gameserver in deiner Anywhere-Flotte. Wählen Sie Server: Server im Editor starten. Diese Aufgabe startet einen Live-Server, zu dem Ihr Client eine Verbindung herstellen kann, solange der Unity-Editor geöffnet bleibt.

  4. Starte eine Spielsitzung oder nimm an einer Spielsitzung teil. Verwenden Sie in Ihren Spielclient-Instanzen die Benutzeroberfläche, um jeden Client zu einer Spielsitzung hinzuzufügen. Wie du das machst, hängt davon ab, wie du dem Client Funktionen hinzugefügt hast.

Wenn du den Beispiel-Spielclient verwendest, weist er die folgenden Eigenschaften auf:

  • Eine Komponente zur Spieleranmeldung. Wenn eine Verbindung zu einem Spieleserver auf einer Anywhere-Flotte hergestellt wird, erfolgt keine Spielervalidierung. Sie können beliebige Werte eingeben, um an der Spielsitzung teilzunehmen.

  • Eine einfache Benutzeroberfläche für die Teilnahme am Spiel. Wenn ein Client versucht, einem Spiel beizutreten, sucht der Client automatisch nach einer aktiven Spielsitzung mit einem verfügbaren Spielerplatz. Wenn keine Spielsitzung verfügbar ist, fordert der Client eine neue Spielsitzung an. Wenn eine Spielsitzung verfügbar ist, fordert der Client die Teilnahme an der verfügbaren Spielsitzung an. Wenn du dein Spiel mit mehreren gleichzeitigen Clients testest, startet der erste Client die Spielsitzung, und die übrigen Clients nehmen automatisch an der bestehenden Spielsitzung teil.

  • Spielsitzungen mit Slots für vier Spieler. Du kannst bis zu vier Spielclient-Instanzen gleichzeitig starten und sie nehmen an derselben Spielsitzung teil.

Von einer ausführbaren Serverdatei aus starten (optional)

Sie können die ausführbare Datei Ihres Spieleservers erstellen und starten, um sie auf einer Anywhere-Flotte zu testen.

  1. Erstellen Sie eine ausführbare Serverdatei mithilfe des standardmäßigen Unity-Build-Prozesses. Stellen Sie unter Datei, Build-Einstellungen die Plattform auf Dedicated Server um und erstellen Sie.

  2. Holen Sie sich ein kurzfristiges Authentifizierungstoken, indem Sie den AWS CLI-Befehl get-compute-auth-tokenmit Ihrer Anywhere-Flotten-ID und AWS Region aufrufen. Die Flotten-ID wird in Connect to an Anywhere Fleet angezeigt, wenn Sie die Flotte erstellen. Die AWS Region wird unter „Profil einrichten“ angezeigt, wenn Sie Ihr aktives Profil auswählen.

    aws gamelift get-compute-auth-token --fleet-id [your anywhere fleet ID] --region [your AWS region]
  3. Starte die neu erstellte ausführbare Spielserver-Datei über eine Befehlszeile und übergebe ein gültiges Authentifizierungstoken.

    my_project.exe --authToken [token]