Intégration Amazon GameLift Servers à un projet client de jeu Unity - Amazon GameLift Servers

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Intégration Amazon GameLift Servers à un projet client de jeu Unity

Note

Cette rubrique fournit des informations relatives à une version antérieure du Amazon GameLift Servers plugin pour Unity. La version 1.0.0 (publiée en 2021) utilise le SDK du serveur pour Amazon GameLift Servers 4.x ou version antérieure. Pour obtenir de la documentation sur la dernière version du plugin, qui utilise le SDK 5.x du serveur et prend en charge Amazon GameLift Servers Anywhere, voir. Amazon GameLift Serversplugin pour Unity (SDK serveur 5.x)

Cette rubrique vous aide à configurer un client de jeu pour qu'il se connecte à des sessions de jeu Amazon GameLift Servers hébergées via un service principal. Amazon GameLift Servers APIs À utiliser pour initier le matchmaking, demander le placement d'une session de jeu, et plus encore.

Ajoutez du code au projet de service principal pour permettre la communication avec le Amazon GameLift Servers service. Un service principal gère toutes les communications du client du jeu avec le GameLift service. Pour plus d'informations sur les services principaux, consultez.

Un serveur principal gère les tâches suivantes du client de jeu :

  • Personnalisez l'authentification pour vos joueurs.

  • Demande d'informations sur les sessions de jeu actives à partir du service Amazon GameLift Servers.

  • Créez une nouvelle session de jeu.

  • Ajoutez un joueur à une session de jeu existante.

  • Supprimer un joueur d'une session de jeu existante.

Prérequis

Avant de configurer la communication entre le serveur de jeu et le Amazon GameLift Servers client, effectuez les tâches suivantes :

Initialisation d'un client de jeu

Note

Cette rubrique fait référence au Amazon GameLift Servers plugin pour Unity version 1.0.0, qui utilise le SDK du serveur 4.x ou une version antérieure.

Ajoutez du code pour initialiser un client de jeu. Exécutez ce code au lancement, il est nécessaire pour les autres Amazon GameLift Servers fonctions.

  1. InitialiserAmazonGameLiftClient. Appelez AmazonGameLiftClient avec une configuration client par défaut ou une configuration personnalisée. Pour plus d'informations sur la configuration d'un client, consultezConfiguration Amazon GameLift Servers sur un service principal.

  2. Générez un identifiant de joueur unique pour que chaque joueur puisse se connecter à une session de jeu. Pour de plus amples informations, veuillez consulter Générer un joueur IDs.

    Les exemples suivants montrent comment configurer un Amazon GameLift Servers client.

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

Créer une session de jeu sur une flotte spécifique

Note

Cette rubrique fait référence au Amazon GameLift Servers plugin pour Unity version 1.0.0, qui utilise le SDK du serveur 4.x ou une version antérieure.

Ajoutez du code pour démarrer de nouvelles sessions de jeu sur vos flottes déployées et les mettre à disposition des joueurs. Après avoir Amazon GameLift Servers créé la nouvelle session de jeu et renvoyé unGameSession, vous pouvez y ajouter des joueurs.

  • Faites une demande pour une nouvelle session de jeu.

    • Si votre jeu utilise des flottes, appelez CreateGameSession() avec un identifiant de flotte ou un alias, un nom de session et le nombre maximum de joueurs simultanés pour le jeu.

    • Si votre jeu utilise des files d'attente, appelezStartGameSessionPlacement().

L'exemple suivant montre comment créer une session de jeu.

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

Ajouter des joueurs aux sessions de jeu

Note

Cette rubrique fait référence au Amazon GameLift Servers plugin pour Unity version 1.0.0, qui utilise le SDK du serveur 4.x ou une version antérieure.

Après avoir Amazon GameLift Servers créé la nouvelle session de jeu et renvoyé un GameSession objet, vous pouvez y ajouter des joueurs.

  1. Réservez une place de joueur dans une session de jeu en créant une nouvelle session de joueur. Utilisez CreatePlayerSession ou CreatePlayerSessions avec l'identifiant de session de jeu et un identifiant unique pour chaque joueur.

  2. Connectez-vous à la session de jeu. Récupérez l'PlayerSessionobjet pour obtenir les informations de connexion de la session de jeu. Vous pouvez utiliser ces informations pour établir une connexion directe avec le processus du serveur :

    1. Utilisez le port spécifié et le nom DNS ou l'adresse IP du processus serveur.

    2. Utilisez le nom DNS et le port de vos flottes. Le nom et le port DNS sont obligatoires si la génération de certificats TLS est activée dans vos flottes.

    3. Référencez l'identifiant de session du joueur. L'identifiant de session du joueur est requis si votre serveur de jeu valide les connexions entrantes des joueurs.

Les exemples suivants montrent comment réserver une place de joueur dans une session de jeu.

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

Le code suivant montre comment connecter un joueur à la session de jeu.

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

Supprimer un joueur d'une session de jeu

Note

Cette rubrique fait référence au Amazon GameLift Servers plugin pour Unity version 1.0.0, qui utilise le SDK du serveur 4.x ou une version antérieure.

Vous pouvez retirer les joueurs de la session de jeu lorsqu'ils quittent le jeu.

  1. Informez le Amazon GameLift Servers service qu'un joueur s'est déconnecté du processus serveur. Appelez RemovePlayerSession avec l'identifiant de session du joueur.

  2. Vérifiez que cela RemovePlayerSession revientSuccess. Amazon GameLift ServersModifie ensuite l'emplacement de joueur qui sera disponible, qui Amazon GameLift Servers peut être attribué à un nouveau joueur.

L'exemple suivant montre comment supprimer une session de joueur.

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