Amazon GameLift server SDK 5.x pour C# et Unity : actions - Amazon GameLift

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.

Amazon GameLift server SDK 5.x pour C# et Unity : actions

Utilisez la référence du serveur Amazon GameLift C# SDK 5.x pour intégrer votre jeu multijoueur à des fins d'hébergement sur Amazon. GameLift Pour obtenir des conseils sur le processus d'intégration, consultezAjoutez Amazon GameLift à votre serveur de jeu. Si vous utilisez le GameLift plugin Amazon pour Unity, consultez également GameLift Plug-in Amazon pour Unity (serveur SDK 5.x).

Amazon GameLift server SDK 5.x pour C# et Unity : types de données

GetSdkVersion()

Renvoie le numéro de version actuel du processus SDK intégré au serveur.

Syntaxe

AwsStringOutcome GetSdkVersion();

Valeur renvoyée

En cas de succès, renvoie la SDK version actuelle sous forme d'AwsStringOutcomeobjet. La chaîne renvoyée inclut le numéro de version (exemple5.0.0). En cas d'échec, renvoie un message d'erreur.

Exemple

var getSdkVersionOutcome = GameLiftServerAPI.GetSdkVersion();

Initialiser SDK (1)

Initialise l'Amazon GameLift SDK pour une EC2 flotte gérée. Appelez cette méthode au lancement, avant toute autre initialisation liée à Amazon GameLift . Cette méthode lit les paramètres du serveur depuis l'environnement hôte afin de configurer la communication entre le serveur et le GameLift service Amazon.

Syntaxe

GenericOutcome InitSDK();

Valeur renvoyée

En cas de succès, renvoie un InitSdkOutcome objet indiquant que le processus serveur est prêt à être appeléProcessReady().

Exemple

//Call InitSDK to establish a local connection with the GameLift agent to enable further communication. GenericOutcome initSDKOutcome = GameLiftServerAPI.InitSDK();

Initialiser SDK (1)

Initialise l'Amazon GameLift SDK pour un Anywhere flotte. Appelez cette méthode au lancement, avant toute autre initialisation liée à Amazon GameLift . Cette méthode nécessite des paramètres de serveur explicites pour configurer la communication entre le serveur et le GameLift service Amazon.

Syntaxe

GenericOutcome InitSDK(ServerParameters serverParameters);

Paramètres

ServerParameters

Pour initialiser un serveur de jeu sur un Amazon GameLift Anywhere flotte, construisez un ServerParameters objet avec les informations suivantes :

  • Celui URL WebSocket utilisé pour se connecter à votre serveur de jeu.

  • ID du processus utilisé pour héberger votre serveur de jeu.

  • L'ID de l'ordinateur hébergeant les processus de votre serveur de jeu.

  • L'identifiant de la GameLift flotte Amazon contenant votre Amazon GameLift Anywhere calculer.

  • Le jeton d'autorisation généré par l' GameLift opération Amazon.

Valeur renvoyée

En cas de succès, renvoie un InitSdkOutcome objet indiquant que le processus serveur est prêt à être appeléProcessReady().

Note

Si les appels à échouent pour InitSDK() les builds de jeu déployés sur des flottes Anywhere, vérifiez le ServerSdkVersion paramètre utilisé lors de la création de la ressource de build. Vous devez définir explicitement cette valeur en fonction de la SDK version du serveur utilisée. La valeur par défaut de ce paramètre est 4.x, ce qui n'est pas compatible. Pour résoudre ce problème, créez une nouvelle version et déployez-la sur une nouvelle flotte.

Exemple

//Define the server parameters string websocketUrl = "wss://us-west-1.api.amazongamelift.com"; string processId = "PID1234"; string fleetId = "aarn:aws:gamelift:us-west-1:111122223333:fleet/fleet-9999ffff-88ee-77dd-66cc-5555bbbb44aa"; string hostId = "HardwareAnywhere"; string authToken = "1111aaaa-22bb-33cc-44dd-5555eeee66ff"; ServerParameters serverParameters = new ServerParameters(webSocketUrl, processId, hostId, fleetId, authToken); //Call InitSDK to establish a local connection with the GameLift agent to enable further communication. GenericOutcome initSDKOutcome = GameLiftServerAPI.InitSDK(serverParameters);

ProcessReady()

Indique à Amazon GameLift que le processus du serveur est prêt à héberger des sessions de jeu. Appelez cette méthode après l'avoir invoquée. Initialiser SDK (1) Cette méthode ne doit être appelée qu'une seule fois par processus.

Syntaxe

GenericOutcome ProcessReady(ProcessParameters processParameters)

Paramètres

ProcessParameters

Un ProcessParameters objet contient des informations sur le processus du serveur.

Valeur renvoyée

Renvoie un résultat générique consistant en un succès ou un échec avec un message d'erreur.

Exemple

Cet exemple illustre à la fois les implémentations de méthodes et de fonctions déléguées.

// Set parameters and call ProcessReady ProcessParameters processParams = new ProcessParameters( this.OnStartGameSession, this.OnProcessTerminate, this.OnHealthCheck, this.OnUpdateGameSession, port, new LogParameters(new List<string>() // Examples of log and error files written by the game server { "C:\\game\\logs", "C:\\game\\error" }) ); GenericOutcome processReadyOutcome = GameLiftServerAPI.ProcessReady(processParams);

ProcessEnding()

Indique à Amazon GameLift que le processus du serveur est en train de se terminer. Appelez cette méthode après toutes les autres tâches de nettoyage (y compris la fermeture de la session de jeu active) et avant de terminer le processus. En fonction du résultat deProcessEnding(), le processus se termine avec succès (0) ou erreur (-1) et génère un événement de flotte. Si le processus se termine par une erreur, l'événement de flotte généré estSERVER_PROCESS_TERMINATED_UNHEALTHY.

Syntaxe

GenericOutcome ProcessEnding()

Valeur renvoyée

Renvoie un résultat générique consistant en un succès ou un échec avec un message d'erreur.

Exemple

Cet exemple appelle ProcessEnding() et Destroy() avant de terminer le processus du serveur avec un code de sortie de réussite ou d'erreur.

GenericOutcome processEndingOutcome = GameLiftServerAPI.ProcessEnding(); GameLiftServerAPI.Destroy(); if (processEndingOutcome.Success) { Environment.Exit(0); } else { Console.WriteLine("ProcessEnding() failed. Error: " + processEndingOutcome.Error.ToString()); Environment.Exit(-1); }

ActivateGameSession()

Informe Amazon GameLift que le processus du serveur a activé une session de jeu et qu'il est désormais prêt à recevoir les connexions des joueurs. Cette action doit être appelée dans le cadre de la fonction de onStartGameSession() rappel, après toute initialisation de session de jeu.

Syntaxe

GenericOutcome ActivateGameSession()

Valeur renvoyée

Renvoie un résultat générique consistant en un succès ou un échec avec un message d'erreur.

Exemple

Cet exemple illustre l'appel de ActivateGameSession() dans le cadre de la fonction déléguée onStartGameSession().

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

UpdatePlayerSessionCreationPolicy()

Met à jour la capacité de la session de jeu à accepter de nouvelles sessions de joueur. Une session de jeu peut être définie pour accepter ou refuser toutes les nouvelles sessions joueur.

Syntaxe

GenericOutcome UpdatePlayerSessionCreationPolicy(PlayerSessionCreationPolicy playerSessionPolicy)

Paramètres

playerSessionPolicy

Valeur de chaîne indiquant si la session de jeu accepte de nouveaux joueurs.

Les valeurs valides sont les suivantes :

  • ACCEPT_ ALL — Accepte toutes les sessions pour nouveaux joueurs.

  • DENY_ ALL — Refusez toutes les sessions pour les nouveaux joueurs.

Valeur renvoyée

Renvoie un résultat générique consistant en un succès ou un échec avec un message d'erreur.

Exemple

Cet exemple définit la stratégie de participation de la session de jeu actuelle de manière à ce que tous les joueurs soient acceptés.

GenericOutcome updatePlayerSessionPolicyOutcome = GameLiftServerAPI.UpdatePlayerSessionCreationPolicy(PlayerSessionCreationPolicy.ACCEPT_ALL);

GetGameSessionId()

Récupère l'ID de la session de jeu hébergée par le processus serveur actif.

Pour les processus inactifs qui ne sont pas activés lors d'une session de jeu, l'appel renvoie unGameLiftError.

Syntaxe

AwsStringOutcome GetGameSessionId()

Valeur renvoyée

En cas de réussite, renvoie l'ID de session de jeu en tant qu'objet AwsStringOutcome. En cas d'échec, renvoie un message d'erreur. »

Exemple

AwsStringOutcome getGameSessionIdOutcome = GameLiftServerAPI.GetGameSessionId();

GetTerminationTime()

Renvoie l'heure d'arrêt planifiée pour un processus serveur, si une heure de résiliation est disponible. Un processus serveur exécute cette action après avoir reçu un onProcessTerminate() rappel d'Amazon GameLift. Amazon GameLift appelle onProcessTerminate() pour les raisons suivantes :

  • Lorsque le processus du serveur a signalé un mauvais état de santé ou n'a pas répondu à Amazon GameLift.

  • Lorsque vous mettez fin à l'instance lors d'un événement de réduction.

  • Lorsqu'une instance est interrompue en raison d'une interruption ponctuelle.

Syntaxe

AwsDateTimeOutcome GetTerminationTime()

Valeur renvoyée

En cas de succès, renvoie l'heure de fin sous forme d'AwsDateTimeOutcomeobjet. La valeur est le délai de résiliation, exprimé en ticks écoulés depuis. 0001 00:00:00 Par exemple, la valeur de la date et de l'heure 2020-09-13 12:26:40 -000Z est égale à celle 637355968000000000 des ticks. Si aucune heure de résiliation n'est disponible, renvoie un message d'erreur.

Exemple

AwsDateTimeOutcome getTerminationTimeOutcome = GameLiftServerAPI.GetTerminationTime();

AcceptPlayerSession()

Informe Amazon GameLift qu'un joueur possédant l'identifiant de session de joueur spécifié s'est connecté au processus du serveur et doit être validé. Amazon GameLift vérifie que l'identifiant de session du joueur est valide. Une fois la session du joueur validée, Amazon GameLift change le statut de l'emplacement du joueur de RESERVED àACTIVE.

Syntaxe

GenericOutcome AcceptPlayerSession(String playerSessionId)

Paramètres

playerSessionId

Identifiant unique émis GameLift lors de la création d'une nouvelle session de joueur.

Valeur renvoyée

Renvoie un résultat générique consistant en un succès ou un échec avec un message d'erreur.

Exemple

Cet exemple illustre une fonction permettant de gérer une demande de connexion, notamment de valider et de rejeter une session de joueur non valide. IDs

void ReceiveConnectingPlayerSessionID (Connection connection, String playerSessionId) { GenericOutcome acceptPlayerSessionOutcome = GameLiftServerAPI.AcceptPlayerSession(playerSessionId); if(acceptPlayerSessionOutcome.Success) { connectionToSessionMap.emplace(connection, playerSessionId); connection.Accept(); } else { connection.Reject(acceptPlayerSessionOutcome.Error.ErrorMessage); } }

RemovePlayerSession()

Indique à Amazon GameLift qu'un joueur s'est déconnecté du processus du serveur. En réponse, Amazon GameLift modifie l'emplacement du joueur pour le rendre disponible.

Syntaxe

GenericOutcome RemovePlayerSession(String playerSessionId)

Paramètres

playerSessionId

Identifiant unique émis par Amazon GameLift lors de la création d'une nouvelle session de joueur.

Valeur renvoyée

Renvoie un résultat générique consistant en un succès ou un échec avec un message d'erreur.

Exemple

GenericOutcome removePlayerSessionOutcome = GameLiftServerAPI.RemovePlayerSession(playerSessionId);

DescribePlayerSessions()

Récupère les données de session du joueur, notamment les paramètres, les métadonnées de session et les données du joueur. Utilisez cette action pour obtenir des informations pour une seule session de joueur, pour toutes les sessions de joueur d'une session de jeu ou pour toutes les sessions de joueur associées à un seul ID de joueur.

Syntaxe

DescribePlayerSessionsOutcome DescribePlayerSessions(DescribePlayerSessionsRequest describePlayerSessionsRequest)

Paramètres

DescribePlayerSessionsRequest

DescribePlayerSessionsRequestObjet qui décrit les sessions de joueur à récupérer.

Valeur renvoyée

En cas de succès, renvoie un DescribePlayerSessionsOutcome objet contenant un ensemble d'objets de session de joueur correspondant aux paramètres de la demande.

Exemple

Cet exemple illustre une demande de toutes les sessions de joueur activement connectées à une session de jeu spécifiée. En omettant NextTokenet en fixant la valeur limite à 10, Amazon GameLift renverra les 10 premiers enregistrements de session de joueur correspondant à la demande.

// Set request parameters DescribePlayerSessionsRequest describePlayerSessionsRequest = new DescribePlayerSessionsRequest() { GameSessionId = GameLiftServerAPI.GetGameSessionId().Result, //gets the ID for the current game session Limit = 10, PlayerSessionStatusFilter = PlayerSessionStatusMapper.GetNameForPlayerSessionStatus(PlayerSessionStatus.ACTIVE) }; // Call DescribePlayerSessions DescribePlayerSessionsOutcome describePlayerSessionsOutcome = GameLiftServerAPI.DescribePlayerSessions(describePlayerSessionsRequest);

StartMatchBackfill()

Envoie une demande pour trouver de nouveaux joueurs pour les machines à sous ouvertes dans une session de jeu créée avec FlexMatch. Pour plus d'informations, voir la fonction de FlexMatch remblayage.

Cette action est asynchrone. Si de nouveaux joueurs sont jumelés, Amazon GameLift fournit des données de matchmaking mises à jour à l'aide de la fonction de rappel. OnUpdateGameSession()

Un processus de serveur ne peut comporter qu'une seule requête de renvoi de correspondance à la fois. Pour envoyer une nouvelle requête, appelez d'abord StopMatchBackfill() pour annuler la requête d'origine.

Syntaxe

StartMatchBackfillOutcome StartMatchBackfill (StartMatchBackfillRequest startBackfillRequest);

Paramètres

StartMatchBackfillRequest

Un StartMatchBackfillRequest objet contient des informations relatives à la demande de remblayage.

Valeur renvoyée

Renvoie un StartMatchBackfillOutcome objet avec l'identifiant du ticket de remplacement correspondant, ou un échec avec un message d'erreur.

Exemple

// Build a backfill request StartMatchBackfillRequest startBackfillRequest = new StartMatchBackfillRequest() { TicketId = "1111aaaa-22bb-33cc-44dd-5555eeee66ff", //optional MatchmakingConfigurationArn = "arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig", GameSessionId = GameLiftServerAPI.GetGameSessionId().Result, // gets ID for current game session MatchmakerData matchmakerData = MatchmakerData.FromJson(gameSession.MatchmakerData), // gets matchmaker data for current players // get matchmakerData.Players // remove data for players who are no longer connected Players = ListOfPlayersRemainingInTheGame }; // Send backfill request StartMatchBackfillOutcome startBackfillOutcome = GameLiftServerAPI.StartMatchBackfill(startBackfillRequest); // Implement callback function for backfill void OnUpdateGameSession(GameSession myGameSession) { // game-specific tasks to prepare for the newly matched players and update matchmaker data as needed }

StopMatchBackfill()

Annule une demande de remplacement de match active. Pour plus d'informations, voir la fonction de FlexMatch remblayage.

Syntaxe

GenericOutcome StopMatchBackfill (StopMatchBackfillRequest stopBackfillRequest);

Paramètres

StopMatchBackfillRequest

Un StopMatchBackfillRequest objet qui fournit des détails sur le ticket de matchmaking que vous êtes en train d'arrêter.

Valeur renvoyée

Renvoie un résultat générique consistant en un succès ou un échec avec un message d'erreur.

Exemple

// Set backfill stop request parameters StopMatchBackfillRequest stopBackfillRequest = new StopMatchBackfillRequest(){ TicketId = "1111aaaa-22bb-33cc-44dd-5555eeee66ff", //optional, if not provided one is autogenerated MatchmakingConfigurationArn = "arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig", GameSessionId = GameLiftServerAPI.GetGameSessionId().Result //gets the ID for the current game session }; GenericOutcome stopBackfillOutcome = GameLiftServerAPI.StopMatchBackfillRequest(stopBackfillRequest);

GetComputeCertificate()

Récupère le chemin d'accès au TLS certificat utilisé pour chiffrer la connexion réseau entre le serveur de jeu et votre client de jeu. Vous pouvez utiliser le chemin du certificat lorsque vous enregistrez votre appareil informatique auprès d'Amazon GameLift Anywhere flotte. Pour plus d'informations, voir, RegisterCompute.

Syntaxe

GetComputeCertificateOutcome GetComputeCertificate();

Valeur renvoyée

Renvoie un GetComputeCertificateResponse objet contenant les éléments suivants :

  • CertificatePath: chemin d'accès au TLS certificat sur votre ressource de calcul. Lorsque vous utilisez une flotte GameLift gérée par Amazon, ce chemin contient :

    • certificate.pem: le certificat de l'utilisateur final. La chaîne de certificats complète est la combinaison des certificateChain.pem éléments ajoutés à ce certificat.

    • certificateChain.pem: chaîne de certificats qui contient le certificat racine et les certificats intermédiaires.

    • rootCertificate.pem: le certificat racine.

    • privateKey.pem: clé privée pour le certificat d'utilisateur final.

  • ComputeName: nom de votre ressource de calcul.

Exemple

GetComputeCertificateOutcome getComputeCertificateOutcome = GameLiftServerAPI.GetComputeCertificate();

GetFleetRoleCredentials()

Récupère les informations d'identification du IAM rôle qui autorisent Amazon GameLift à interagir avec d'autres Services AWS utilisateurs. Pour de plus amples informations, veuillez consulter Communiquez avec les autres AWS ressources de vos flottes.

Syntaxe

GetFleetRoleCredentialsOutcome GetFleetRoleCredentials(GetFleetRoleCredentialsRequest request);

Paramètres

GetFleetRoleCredentialsRequest

Des informations d'identification de rôle qui étendent un accès limité à vos AWS ressources au serveur de jeu.

Valeur renvoyée

Renvoie un objet GetFleetRoleCredentialsOutcome.

Exemple

// form the fleet credentials request GetFleetRoleCredentialsRequest getFleetRoleCredentialsRequest = new GetFleetRoleCredentialsRequest(){ RoleArn = "arn:aws:iam::123456789012:role/service-role/exampleGameLiftAction" }; GetFleetRoleCredentialsOutcome GetFleetRoleCredentialsOutcome credentials = GetFleetRoleCredentials(getFleetRoleCredentialsRequest);

Détruire ()

Libère la mémoire du serveur SDK de GameLift jeu Amazon. Il est recommandé d'appeler cette méthode après ProcessEnding() et avant de terminer le processus. Si vous utilisez une flotte Anywhere et que vous n'interrompez pas les processus du serveur après chaque session de jeu, appelez Destroy() puis réinitialisez avant InitSDK() d'informer Amazon GameLift que le processus est prêt à héberger une session de jeu avec. ProcessReady()

Syntaxe

GenericOutcome Destroy()

Valeur renvoyée

Renvoie un résultat générique consistant en un succès ou un échec avec un message d'erreur.

Exemple

// Operations to end game sessions and the server process GenericOutcome processEndingOutcome = GameLiftServerAPI.ProcessEnding(); // Shut down and destroy the instance of the GameLift Game Server SDK GenericOutcome destroyOutcome = GameLiftServerAPI.Destroy(); // Exit the process with success or failure if (processEndingOutcome.Success) { Environment.Exit(0); } else { Console.WriteLine("ProcessEnding() failed. Error: " + processEndingOutcome.Error.ToString()); Environment.Exit(-1); }