View a markdown version of this page

Plugin für Unity: Richten Sie lokale Tests ein mit GameLift Amazon-Server Überall - 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.

Plugin für Unity: Richten Sie lokale Tests ein mit GameLift Amazon-Server Überall

In diesem Arbeitsablauf fügst du Client- und Serverspielcode für die Amazon GameLift Servers Funktionalität hinzu und verwendest das Plugin, um deine lokale Workstation als Test-Gameserver-Host zu bestimmen. Wenn du die Integrationsaufgaben abgeschlossen hast, verwende das Plugin, um deinen Spielclient und deine Serverkomponenten zu erstellen.

Um das zu starten GameLift Amazon-Server Arbeitsablauf an jedem Ort:
  • Wählen Sie Amazon GameLift Servers im Hauptmenü des Unity-Editors die Option Host with Anywhere aus. Diese Aktion öffnet die Plugin-Seite, auf der Sie Ihr Spiel mit einer @Anywhere -Flotte einrichten können. Auf der Seite findest du einen fünfstufigen Prozess zum Integrieren, Erstellen und Starten deiner Spielkomponenten.

Lege dein Profil fest

Wählen Sie das Profil aus, das Sie verwenden möchten, wenn Sie diesem Workflow folgen. Das Profil, das Sie auswählen, 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 Amazon GameLift Servers Menü und wählen Sie AWS Kontoprofile einrichten.

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

Integrieren Sie Ihren Spielcode in das C#-Server-SDK

Anmerkung

Wenn du das Beispielspiel importiert hast, kannst du diesen Schritt überspringen. Die Ressourcen für das Beispielspiel verfügen bereits über den erforderlichen Server- und Client-Code.

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

  • Spieleserver müssen in der Lage sein, mit dem Amazon GameLift Servers Dienst 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 diese zu starten und Verbindungsinformationen abzurufen, um an einem Spiel teilnehmen zu können.

Integrieren Sie Ihren Servercode

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

  1. Öffne den Assets/Scripts/Server Ordner in deinen 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 Ordner deines Spielprojekts. Server 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 Servers C#-Server-SDK (Version 5) verwenden:

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

  • Implementiert die erforderlichen Rückruffunktionen, um auf Anfragen des Amazon GameLift Servers Dienstes zu antworten, einschließlich OnStartGameSessionOnProcessTerminate, undonHealthCheck.

  • Ruft ProcessReady() mit einem bestimmten Port auf, um den Amazon GameLift Servers Dienst 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 Kundencode

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

Wenn Sie einen Client für lokale Tests mit einer Anywhere-Flotte erstellen, können Sie dem Amazon GameLift Servers Service direkte Aufrufe hinzufügen. Wenn Sie Ihr Spiel für Cloud-Hosting entwickeln — oder wenn Sie Anywhere-Flotten für das Produktions-Hosting verwenden möchten — müssen Sie einen clientseitigen Backend-Service einrichten, der die gesamte Kommunikation zwischen den Spielclients und dem Dienst abwickelt. Amazon GameLift Servers

Verwenden Sie für die Integration Amazon GameLift Servers in Ihren Client-Code die folgenden Ressourcen als Leitfaden.

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

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

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

Für Spielclients, die eine Verbindung zu einer Anywhere-Flotte herstellen, benötigt Ihr Spielclient die folgenden Informationen. Das Plugin aktualisiert dein Spielprojekt automatisch, um die Ressourcen zu verwenden, die du im Plugin erstellst.

  • 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öglichtAmazon GameLift Servers. Der Spielclient verwendet diese Anmeldeinformationen, um Anfragen an den Amazon GameLift Servers Dienst 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 Verbindung zu einer Anywhere-Flotte her

In diesem Schritt legen Sie eine Anywhere-Flotte fest, die verwendet werden soll. Eine Anywhere-Flotte definiert eine Sammlung von Rechenressourcen, die sich an einem beliebigen Ort befinden können, für das Hosting von Spieleservern.

  • Wenn das AWS Konto, das Sie derzeit verwenden, über bestehende Anywhere-Flotten verfügt, öffnen Sie das Dropdownfeld Flottenname und wählen Sie eine Flotte aus. In diesem Drop-down-Menü 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, wird Amazon GameLift Servers überprüft, 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 aus. Sie können den Fortschritt dieser Anfrage im Ausgabelog des Unity-Editors verfolgen.

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

Amazon GameLift ServersÜberprüft als Reaktion auf diese Aktion, ob eine Verbindung zum Computer hergestellt werden 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 Amazon GameLift Servers Dienst 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, Create, Amazon GameLift, Client Settings. Wenn Sie GameLiftClientSettings in Ihrem Projekt mehrere Kopien von erstellen, erkennt das Plugin dies automatisch und benachrichtigt Sie, welches Asset das Plugin aktualisiert.

    2. Wähle unter „Spiel starten“ die Option „Client konfigurieren: Anywhere-Einstellungen anwenden“. Diese Aktion aktualisiert die Einstellungen deines Spielclients, sodass die Anywhere-Flotte verwendet wird, die du gerade eingerichtet hast.

  2. Erstelle deinen Spielclient und starte ihn.

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

    2. Starte eine oder mehrere Instanzen der neu erstellten Programmdatei für den Spielclient.

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

  4. Starte eine Spielsitzung oder tritt ihr bei. Verwenden Sie in Ihren Spielclientinstanzen 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-Client für das Spiel verwendest, weist er die folgenden Eigenschaften auf:

  • Eine Komponente zur Spieleranmeldung. Wenn Sie eine Verbindung zu einem Spieleserver auf einer Anywhere-Flotte herstellen, 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 Kunde versucht, an einem Spiel teilzunehmen, sucht der Client automatisch nach einer aktiven Spielsitzung mit einem verfügbaren Spielerplatz. Wenn keine Spielsitzung verfügbar ist, fordert der Kunde eine neue Spielsitzung an. Wenn eine Spielsitzung verfügbar ist, fordert der Client an, an der verfügbaren Spielsitzung teilzunehmen. Wenn du dein Spiel mit mehreren Clients gleichzeitig testest, startet der erste Client die Spielsitzung und die übrigen Clients nehmen automatisch an der bestehenden Spielsitzung teil.

  • Spielsitzungen mit vier Spielerplätzen. Du kannst bis zu vier Spielclients gleichzeitig starten und sie nehmen an derselben Spielsitzung teil.

Starte von einer ausführbaren Serverdatei (optional)

Du kannst deine Spieleserver-Datei erstellen und zum Testen auf einer Anywhere-Flotte starten.

  1. Erstellen Sie eine ausführbare Serverdatei mit dem standardmäßigen Unity-Build-Prozess. Schalten Sie unter Datei, Build Settings, die Plattform auf Dedicated Server um und erstellen Sie.

  2. Rufen Sie den AWS CLI-Befehl get-compute-auth-token mit Ihrer Anywhere-Flotten-ID und Region auf, um ein kurzfristiges Authentifizierungstoken abzurufen. AWS 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 Programmdatei des Spielservers über eine Befehlszeile und gib ein gültiges Authentifizierungstoken ein.

    my_project.exe --authToken [token]