Amazon GameLift ServersIntegrieren Sie in ein Unity-Spieleclient-Projekt - Amazon GameLift Servers

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.

Amazon GameLift ServersIntegrieren Sie in ein Unity-Spieleclient-Projekt

Anmerkung

Dieses Thema enthält Informationen zu einer früheren Version des Amazon GameLift Servers Plugins für Unity. Version 1.0.0 (veröffentlicht im Jahr 2021) verwendet das Server-SDK für Amazon GameLift Servers 4.x oder früher. Die Dokumentation zur neuesten Version des Plugins, die das Server-SDK 5.x verwendet und Amazon GameLift Servers Anywhere unterstützt, finden Sie unter. Amazon GameLift ServersPlugin für Unity (Server-SDK 5.x)

In diesem Thema erfahren Sie, wie Sie einen Spielclient einrichten, der über einen Back-End-Dienst eine Verbindung zu Amazon GameLift Servers gehosteten Spielsitzungen herstellt. Wird verwendet Amazon GameLift Servers APIs , um Spielersuche zu initiieren, die Platzierung von Spielsitzungen anzufordern und vieles mehr.

Fügen Sie dem Backend-Serviceprojekt Code hinzu, um die Kommunikation mit dem Amazon GameLift Servers Dienst zu ermöglichen. Ein Backend-Dienst kümmert sich um die gesamte Kommunikation des Spielclients mit dem GameLift Dienst. Weitere Informationen zu Backend-Diensten finden Sie unter.

Ein Backend-Server erledigt die folgenden Aufgaben des Spielclients:

  • Passen Sie die Authentifizierung für Ihre Spieler an.

  • Informationen über aktive Spielsitzungen vom Amazon GameLift Servers-Service anfordern.

  • Erstelle eine neue Spielsitzung.

  • Fügt einen Spieler zu einer bestehenden Spielsitzung hinzu.

  • Entferne einen Spieler aus einer bestehenden Spielsitzung.

Voraussetzungen

Bevor Sie die Spielserver-Kommunikation mit dem Amazon GameLift Servers Client einrichten, führen Sie die folgenden Aufgaben durch:

Initialisiere einen Spielclient

Anmerkung

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

Fügen Sie Code hinzu, um einen Spielclient zu initialisieren. Führe diesen Code beim Start aus, er ist für andere Amazon GameLift Servers Funktionen notwendig.

  1. InitialisierenAmazonGameLiftClient. Rufen Sie entweder AmazonGameLiftClient mit einer Standard-Client-Konfiguration oder einer benutzerdefinierten Konfiguration auf. Weitere Informationen zur Konfiguration eines Clients finden Sie unterAmazon GameLift ServersAuf einem Backend-Dienst einrichten.

  2. Generieren Sie für jeden Spieler eine eindeutige Spieler-ID, um eine Verbindung zu einer Spielsitzung herzustellen. Weitere Informationen finden Sie unter Spieler generieren IDs.

    Die folgenden Beispiele zeigen, wie Sie einen Amazon GameLift Servers Client einrichten.

    public class GameLiftClient { private GameLift gl; //A sample way to generate random player IDs. bool includeBrackets = false; bool includeDashes = true; string playerId = AZ::Uuid::CreateRandom().ToString<string>(includeBrackets, includeDashes); private Amazon.GameLift.Model.PlayerSession psession = null; public AmazonGameLiftClient aglc = null; public void CreateGameLiftClient() { //Access Amazon GameLift Servers service by setting up a configuration. //The default configuration specifies a location. var config = new AmazonGameLiftConfig(); config.RegionEndpoint = Amazon.RegionEndpoint.USEast1; CredentialProfile profile = null; var nscf = new SharedCredentialsFile(); nscf.TryGetProfile(profileName, out profile); AWSCredentials credentials = profile.GetAWSCredentials(null); //Initialize Amazon GameLift Servers Client with default client configuration. aglc = new AmazonGameLiftClient(credentials, config); } }

Erstelle eine Spielsitzung für eine bestimmte Flotte

Anmerkung

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

Fügen Sie Code zum Starten neuer Spielsitzungen auf den von Ihnen bereitgestellten Flotten hinzu und stellen Sie diese Spielern zur Verfügung. Nachdem Amazon GameLift Servers Sie die neue Spielsitzung erstellt und eine zurückgegeben habenGameSession, können Sie ihr Spieler hinzufügen.

  • Stellen Sie eine Anfrage für eine neue Spielsitzung.

    • Wenn dein Spiel Flotten verwendet, rufe CreateGameSession() mit einer Flotten- oder Alias-ID, einem Sitzungsnamen und der maximalen Anzahl gleichzeitiger Spieler für das Spiel an.

    • Wenn dein Spiel Warteschlangen verwendet, rufe an. StartGameSessionPlacement()

Das folgende Beispiel zeigt, wie Sie eine Spielsitzung erstellen.

public Amazon.GameLift.Model.GameSession() { var cgsreq = new Amazon.GameLift.Model.CreateGameSessionRequest(); //A unique identifier for the alias with the fleet to create a game session in. cgsreq.AliasId = aliasId; //A unique identifier for a player or entity creating the game session cgsreq.CreatorId = playerId; //The maximum number of players that can be connected simultaneously to the game session. cgsreq.MaximumPlayerSessionCount = 4; //Prompt an available server process to start a game session and retrieves connection information for the new game session Amazon.GameLift.Model.CreateGameSessionResponse cgsres = aglc.CreateGameSession(cgsreq); string gsid = cgsres.GameSession != null ? cgsres.GameSession.GameSessionId : "N/A"; Debug.Log((int)cgsres.HttpStatusCode + " GAME SESSION CREATED: " + gsid); return cgsres.GameSession; }

Spieler zu Spielsitzungen hinzufügen

Anmerkung

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

Nachdem Amazon GameLift Servers Sie die neue Spielsitzung erstellt und ein GameSession Objekt zurückgegeben haben, können Sie ihr Spieler hinzufügen.

  1. Reservieren Sie einen Spielerplatz in einer Spielsitzung, indem Sie eine neue Spielersitzung erstellen. Verwenden Sie CreatePlayerSession oder CreatePlayerSessions mit der Spielsitzungs-ID und einer eindeutigen ID für jeden Spieler.

  2. Connect zur Spielsitzung her. Rufen Sie das PlayerSession Objekt ab, um die Verbindungsinformationen der Spielsitzung abzurufen. Sie können diese Informationen verwenden, um eine direkte Verbindung zum Serverprozess herzustellen:

    1. Verwenden Sie den angegebenen Port und entweder den DNS-Namen oder die IP-Adresse des Serverprozesses.

    2. Verwenden Sie den DNS-Namen und den Port Ihrer Flotten. Der DNS-Name und der Port sind erforderlich, wenn für Ihre Flotten die Generierung von TLS-Zertifikaten aktiviert ist.

    3. Verweisen Sie auf die Sitzungs-ID des Players. Die Sitzungs-ID des Spielers ist erforderlich, wenn Ihr Spieleserver eingehende Spielerverbindungen validiert.

Die folgenden Beispiele zeigen, wie Sie einen Spielerplatz in einer Spielsitzung reservieren können.

public Amazon.GameLift.Model.PlayerSession CreatePlayerSession(Amazon.GameLift.Model.GameSession gsession) { var cpsreq = new Amazon.GameLift.Model.CreatePlayerSessionRequest(); cpsreq.GameSessionId = gsession.GameSessionId; //Specify game session ID. cpsreq.PlayerId = playerId; //Specify player ID. Amazon.GameLift.Model.CreatePlayerSessionResponse cpsres = aglc.CreatePlayerSession(cpsreq); string psid = cpsres.PlayerSession != null ? cpsres.PlayerSession.PlayerSessionId : "N/A"; return cpsres.PlayerSession; }

Der folgende Code zeigt, wie Sie einen Spieler mit der Spielsitzung verbinden.

public bool ConnectPlayer(int playerIdx, string playerSessionId) { //Call ConnectPlayer with player ID and player session ID. return server.ConnectPlayer(playerIdx, playerSessionId); }

Einen Spieler aus einer Spielsitzung entfernen

Anmerkung

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

Sie können die Spieler aus der Spielsitzung entfernen, wenn sie das Spiel verlassen.

  1. Informiere den Amazon GameLift Servers Dienst darüber, dass ein Spieler die Verbindung zum Serverprozess getrennt hat. Rufen Sie RemovePlayerSession mit der Sitzungs-ID des Spielers an.

  2. Stellen Sie sicher, dass das RemovePlayerSession zurückgegeben wirdSuccess. Amazon GameLift ServersÄndert dann den Spielerplatz so, dass er verfügbar ist. Amazon GameLift Servers Dieser kann einem neuen Spieler zugewiesen werden.

Das folgende Beispiel zeigt, wie eine Spielersitzung entfernt wird.

public void DisconnectPlayer(int playerIdx) { //Receive the player session ID. string playerSessionId = playerSessions[playerIdx]; var outcome = GameLiftServerAPI.RemovePlayerSession(playerSessionId); if (outcome.Success) { Debug.Log (":) PLAYER SESSION REMOVED"); } else { Debug.Log(":(PLAYER SESSION REMOVE FAILED. RemovePlayerSession() returned " + outcome.Error.ToString()); } }