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: Stellen Sie Ihr Spiel in einer verwalteten EC2-Flotte bereit
In diesem Workflow verwenden Sie das Plugin, um Ihr Spiel für das Hosting auf Cloud-basierten Rechenressourcen vorzubereiten, die von Amazon GameLift Servers verwaltet werden. Du fügst Client- und Serverspielcode für die Amazon GameLift Servers Funktionalität hinzu und lädst dann deinen Server-Build zum Hosten in den Amazon GameLift Servers Service hoch. Wenn dieser Arbeitsablauf abgeschlossen ist, laufen die Spieleserver in der Cloud und es gibt einen funktionierenden Spielclient, der eine Verbindung zu ihnen herstellen kann.
Um das zu starten GameLift Amazon-Server verwalteter Amazon EC2-Workflow:
Wählen Amazon GameLift Servers und wählen Sie im Hauptmenü des Unity-Editors Host with Managed EC2 aus. Dieser Workflow umfasst einen sechsstufigen Prozess zum Integrieren, Erstellen, Bereitstellen und Starten Ihrer 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.
-
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.
-
Wenn der Bootstrap-Status nicht „Aktiv“ ist, wählen Sie das Bootstrap-Profil und warten Sie, bis sich der Status auf „Aktiv“ ändert.
Integriere dein Spiel mit GameLift Amazon-Server
Für diese Aufgabe 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.
Anmerkung
Wenn Sie das Beispielspiel importiert haben, können Sie diesen Schritt überspringen. Die Ressourcen für das Beispielspiel verfügen bereits über den erforderlichen Server- und Client-Code.
Integrieren Sie Ihren Servercode
Wenn Sie Ihr eigenes Spielprojekt mit benutzerdefinierten Szenen verwenden, verwenden Sie den bereitgestellten Beispielcode, um Ihrem Spielprojekt den erforderlichen Servercode hinzuzufügen. Wenn du dein Spielprojekt zum Testen mit einer Anywhere-Flotte integriert hast, hast du die Anweisungen in diesem Schritt bereits abgeschlossen.
-
Öffne den
Assets/Scripts/ServerOrdner in deinen Spielprojektdateien. Wenn er nicht existiert, erstelle ihn. -
Gehe zum GitHub Repo aws/amazon
-gamelift-plugin-unity und öffne den Pfad. Samples~/SampleGame/Assets/Scripts/Server -
Finde die Datei
GameLiftServer.csund kopiere sie in den Ordner deines Spielprojekts.ServerWenn 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 Anywhere-Flotte erforderlich. Amazon GameLift Servers 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
Für Spielclients, die eine Verbindung zu Cloud-basierten Spieleservern herstellen, empfiehlt es sich, einen clientseitigen Backend-Dienst zu verwenden, um den Amazon GameLift Servers Dienst aufzurufen, anstatt die Anrufe direkt vom Spielclient aus zu tätigen.
Im Plugin-Workflow für das Hosting auf einer verwalteten EC2-Flotte umfasst jedes Bereitstellungsszenario einen vorgefertigten Backend-Service, der die folgenden Komponenten umfasst:
-
Eine Reihe von Lambda-Funktionen und DynamoDB-Tabellen, die zum Anfordern von Spielsitzungen und zum Abrufen von Informationen zu Spielsitzungen verwendet werden. Diese Komponenten verwenden ein API-Gateway als Proxy.
-
Ein Amazon Cognito-Benutzerpool, der eindeutige Player-IDs generiert und Spielerverbindungen authentifiziert.
Um diese Komponenten verwenden zu können, benötigt Ihr Spielclient Funktionen, um Anfragen an den Backend-Service zu senden, um Folgendes zu tun:
-
Erstelle einen Player-Benutzer im AWS Cognito-Benutzerpool und authentifiziere dich.
-
Nehmen Sie an einer Spielsitzung teil und erhalten Sie Verbindungsinformationen.
-
Nimm mithilfe von Matchmaking an einem Spiel teil.
Verwenden Sie 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. -
Die Beispiel-Spielintegrationen finden Sie im GitHub Repo -gamelift-plugin-unity aws/amazon,.
Samples~/SampleGame/Assets/Scripts/Client/GameLiftClient.cs -
Integrieren GameLift Amazon-Server Funktionalität des Spielclients.
(Nur Unity 6.3+) Integrieren Sie das Skript install.sh
Unity 6.3 unter Linux erfordert Glibc 2.35. Amazon Linux 2023 beinhaltet Glibc 2.34. Es wird ein install.sh -Skript bereitgestellt, das das Erstellen von Glibc 2.35 aus dem Quellcode und die Konfiguration der Unity-Binärdateien für die Verwendung von Glibc 2.35 übernimmt.
-
Gehe zum Repo -gamelift-plugin-unity und öffne den Pfad GitHub . aws/amazon
ExtraServerResources -
Suchen Sie die Datei
install.shund kopieren Sie sie in den Ordner, der Ihren Server-Build enthält. -
Wenn Sie ein vorhandenes haben
install.sh, führen Sie den Inhalt beider Skripte zu einem einzigen zusammeninstall.sh.
Wählen Sie ein Einsatzszenario
In diesem Schritt wählen Sie die Spielhosting-Lösung aus, die Sie zu diesem Zeitpunkt bereitstellen möchten. Sie können Ihr Spiel in mehreren Bereitstellungen verwenden und dabei eines der Szenarien verwenden.
Single-region Flotte: Stellt deinen Spielserver auf einer einzigen Flotte von Hosting-Ressourcen in der AWS Standardregion des aktiven Profils bereit. Dieses Szenario ist ein guter Ausgangspunkt, um deine Serverintegration AWS und deine Server-Build-Konfiguration zu testen. Es stellt die folgenden Ressourcen bereit:
AWS fleet (On-Demand) mit installiertem und laufendem Gameserver-Build.
Amazon Cognito-Benutzerpool und -Client, der es Spielern ermöglicht, sich zu authentifizieren und ein Spiel zu starten.
API-Gateway-Autorisierer, der den Benutzerpool mit APIs verknüpft.
WebACL zur Drosselung übermäßiger Player-Aufrufe an das API-Gateway.
API-Gateway + Lambda-Funktion, mit der Spieler einen Spielautomat anfordern können. Diese Funktion wird aufgerufen
CreateGameSession(), wenn keine verfügbar ist.API-Gateway + Lambda-Funktion, mit der Spieler Verbindungsinformationen für ihre Spielanfrage abrufen können.
FlexMatch Flotte: Stellt deinen Spielserver für eine Reihe von Flotten bereit und richtet einen FlexMatch Matchmaker mit Regeln ein, um Spielermatches zu erstellen. In diesem Szenario wird kostengünstiges Spot-Hosting mit einer Struktur aus mehreren Flotten und mehreren Standorten verwendet, um eine dauerhafte Verfügbarkeit zu gewährleisten. Dieser Ansatz ist nützlich, wenn Sie bereit sind, mit der Entwicklung einer Matchmaker-Komponente für Ihre Hosting-Lösung zu beginnen. In diesem Szenario erstellen Sie die grundlegenden Ressourcen für diese Lösung, die Sie später nach Bedarf anpassen können. Es stellt die folgenden Ressourcen bereit:
FlexMatch Matchmaking-Konfiguration und Matchmaking-Regelsatz zur Annahme von Spieleranfragen und zur Erstellung von Matches.
-
Drei AWS Flotten, bei denen dein Gameserver-Build installiert ist und an mehreren Standorten läuft. Beinhaltet zwei Spot-Flotten und eine On-Demand Flotte als Backup.
-
AWS Warteschlange für die Platzierung von Spielsitzungen, die Anfragen für vorgeschlagene Spiele erfüllt, indem sie die bestmögliche Hosting-Ressource findet (basierend auf Rentabilität, Kosten, Spielerlatenz usw.) und eine Spielsitzung startet.
-
Amazon Cognito-Benutzerpool und -Client, der es Spielern ermöglicht, sich zu authentifizieren und ein Spiel zu starten.
-
API-Gateway-Autorisierer, der den Benutzerpool mit APIs verknüpft.
-
WebACL zur Drosselung übermäßiger Player-Aufrufe an das API-Gateway.
-
API-Gateway + Lambda-Funktion, mit der Spieler einen Spielautomat anfordern können. Diese Funktion ruft
StartMatchmaking()auf. -
API-Gateway + Lambda-Funktion, mit der Spieler Verbindungsinformationen für ihre Spielanfrage abrufen können.
-
Amazon DynamoDB-Tabellen zum Speichern von Matchmaking-Tickets für Spieler und Informationen zur Spielsitzung.
-
SNS-Thema + Lambda-Funktion zur Behandlung von Ereignissen. GameSessionQueue
Stellen Sie die Spielparameter ein
In diesem Schritt beschreibst du dein Spiel zum AWS Hochladen.
-
Spielname: Gib einen aussagekräftigen Namen für dein Spielprojekt an. Dieser Name wird innerhalb des Plugins verwendet.
-
Flottenname: Geben Sie einen aussagekräftigen Namen für Ihre verwaltete EC2-Flotte ein. Amazon GameLift Serversverwendet diesen Namen (zusammen mit der Flotten-ID), wenn Ressourcen in der AWS Konsole aufgelistet werden.
-
Build-Name: Geben Sie einen aussagekräftigen Namen für Ihren Server-Build ein. AWS verwendet diesen Namen, um auf die Kopie Ihres Server-Builds zu verweisen, die in Bereitstellungen hochgeladen Amazon GameLift Servers und für Bereitstellungen verwendet wird.
-
Startparameter: Geben Sie optionale Anweisungen ein, die ausgeführt werden sollen, wenn die Serverdatei auf einer verwalteten EC2-Flotteninstanz gestartet wird. Die maximale Länge beträgt 1024 Zeichen.
-
Spieleserverordner: Geben Sie den Pfad zu einem lokalen Ordner an, der Ihren Server-Build enthält.
-
Spieleserverdatei: Geben Sie den Namen der ausführbaren Serverdatei an.
Szenario bereitstellen
In diesem Schritt stellst du dein Spiel auf einer Cloud-Hosting-Lösung bereit, die auf dem von dir ausgewählten Bereitstellungsszenario basiert. Dieser Vorgang kann mehrere Minuten dauern, da dein Server-Build AWS validiert, Hosting-Ressourcen bereitgestellt, dein Spieleserver installiert, Serverprozesse gestartet und sie für das Hosten von Spielesitzungen vorbereitet werden.
Um die Bereitstellung zu starten, wähle Deploy. CloudFormation Du kannst den Status deines Game-Hostings hier verfolgen. Für detailliertere Informationen kannst du dich in der AWS Management-Konsole anmelden, um Event-Benachrichtigungen zu erhalten AWS und diese einzusehen. Achten Sie darauf, dass Sie sich mit demselben Konto, Benutzer und derselben AWS Region wie das aktive Benutzerprofil im Plugin anmelden.
Wenn die Bereitstellung abgeschlossen ist, haben Sie Ihren Spieleserver auf einer AWS EC2-Instance installiert. Mindestens ein Serverprozess läuft und ist bereit, eine Spielsitzung zu starten.
Starte den Spielclient
Wenn deine Flotte erfolgreich eingesetzt wurde, laufen jetzt die Spielserver und stehen dir für Spielsitzungen zur Verfügung. Du kannst jetzt deinen Client erstellen, ihn starten und eine Verbindung herstellen, um an der Spielsitzung teilzunehmen.
-
Konfiguriere deinen Spielclient. In diesem Schritt forderst du das Plugin auf, ein
GameLiftClientSettingsAsset 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.-
Wenn du das Beispielspiel nicht importiert und initialisiert hast, erstelle ein neues
GameLiftClientSettingsAsset. Wählen Sie im Hauptmenü des Unity-Editors „Assets“, „Create“, „Amazon“ GameLift und „Client-Einstellungen“. Wenn SieGameLiftClientSettingsin Ihrem Projekt mehrere Kopien von erstellen, erkennt das Plugin dies automatisch und benachrichtigt Sie, welches Asset das Plugin aktualisiert. -
Wählen Sie unter „Spiel starten“ die Option „Client konfigurieren: Verwaltete EC2-Einstellungen anwenden“. Mit dieser Aktion werden die Einstellungen des Spielclients aktualisiert, sodass die verwaltete EC2-Flotte verwendet wird, die Sie gerade bereitgestellt haben.
-
-
Erstelle deinen Spielclient. 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.
-
Starte die neu erstellte Programmdatei des Spielclients. Um mit dem Spielen des Spiels zu beginnen, starten Sie zwei bis vier Client-Instanzen und verwenden Sie jeweils die Benutzeroberfläche, um an einer Spielsitzung teilzunehmen.
Wenn du den Beispiel-Spielclient 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.