View a markdown version of this page

Integrieren GameLift Amazon-Server mit einem Unity-Gameserver-Projekt - 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.

Integrieren GameLift Amazon-Server mit einem Unity-Gameserver-Projekt

Anmerkung

Dieses Thema enthält Informationen zu einer früheren Version des Amazon GameLift Servers Plugins für Unity. Version 1.x verwendet das Server-SDK für Amazon GameLift Servers 4.x oder früher. Eine Dokumentation zur neuesten Plugin-Version, die das Server-SDK 5.x verwendet und neuere Funktionen wie Amazon GameLift Servers Anywhere und Managed Container Hosting unterstützt, finden Sie unter. GameLift Amazon-Server Plugin für Unity (Server-SDK 5.x)

Dieses Thema hilft dir dabei, deinen benutzerdefinierten Spieleserver für das Hosting auf Amazon GameLift Servers vorzubereiten. Der Spieleserver muss in der Lage sein, Sie Amazon GameLift Servers über seinen Status zu informieren, Spielsitzungen zu starten und zu beenden, wenn Sie dazu aufgefordert werden, und andere Aufgaben ausführen zu können. Weitere Informationen finden Sie unter Addition GameLift Amazon-Server mit dem Server-SDK auf deinen Spieleserver.

Voraussetzungen

Erledige die folgenden Aufgaben, bevor du deinen Spieleserver integrierst:

Richte einen neuen Serverprozess ein

Anmerkung

Dieses Thema bezieht sich auf Amazon GameLift Servers das Plugin für Unity Version 1.0.0, das Server-SDK 4.x oder früher verwendet.

Richten Sie die Kommunikation mit dem Serverprozess ein Amazon GameLift Servers und melden Sie, dass der Serverprozess bereit ist, eine Spielsitzung abzuhalten.

  1. Initialisieren Sie das Server-SDK, indem Sie es aufrufenInitSDK().

  2. Um den Server auf die Annahme einer Spielsitzung vorzubereiten, rufen Sie an ProcessReady() und geben Sie den Verbindungsanschluss und den Ort der Spielsitzung an. Geben Sie die Namen der Rückruffunktionen an, die der Amazon GameLift Servers Dienst aufruft, z. B.OnGameSession(),OnGameSessionUpdate(),OnProcessTerminate(). OnHealthCheck() Amazon GameLift ServersDie Bereitstellung eines Rückrufs kann einige Minuten dauern.

  3. Amazon GameLift Serversaktualisiert den Status des Serverprozesses aufACTIVE.

  4. Amazon GameLift Serversruft onHealthCheck regelmäßig an.

Das folgende Codebeispiel zeigt, wie Sie einen einfachen Serverprozess mit einrichtenAmazon GameLift Servers.

//initSDK var initSDKOutcome = GameLiftServerAPI.InitSDK(); //processReady // Set parameters and call ProcessReady var processParams = new ProcessParameters( this.OnGameSession, this.OnProcessTerminate, this.OnHealthCheck, this.OnGameSessionUpdate, port, // Examples of log and error files written by the game server new LogParameters(new List<string>() { "C:\\game\\logs", "C:\\game\\error" }) ); var processReadyOutcome = GameLiftServerAPI.ProcessReady(processParams); // Implement callback functions void OnGameSession(GameSession gameSession) { // game-specific tasks when starting a new game session, such as loading map // When ready to receive players var activateGameSessionOutcome = GameLiftServerAPI.ActivateGameSession(); } void OnProcessTerminate() { // game-specific tasks required to gracefully shut down a game session, // such as notifying players, preserving game state data, and other cleanup var ProcessEndingOutcome = GameLiftServerAPI.ProcessEnding(); } bool OnHealthCheck() { bool isHealthy; // complete health evaluation within 60 seconds and set health return isHealthy; }

Starte eine Spielsitzung

Anmerkung

Dieses Thema bezieht sich auf Amazon GameLift Servers das Plugin für Unity Version 1.0.0, das Server-SDK 4.x oder früher verwendet.

Nachdem die Initialisierung des Spiels abgeschlossen ist, können Sie eine Spielsitzung starten.

  1. Implementieren Sie die Callback-Funktion. onStartGameSession Amazon GameLift Serversruft diese Methode auf, um eine neue Spielsitzung auf dem Serverprozess zu starten und Spielerverbindungen zu empfangen.

  2. Um eine Spielsitzung zu aktivieren, rufen Sie an. ActivateGameSession() Weitere Informationen zum SDK finden Sie unterC#-Server-SDK für Amazon-Server GameLift 4.x — Aktionen.

Das folgende Codebeispiel veranschaulicht, wie eine Spielsitzung mit gestartet wirdAmazon GameLift Servers.

void OnStartGameSession(GameSession gameSession) { // game-specific tasks when starting a new game session, such as loading map ... // When ready to receive players var activateGameSessionOutcome = GameLiftServerAPI.ActivateGameSession(); }

Beenden Sie eine Spielsitzung

Anmerkung

Dieses Thema bezieht sich auf Amazon GameLift Servers das Plugin für Unity Version 1.0.0, das Server-SDK 4.x oder früher verwendet.

BenachrichtigeAmazon GameLift Servers, wenn eine Spielsitzung endet. Es hat sich bewährt, die Serverprozesse nach Abschluss der Spielsitzungen herunterzufahren, um die Hosting-Ressourcen zu recyceln und zu aktualisieren.

  1. Richten Sie eine Funktion ein, die so benannt istonProcessTerminate, dass sie Anfragen entgegennimmt Amazon GameLift Servers und aufruftProcessEnding().

  2. Der Prozessstatus ändert sich zuTERMINATED.

Das folgende Beispiel beschreibt, wie ein Prozess für eine Spielsitzung beendet wird.

var processEndingOutcome = GameLiftServerAPI.ProcessEnding(); if (processReadyOutcome.Success) Environment.Exit(0); // otherwise, exit with error code Environment.Exit(errorCode);

Erstellen Sie einen Server-Build und laden Sie ihn hoch GameLift Amazon-Server

Anmerkung

Dieses Thema bezieht sich auf Amazon GameLift Servers das Plugin für Unity Version 1.0.0, das Server-SDK 4.x oder früher verwendet.

Nachdem Sie Ihren Spieleserver integriert habenAmazon GameLift Servers, laden Sie die Build-Dateien in eine Flotte hoch, damit Sie sie für das Spielhosting einsetzen Amazon GameLift Servers können. Weitere Informationen darüber, wie du deinen Server hochlädstAmazon GameLift Servers, findest du unterErstelle einen Gameserver-Build für GameLift Amazon-Server.