Integrieren Sie Amazon GameLift in ein Unity-Spieleclient-Projekt - Amazon GameLift

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 Sie Amazon GameLift in ein Unity-Spieleclient-Projekt

Anmerkung

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

In diesem Thema erfahren Sie, wie Sie einen Spielclient einrichten, der über einen Backend-Service eine Verbindung zu von Amazon GameLift gehosteten Spielsitzungen herstellt. Verwenden Sie Amazon GameLift APIs, um Matchmaking zu initiieren, die Platzierung von Spielsitzungen anzufordern und vieles mehr.

Fügen Sie dem Backend-Serviceprojekt Code hinzu, um die Kommunikation mit dem GameLift Amazon-Service zu ermöglichen. Ein Backend-Service 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.

  • Fordern Sie Informationen zu aktiven Spielsitzungen beim GameLift Amazon-Service an.

  • 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 GameLift Amazon-Client einrichten, führen Sie die folgenden Aufgaben durch:

Initialisiere einen Spieleclient

Anmerkung

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

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

  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 auf einem Backend-Service einrichten.

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

    Die folgenden Beispiele zeigen, wie Sie einen GameLift Amazon-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 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 GameLift Client with default client configuration. aglc = new AmazonGameLiftClient(credentials, config); } }

Erstelle eine Spielsitzung auf einer bestimmten Flotte

Anmerkung

Dieses Thema bezieht sich auf das GameLift Amazon-Plugin für Unity Version 1.0.0, 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 die neue Spielsitzung erstellt und eine zurückgegeben GameLift hatGameSession, 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 GameLift Amazon-Plugin für Unity Version 1.0.0, das Server SDK 4.x oder früher verwendet.

Nachdem Amazon die neue Spielsitzung erstellt und ein GameSession Objekt zurückgegeben GameLift hat, 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 TLS Zertifikatsgenerierung aktiviert ist.

    3. Verweisen Sie auf die Sitzungs-ID des Spielers. 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 GameLift Amazon-Plugin für Unity Version 1.0.0, 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 GameLift Amazon-Service, 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. Dann GameLift ändert Amazon den Spielerplatz so, dass er verfügbar ist, den Amazon einem neuen Spieler zuweisen GameLift kann.

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()); } }