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 Unreal: Stellen Sie Ihr Spiel in einer verwalteten EC2-Flotte bereit
Stellen Sie in diesem Workflow Ihr Spiel für das Hosting auf Cloud-basierten Rechenressourcen bereit, die von verwaltet werdenAmazon GameLift Servers. Laden Sie den Build Ihres integrierten Spieleservers zur Bereitstellung in den Amazon GameLift Servers Dienst hoch. Wenn Sie Ihren Spielcode noch nicht integriert haben, finden Sie weitere Informationen unterPlugin für Unreal: Integriere deinen Spielcode. Wenn dieser Arbeitsablauf abgeschlossen ist, hast du einen funktionierenden Spielclient, der eine Verbindung zu deinen Spieleservern in der Cloud herstellen kann.
Um das zu starten GameLift Amazon-Server verwalteter Amazon EC2-Workflow:
Wählen Sie in der Hauptsymbolleiste des Unreal-Editors das Amazon GameLift Servers Menü und wählen Sie Host with Managed EC2 aus. Diese Aktion öffnet die Plugin-Seite Amazon EC2 Fleet bereitstellen, auf der Sie in sechs Schritten Ihre Spielkomponenten integrieren, erstellen, bereitstellen und starten können.
Schritt 1: 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.
Um ein Benutzerprofil einzurichten
-
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 GameLift Amazon-Menü und wählen Sie AWS Benutzerprofile einrichten.
-
Wenn der Bootstrap-Status nicht „Aktiv“ ist, wählen Sie das Bootstrap-Profil und warten Sie, bis sich der Status auf „Aktiv“ ändert.
Schritt 2: Richte deinen Spielcode ein
In diesem Schritt bereitest du deine Spieleserver- und Spieleclient-Builds so vor, dass sie mit dem Amazon GameLift Servers C++-Server-SDK für Unreal funktionieren. Falls du deinen Spielcode noch nicht integriert und die ausführbaren Spielclient- und Serverdateien noch nicht erstellt hast, siehe. Plugin für Unreal: Integriere deinen Spielcode Gib die Pfade zu deinen ausführbaren Spieldateien auf deiner lokalen Workstation ein.
In diesem Schritt im Arbeitsablauf bietet das Plugin Links zu Anweisungen und Quellcode zum Einrichten einer Quellversion des Unreal Editors. Sie müssen die Quellversion verwenden, wenn Sie Ihre Client- und Serverkomponenten erstellen.
Nachdem Sie den Spieleserver erstellt haben, der in das Server-SDK integriert ist, führen Sie die folgenden Aufgaben durch, um ihn für das Hochladen und Hosten vorzubereiten. Amazon GameLift Servers
Nehmen Sie in dem WindowsServer Ordner, in dem der Unreal-Editor standardmäßig Ihre Server-Build-Dateien speichert, die folgenden Ergänzungen vor:
Kopieren Sie das Server-Build-Installationsskript in das Stammverzeichnis des
WindowsServerOrdners. Das Installationsskript ist im Plugin-Download enthalten. Suchen Sie nach der Datei[project-name]/Plugins/Resources/CloudFormation/extra_server_resources/install.bat. Amazon GameLift Serversverwendet diese Datei, um den Server-Build auf Ihren Hosting-Computern zu installieren.Kopieren Sie die
VC_redist.x64.exeDatei in das Stammverzeichnis desWindowsServerOrdners. Sie können diesen Schritt überspringen, wenn Sie Unreal Engine Version 5.6 oder höher verwenden. Diese Datei ist in Ihrer Visual Studio-Installation enthalten. Sie befindet sich üblicherweise unterC:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Redist/MSVC/v142.Füge die OpenSSL-Bibliotheksdateien zu deinem Spieleserver-Build hinzu. . Du kannst diesen Schritt überspringen, wenn dein Spieleserver in das Server-SDK 5.3 oder höher integriert ist. Diese Version ist im Amazon GameLift Servers Plugin für Unreal, Version 3.0 oder höher, enthalten.
Suchen Sie die OpenSSL-Bibliotheken manuell und kopieren Sie sie in das Build-Paketverzeichnis Ihres Spiels unter.
<YourGame>/Binaries/Win64Sie müssen dieselbe OpenSSL-Version verwenden, die Ihre Unreal Engine 5-Version verwendet. Spiele-Builds, die mit den falschen OpenSSL-Bibliotheken bereitgestellt werden, können nicht mit dem Dienst kommunizieren. Amazon GameLift ServersSuchen Sie in Ihrer Game-Engine-Quelle nach den OpenSSL-Bibliotheken. Der Speicherort variiert je nach Ihrer Entwicklungsumgebung:
Unter Windows:
-
[ENGINE_ROOT_DIR]\Engine\Extras\ThirdPartyNotUE\libimobiledevice\x64\libssl-1_1-x64.dll -
[ENGINE_ROOT_DIR]\Engine\Extras\ThirdPartyNotUE\libimobiledevice\x64\libcrypto-1_1-x64.dll
Unter Linux:
-
Engine/Source/Thirdparty/OpenSSL/1.1.1n/include/libssl.so.1.1 -
Engine/Source/Thirdparty/OpenSSL/1.1.1n/include/libcrypto.so.1.1
-
Eine detailliertere Anleitung zur Vorbereitung eines für Linux erstellten Spieleservers finden Sie unter Erstellen des Server-SDK Amazon GameLift Servers für Unreal Engine 5 auf Amazon Linux
-
Geben Sie ein Arbeitsverzeichnis an, um Ihre Build-Dateien zu organisieren. Die Struktur des Arbeitsverzeichnisses wird unverändert auf jedem Hosting-Computer bereitgestellt. Füge deinen Linux-built Spieleserver und alle abhängigen Dateien hinzu.
-
Erstelle ein Server-Build-Installationsskript im Stammverzeichnis deines Arbeitsverzeichnisses. Erstellen Sie bei Bedarf eine
install.shDatei und fügen Sie alle Befehle hinzu, die zur ordnungsgemäßen Installation Ihres Spieleserver-Builds erforderlich sind. Amazon GameLift Serversverwendet diese Datei, um den Server-Build auf jeder EC2-Hosting-Ressource zu installieren. -
Füge die OpenSSL-Bibliotheksdateien zu deinem Spieleserver-Build hinzu. Du kannst diesen Schritt überspringen, wenn dein Spieleserver in das Server-SDK 5.3 oder höher integriert ist.
Suchen Sie die Bibliotheken manuell und kopieren Sie sie. Sie müssen dieselbe OpenSSL-Version verwenden, die Ihre Unreal Engine 5-Version verwendet. Spiele-Builds, die mit den falschen OpenSSL-Bibliotheken bereitgestellt werden, können nicht mit dem Dienst kommunizieren. Amazon GameLift Servers
-
Suchen Sie in Ihrer Game-Engine-Quelle nach den OpenSSL-Bibliotheken. Der Speicherort variiert je nach Ihrer Entwicklungsumgebung:
Unter Windows:
-
[ENGINE_ROOT_DIR]\Engine\Extras\ThirdPartyNotUE\libimobiledevice\x64\libssl-1_1-x64.dll -
[ENGINE_ROOT_DIR]\Engine\Extras\ThirdPartyNotUE\libimobiledevice\x64\libcrypto-1_1-x64.dll
Unter Linux:
-
Engine/Source/Thirdparty/OpenSSL/1.1.1n/include/libssl.so.1.1 -
Engine/Source/Thirdparty/OpenSSL/1.1.1n/include/libcrypto.so.1.1
-
-
Wenn Sie die OpenSSL-Bibliotheken gefunden haben, kopieren Sie sie in Ihr Spiele-Build-Paketverzeichnis unter
<YourGame>/Binaries/Linux.
-
Schritt 3: Wählen Sie das Bereitstellungsszenario
In diesem Schritt wählst du die Game-Hosting-Lösung aus, die du zu diesem Zeitpunkt bereitstellen möchtest. 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
Schritt 4: Stellen Sie die Spielparameter ein
In diesem Schritt beschreibst du dein Spiel für den Upload auf; AWS
Server-Build-Name: Gib einen aussagekräftigen Namen für deinen Spieleserver-Build an. AWS verwendet diesen Namen, um auf die Kopie deines Server-Builds zu verweisen, die hochgeladen und für Bereitstellungen verwendet wurde.
Server-Build-Betriebssystem: Geben Sie das Betriebssystem ein, auf dem Ihr Server ausgeführt werden soll. Dies gibt an AWS , welche Art von Rechenressourcen Sie zum Hosten Ihres Spiels verwenden sollten.
Spieleserver-Ordner: Identifiziere den Pfad zu deinem lokalen Server-Build-Ordner.
Spieleserver-Build: Identifizieren Sie den Pfad zur ausführbaren Datei des Spielservers.
Pfad zum Spielclient: Identifiziert den Pfad zur ausführbaren Datei des Spielclients.
Ausgabe der Client-Konfiguration: Dieses Feld muss auf einen Ordner in deinem Client-Build verweisen, der deine AWS Konfiguration enthält. Suchen Sie am folgenden Ort danach:
[client-build]/[project-name]/Content/CloudFormation.
Schritt 5: 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.
Schritt 6: Starten Sie den Client
Zu diesem Zeitpunkt hast du alle Aufgaben abgeschlossen, die zum Starten und Spielen deines Multiplayer-Spiels, auf dem du gehostet wirst, erforderlich sindAmazon GameLift Servers. Um das Spiel zu spielen, starte eine Instanz deines Spielclients.
Wenn du das Szenario mit einer Flotte implementiert hast, kannst du eine einzelne Client-Instanz mit einem Spieler öffnen, die Serverkarte aufrufen und dich bewegen. Öffne weitere Instanzen des Spielclients, um einen zweiten Spieler zur gleichen Serverspielkarte hinzuzufügen.
Wenn du das FlexMatch Szenario bereitgestellt hast, wartet die Lösung darauf, dass mindestens zwei Clients für die Platzierung der Spielsitzungen in die Warteschlange gestellt werden, bevor die Spieler die Serverkarte betreten können.