GameLift Serveur Amazon SDK 4.x pour C# : 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.

GameLift Serveur Amazon SDK 4.x pour C# : Actions

Utilisez la SDK référence du serveur Amazon GameLift C# 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.

Note

Cette référence concerne une version antérieure du GameLift serveur AmazonSDK. Pour obtenir la dernière version, consultez Amazon GameLift server SDK 5.x pour C# et Unity : actions.

Amazon GameLift server SDK 4.x pour C# : types de données

AcceptPlayerSession()

Indique au GameLift service Amazon 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, c'est-à-dire qu'il a réservé une place de joueur pendant la session de jeu. Une fois validé, Amazon GameLift modifie le statut de l'emplacement du joueur de RESERVED àACTIVE.

Syntaxe

GenericOutcome AcceptPlayerSession(String playerSessionId)

Paramètres

playerSessionId

Identifiant unique émis par Amazon GameLift lors de la création d'une nouvelle session de joueur. Un identifiant de session de joueur est spécifié dans un PlayerSession objet, qui est renvoyé en réponse à un appel du client aux GameLift APIactions StartGameSessionPlacement CreateGameSession, DescribeGameSessionPlacement, ou DescribePlayerSessions.

Type : String

Obligatoire : oui

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){ var acceptPlayerSessionOutcome = GameLiftServerAPI.AcceptPlayerSession(playerSessionId); if(acceptPlayerSessionOutcome.Success) { connectionToSessionMap.emplace(connection, playerSessionId); connection.Accept(); } else { connection.Reject(acceptPlayerSessionOutcome.Error.ErrorMessage); } }

ActivateGameSession()

Indique au GameLift service Amazon 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 rappel onStartGameSession(), une fois que l'initialisation de toutes les sessions de jeu est terminée.

Syntaxe

GenericOutcome ActivateGameSession()

Paramètres

Cette action n'a aucun paramètre.

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 var activateGameSessionOutcome = GameLiftServerAPI.ActivateGameSession(); }

DescribePlayerSessions()

Récupère les données de session de joueur, y compris les paramètres, les métadonnées de session et les données de 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

describePlayerSessionsDemande

Objet DescribePlayerSessionsRequest décrivant les sessions de joueur à récupérer.

Obligatoire : oui

Valeur renvoyée

En cas de réussite, renvoie un objet DescribePlayerSessionsOutcome qui contient un ensemble d'objets de session de joueur correspondant aux paramètres de la demande. Les objets de session du joueur ont une structure identique au type de GameLift API PlayerSessiondonnées AWS SDK Amazon.

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 sessions de joueurs correspondant à la demande.

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

GetGameSessionId()

Extrait l'ID de la session de jeu actuellement hébergée par le processus serveur, si ce dernier est actif.

Pour les processus inactifs qui ne sont pas encore activés lors d'une session de jeu, l'appel renvoie Success GameSessionId = True et = "" (une chaîne vide).

Syntaxe

AwsStringOutcome GetGameSessionId()

Paramètres

Cette action n'a aucun paramètre.

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

var getGameSessionIdOutcome = GameLiftServerAPI.GetGameSessionId();

GetInstanceCertificate()

Récupère l'emplacement du fichier d'un TLS certificat codé PEM associé à la flotte et à ses instances. AWS Certificate Manager génère ce certificat lorsque vous créez une nouvelle flotte avec la configuration du certificat définie surGENERATED. Utilisez ce certificat pour établir une connexion sécurisée avec un client de jeu et pour chiffrer la communication client/serveur.

Syntaxe

GetInstanceCertificateOutcome GetInstanceCertificate();

Paramètres

Cette action n'a aucun paramètre.

Valeur renvoyée

En cas de succès, renvoie un GetInstanceCertificateOutcome objet contenant l'emplacement du fichier de TLS certificats de la flotte et de la chaîne de certificats, qui sont stockés sur l'instance. Un fichier de certificat racine, extrait de la chaîne de certificats, est également stocké sur l'instance. En cas d'échec, renvoie un message d'erreur.

Pour plus d'informations sur le certificat et les données de la chaîne de certificats, voir Éléments de GetCertificate réponse dans la AWS Certificate Manager API référence.

Exemple

var getInstanceCertificateOutcome = GameLiftServerAPI.GetInstanceCertificate();

GetSdkVersion()

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

Syntaxe

AwsStringOutcome GetSdkVersion()

Paramètres

Cette action n'a aucun paramètre.

Valeur renvoyée

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

Exemple

var getSdkVersionOutcome = GameLiftServerAPI.GetSdkVersion();

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 du GameLift service Amazon. Amazon GameLift peut appeler onProcessTerminate() pour les raisons suivantes : (1) en cas de mauvaise santé (le processus du serveur a signalé l'état du port ou n'a pas répondu à Amazon) GameLift, (2) lors de la résiliation de l'instance lors d'un événement de réduction d'échelle, ou (3) lorsqu'une instance est résiliée en raison d'une interruption ponctuelle de l'instance.

Si le processus a reçu un onProcessTerminate() rappel, la valeur renvoyée est l'heure de fin estimée. Si le processus n'a pas reçu de onProcessTerminate() rappel, un message d'erreur est renvoyé. En savoir plus sur l'arrêt d'un processus serveur.

Syntaxe

AwsDateTimeOutcome GetTerminationTime()

Paramètres

Cette action n'a aucun paramètre.

Valeur renvoyée

En cas de succès, renvoie l'heure de fin sous forme d'AwsDateTimeOutcomeobjet. La valeur est le délai de fin, 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 à 637355968000000000 ticks. Si aucune heure de résiliation n'est disponible, renvoie un message d'erreur.

Exemple

var getTerminationTimeOutcome = GameLiftServerAPI.GetTerminationTime();

Initialiser SDK (1)

Initialise l'Amazon GameLift SDK. Cette méthode doit être appelée au lancement, avant toute autre initialisation GameLift liée à Amazon.

Syntaxe

InitSDKOutcome InitSDK()

Paramètres

Cette action n'a aucun paramètre.

Valeur renvoyée

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

Exemple

var initSDKOutcome = GameLiftServerAPI.InitSDK();

ProcessEnding()

Indique au GameLift service Amazon que le processus du serveur est en train de s'arrêter. Cette méthode doit être appelée après toutes les autres tâches de nettoyage, y compris l'arrêt de toutes les sessions de jeu actives. Cette méthode doit quitter avec un code de sortie 0 ; un code de sortie différent de 0 génère un message d'événement indiquant que le processus ne s'est pas fermé correctement.

Une fois que la méthode s'est terminée avec un code de 0, vous pouvez terminer le processus avec un code de sortie réussi. Vous pouvez également quitter le processus avec un code d'erreur. Si vous sortez avec un code d'erreur, l'événement de la flotte indiquera que le processus s'est arrêté anormalement (SERVER_PROCESS_TERMINATED_UNHEALTHY).

Syntaxe

GenericOutcome ProcessEnding()

Paramètres

Cette action n'a aucun paramètre.

Valeur renvoyée

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

Exemple

var processEndingOutcome = GameLiftServerAPI.ProcessEnding(); if (processReadyOutcome.Success) Environment.Exit(0); // otherwise, exit with error code Environment.Exit(errorCode);

ProcessReady()

Indique au GameLift service Amazon que le processus du serveur est prêt à héberger des sessions de jeu. Appelez cette méthode après avoir invoqué Initialiser SDK (1) et terminé avec succès les tâches de configuration requises avant que le processus serveur puisse héberger une session de jeu. Cette méthode ne doit être appelée qu'une seule fois par processus.

Syntaxe

GenericOutcome ProcessReady(ProcessParameters processParameters)

Paramètres

processParameters

Objet ProcessParameters communiquant les informations suivantes relatives au processus serveur :

  • Noms des méthodes de rappel, implémentées dans le code du serveur de jeu, que le GameLift service Amazon invoque pour communiquer avec le processus du serveur.

  • Numéro de port sur lequel le processus serveur écoute.

  • Chemin d'accès à tous les fichiers spécifiques à une session de jeu que vous souhaitez qu'Amazon capture et GameLift stocke.

Obligatoire : oui

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 les implémentations de l'appel ProcessReady() et de la fonction déléguée.

// Set parameters and call ProcessReady var processParams = new ProcessParameters( this.OnGameSession, this.OnProcessTerminate, this.OnHealthCheck, this.OnGameSessionUpdate, port, new LogParameters(new List<string>() // Examples of log and error files written by the game server { "C:\\game\\logs", "C:\\game\\error" }) ); var processReadyOutcome = GameLiftServerAPI.ProcessReady(processParams); // Implement callback functions void OnGameSession(GameSession gameSession) { // game-specific tasks when starting a new game session, such as loading map // When ready to receive players var activateGameSessionOutcome = GameLiftServerAPI.ActivateGameSession(); } void OnProcessTerminate() { // game-specific tasks required to gracefully shut down a game session, // such as notifying players, preserving game state data, and other cleanup var ProcessEndingOutcome = GameLiftServerAPI.ProcessEnding(); } bool OnHealthCheck() { bool isHealthy; // complete health evaluation within 60 seconds and set health return isHealthy; }

RemovePlayerSession()

Indique au GameLift service Amazon qu'un joueur possédant l'identifiant de session de joueur spécifié s'est déconnecté du processus du serveur. En réponse, Amazon GameLift modifie l'emplacement du joueur pour le rendre disponible, ce qui permet de l'attribuer à un nouveau joueur.

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. Un identifiant de session de joueur est spécifié dans un PlayerSession objet, qui est renvoyé en réponse à un appel du client aux GameLift APIactions StartGameSessionPlacement CreateGameSession, DescribeGameSessionPlacement, ou DescribePlayerSessions.

Type : String

Obligatoire : oui

Valeur renvoyée

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

Exemple

Aws::GameLift::GenericOutcome disconnectOutcome = Aws::GameLift::Server::RemovePlayerSession(playerSessionId);

StartMatchBackfill()

Envoie une demande pour trouver de nouveaux joueurs pour les machines à sous ouvertes dans une session de jeu créée avec FlexMatch. Voir également l' AWS SDKaction StartMatchBackfill(). Avec cette action, les requêtes de renvoi de correspondance peuvent être initiées par processus de serveur de jeu qui héberge la session de jeu. En savoir plus sur la fonction de FlexMatch remblayage.

Cette action est asynchrone. Si de nouveaux joueurs sont jumelés avec succès, le GameLift service Amazon 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

Objet StartMatchBackfillRequest qui communique les informations suivantes :

  • ID de ticket à attribuer à la requête de renvoi. Ces informations sont facultatives ; si aucun identifiant n'est fourni, Amazon en GameLift générera un automatiquement.

  • Matchmaker auquel envoyer la requête. La configuration complète ARN est requise. Cette valeur peut être acquise à partir des données matchmaker de la session de jeu.

  • ID de la session de jeu en cours de renvoi.

  • Données de correspondance disponibles pour les joueurs actuels de la session de jeu.

Obligatoire : oui

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 var startBackfillRequest = new AWS.GameLift.Server.Model.StartMatchBackfillRequest() { TicketId = "a ticket ID", //optional MatchmakingConfigurationArn = "the matchmaker configuration ARN", GameSessionId = GameLiftServerAPI.GetGameSessionId().Result, // gets ID for current game session //get player data for all currently connected players 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 var 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 requête de renvoi de correspondance active qui a été créée avec StartMatchBackfill(). Voir également l' AWS SDKaction StopMatchmaking(). En savoir plus sur la fonction de FlexMatch remblayage.

Syntaxe

GenericOutcome StopMatchBackfill (StopMatchBackfillRequest stopBackfillRequest);

Paramètres

StopMatchBackfillRequest

Objet StopMatchBackfillRequest qui identifie le ticket de correspondance à annuler :

  • Identifiant de ticket attribué à la requête de renvoi en cours d'annulation

  • matchmaker auquel a été envoyée la requête

  • session de jeu associée à la requête de renvoi

Obligatoire : oui

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 var stopBackfillRequest = new AWS.GameLift.Server.Model.StopMatchBackfillRequest() { TicketId = "a ticket ID", //optional, if not provided one is autogenerated MatchmakingConfigurationArn = "the matchmaker configuration ARN", //from the game session matchmaker data GameSessionId = GameLiftServerAPI.GetGameSessionId().Result //gets the ID for the current game session }; var stopBackfillOutcome = GameLiftServerAPI.StopMatchBackfillRequest(stopBackfillRequest);

TerminateGameSession()

Cette méthode est obsolète depuis la version 4.0.1. Au lieu de cela, le processus du serveur doit appeler ProcessEnding() après la fin d'une session de jeu.

Indique au GameLift service Amazon que le processus du serveur a mis fin à la session de jeu en cours. Cette action est appelée lorsque le processus du serveur restera actif et prêt à héberger une nouvelle session de jeu. Il ne doit être appelé qu'une fois la procédure de fin de session de jeu terminée, car il indique à Amazon GameLift que le processus du serveur est immédiatement disponible pour héberger une nouvelle session de jeu.

Cette action n'est pas appelée si le processus du serveur doit être arrêté après l'arrêt de la session de jeu. Appelez plutôt ProcessEnding() pour signaler que la session de jeu et le processus du serveur se terminent.

Syntaxe

GenericOutcome TerminateGameSession()

Paramètres

Cette action n'a aucun paramètre.

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 un processus de serveur à la fin d'une session de jeu.

// game-specific tasks required to gracefully shut down a game session, // such as notifying players, preserving game state data, and other cleanup var terminateGameSessionOutcome = GameLiftServerAPI.TerminateGameSession(); var processReadyOutcome = GameLiftServerAPI.ProcessReady(processParams);

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. (Voir également l'action UpdateGameSession() dans le Amazon GameLift Service API Reference).

Syntaxe

GenericOutcome UpdatePlayerSessionCreationPolicy(PlayerSessionCreationPolicy playerSessionPolicy)

Paramètres

newPlayerSessionPolitique

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

Type : enum PlayerSessionCreationPolicy. 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.

Obligatoire : oui

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.

var updatePlayerSessionCreationPolicyOutcomex = GameLiftServerAPI.UpdatePlayerSessionCreationPolicy(PlayerSessionCreationPolicy.ACCEPT_ALL);