View a markdown version of this page

Integrieren GameLift Amazon-Server mit einem Unity-Game-Client-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-Game-Client-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)

In diesem Thema erfahren Sie, wie Sie einen Spielclient einrichten, der über einen Backend-Service eine Verbindung zu Amazon GameLift Servers gehosteten Spielsitzungen herstellt. Nutze 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

Führe die folgenden Aufgaben aus, bevor du die Spieleserver-Kommunikation mit dem Amazon GameLift Servers Client einrichtest:

Initialisiere einen Spielclient

Anmerkung

Dieses Thema bezieht sich auf das Amazon GameLift Servers 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ühre diesen Code beim Start aus, er ist für andere Amazon GameLift Servers 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 unterRichten Sie das ein GameLift Amazon-Server API.

  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 auf einer bestimmten Flotte

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.

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.

  • Stelle 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 Amazon GameLift Servers das Plugin für Unity Version 1.0.0, 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 Platz für einen Spieler in einer Spielsitzung, indem Sie eine Sitzung für neue Spieler erstellen. Verwende CreatePlayerSession oder CreatePlayerSessions mit der Spielsitz-ID und einer eindeutigen ID für jeden Spieler.

  2. Stellen Sie eine Verbindung zur Spielsitzung her. Ruft 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 Player-Sitzungs-ID. 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.

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 veranschaulicht, wie ein Spieler mit der Spielsitzung verbunden wird.

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 Amazon GameLift Servers das 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. Benachrichtige den Amazon GameLift Servers Dienst, 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ückkehrtSuccess. Amazon GameLift ServersÄndert dann den Spielerplatz so, dass er verfügbar ist, sodass er einem neuen Spieler zugewiesen werden Amazon GameLift Servers 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()); } }