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.
Ajoutez Amazon GameLift à votre client de jeu
Intégrez Amazon GameLift aux composants de jeu qui nécessitent des informations sur les sessions de jeu, créez de nouvelles sessions de jeu et ajoutez des joueurs aux jeux. Selon l'architecture de votre jeu, cette fonctionnalité se trouve dans les services principaux qui gèrent des tâches telles que l'authentification des joueurs, le matchmaking ou le placement des sessions de jeu.
Note
Pour obtenir des informations détaillées sur la façon de configurer le matchmaking pour votre jeu GameLift hébergé par Amazon, consultez le guide du GameLift FlexMatch développeur Amazon.
Configurer Amazon GameLift sur un service de backend
Ajoutez du code pour initialiser un GameLift client Amazon et enregistrer les paramètres clés. Ce code doit être exécuté avant tout code dépendant d'Amazon GameLift.
-
Configurez une configuration client. Utilisez la configuration client par défaut ou créez un objet de configuration client personnalisé. Pour plus d’informations, consultez .AWS::Client::ClientConfiguration
(C++) ou AmazonGameLiftConfig(C#). Une configuration client spécifie une région cible et un point de terminaison à utiliser pour contacter Amazon GameLift. La région identifie l'ensemble des ressources déployées (flottes, files d'attente et entremetteurs) à utiliser. La configuration du client par défaut définit l'emplacement sur la région USA Est (Virginie du Nord). Pour utiliser une autre région, créez une configuration personnalisée.
-
Initialisez un GameLift client Amazon. Utilisez Aws : GameLift : : GameLiftClient ()
(C++) ou AmazonGameLiftClient() (C#) avec une configuration client par défaut ou une configuration client personnalisée. -
Ajoutez un mécanisme permettant de générer un identifiant unique pour chaque joueur. Pour de plus amples informations, veuillez consulter Générer des identifiants de joueurs.
-
Collectez et stockez les informations suivantes :
-
Parc cible : de nombreuses GameLift API demandes Amazon doivent spécifier un parc. Pour ce faire, utilisez un identifiant de flotte ou un identifiant d'alias pointant vers le parc cible. Il est recommandé d'utiliser des alias de flotte afin de pouvoir changer de joueur d'une flotte à l'autre sans avoir à mettre à jour vos services principaux.
-
File d'attente cible : pour les jeux qui utilisent des files d'attente impliquant plusieurs flottes pour créer de nouvelles sessions de jeu, spécifiez le nom de la file d'attente à utiliser.
-
AWS informations d'identification : tous les appels vers Amazon GameLift doivent fournir les informations d'identification de Compte AWS l'hébergeur du jeu. Vous obtenez ces informations d'identification en créant un utilisateur joueur, comme décrit dansConfigurez l'accès programmatique à votre jeu. En fonction de la façon dont vous gérez l'accès de l'utilisateur du joueur, procédez comme suit :
-
Si vous utilisez un rôle pour gérer les autorisations des utilisateurs des joueurs, ajoutez du code pour assumer le rôle avant d'appeler un Amazon GameLift API. La demande d'attribution du rôle renvoie un ensemble d'informations d'identification de sécurité temporaires. Pour plus d'informations, consultez la section Basculer vers un IAM rôle (AWS API) dans le guide de IAM l'utilisateur.
-
Si vous disposez d'informations d'identification de sécurité à long terme, configurez votre code pour localiser et utiliser les informations d'identification stockées. Voir Authentifier à l'aide d'informations d'identification à long terme dans le guide de référence AWS SDKs et Tools. Pour plus d'informations sur le stockage des informations d'identification, consultez les AWS API références pour (C++)
et (. NET). -
Si vous disposez d'informations d'identification de sécurité temporaires, ajoutez du code pour actualiser régulièrement les informations d'identification à l'aide du AWS Security Token Service (AWS STS), comme décrit dans la section Utilisation des informations d'identification de sécurité temporaires avec le AWS SDKs guide de IAM l'utilisateur. Le code doit demander de nouvelles informations d'identification avant que les anciennes n'expirent.
-
-
Obtenez des sessions de jeu
Ajoutez du code pour découvrir les sessions de jeu disponibles et gérer les paramètres et les métadonnées des sessions de jeu.
Rechercher des sessions de jeu actives
SearchGameSessionsUtilisez-le pour obtenir des informations sur une session de jeu spécifique, toutes les sessions actives ou les sessions répondant à un ensemble de critères de recherche. Cet appel renvoie un GameSessionobjet pour chaque session de jeu active correspondant à votre demande de recherche.
Utilisez des critères de recherche pour obtenir une liste filtrée des sessions de jeu actives auxquelles les joueurs peuvent se connecter. Par exemple, vous pouvez filtrer les sessions de la façon suivante :
-
Exclure les sessions de jeu complètes :
CurrentPlayerSessionCount = MaximumPlayerSessionCount
. -
Choisissez les sessions de jeu en fonction de leur durée d'exécution : Évaluez
CreationTime
. -
Trouvez des sessions de jeu en fonction d'une propriété de jeu personnalisée :
gameSessionProperties.gameMode = "brawl"
.
Gérer les sessions de jeu
Utilisez les opérations suivantes pour récupérer ou mettre à jour des informations sur des sessions de jeu.
-
DescribeGameSessionDetails() — Obtenez le statut de protection d'une session de jeu en plus des informations de session de jeu.
-
UpdateGameSession() — Modifiez les métadonnées et les paramètres d'une session de jeu selon vos besoins.
-
GetGameSessionLogUrl— Accédez aux journaux de session de jeu stockés.
Créez des sessions de jeu
Ajoutez du code pour démarrer de nouvelles sessions de jeu sur vos flottes déployées et les mettre à disposition des joueurs. Il existe deux options pour créer des sessions de jeu, selon que vous déployez votre jeu dans plusieurs régions Régions AWS ou dans une seule.
Créez une session de jeu dans une file d'attente multisite
StartGameSessionPlacementÀ utiliser pour placer une demande de nouvelle session de jeu dans une file d'attente. Pour utiliser cette opération, créez une file d'attente. Cela détermine où Amazon GameLift place la nouvelle session de jeu. Pour plus d'informations sur les files d'attente et sur leur utilisation, consultezGestion du placement des sessions de jeu dans les GameLift files d'attente Amazon.
Lorsque vous créez un emplacement de session de jeu, spécifiez le nom de la file d'attente à utiliser, un nom de session de jeu, un nombre maximum de joueurs simultanés et un ensemble facultatif de propriétés de jeu. Vous pouvez également éventuellement fournir une liste de joueurs qui rejoindront automatiquement la session de jeu. Si vous incluez des données de latence des joueurs pour les régions concernées, Amazon GameLift utilise ces informations pour placer la nouvelle session de jeu dans une flotte offrant une expérience de jeu idéale aux joueurs.
Le placement de session de jeu est un processus asynchrone. Une fois que vous avez fait une demande, vous pouvez la laisser aboutir ou expirer. Vous pouvez également annuler la demande à tout moment en utilisant StopGameSessionPlacement. Pour vérifier le statut de votre demande de placement, appelez DescribeGameSessionPlacement.
Créez une session de jeu sur une flotte spécifique
CreateGameSessionÀ utiliser pour créer une nouvelle session sur un parc spécifique. Cette opération synchrone réussit ou échoue selon que la flotte dispose de ressources disponibles pour héberger une nouvelle session de jeu. Une fois qu'Amazon a GameLift créé la nouvelle session de jeu et renvoyé un GameSessionobjet, vous pouvez y associer des joueurs.
Lorsque vous utilisez cette opération, fournissez un identifiant de flotte ou un identifiant d'alias, un nom de session et le nombre maximum de joueurs simultanés pour le jeu. Vous pouvez également inclure un ensemble de propriétés de jeu. Les propriétés du jeu sont définies dans un tableau de paires clé-valeur.
Si vous utilisez la fonctionnalité de protection GameLift des ressources d'Amazon pour limiter le nombre de sessions de jeu qu'un joueur peut créer, fournissez l'identifiant de joueur du créateur de la session de jeu.
Joindre un joueur à une session de jeu
Ajoutez un code pour réserver une place de joueur dans une session de jeu active et connecter les clients du jeu aux sessions de jeu.
-
Réservez une place de joueur lors d'une session de jeu
Pour réserver un emplacement de joueur, créez une session de joueur pour la session de jeu. Pour plus d'informations sur les sessions des joueurs, consultezComment les joueurs se connectent aux jeux.
Il existe deux manières de créer de nouvelles sessions pour les joueurs :
-
StartGameSessionPlacementÀ utiliser pour réserver des places à un ou plusieurs joueurs lors de la nouvelle session de jeu.
-
Réservez des places pour un ou plusieurs joueurs en utilisant CreatePlayerSessionou CreatePlayerSessionsavec un identifiant de session de jeu.
Amazon vérifie GameLift d'abord que la session de jeu accepte de nouveaux joueurs et qu'il y a des emplacements disponibles pour les joueurs. En cas de succès, Amazon GameLift réserve une place au joueur, crée la nouvelle session de joueur et renvoie un PlayerSessionobjet. Cet objet contient le DNS nom, l'adresse IP et le port dont un client de jeu a besoin pour se connecter à la session de jeu.
Une demande de session de joueur doit inclure un ID unique pour chaque joueur. Pour de plus amples informations, veuillez consulter Générer des identifiants de joueurs.
Une session de joueur peut inclure un ensemble de données de joueur personnalisées. Ces données sont stockées dans le nouvel objet de session du joueur, que vous pouvez récupérer en appelant DescribePlayerSessions(). Amazon transmet GameLift également cet objet au serveur de jeu lorsque le joueur se connecte directement à la session de jeu. Lorsque vous demandez des sessions à plusieurs joueurs, fournissez une chaîne de données de joueur pour chaque joueur mappée à l'identifiant du joueur indiqué dans la demande.
-
-
Se connecter à une session de jeu
Ajoutez du code au client de jeu pour récupérer l'objet
PlayerSession
, qui contient les informations de connexion de la session de jeu. Utilisez ces informations pour établir une connexion directe avec le serveur.-
Vous pouvez vous connecter à l'aide du port spécifié et du DNS nom ou de l'adresse IP attribués au processus serveur.
-
Si la génération de TLS certificats est activée pour vos flottes, connectez-vous en utilisant le DNS nom et le port.
-
Si votre serveur de jeu valide les connexions entrantes entre joueurs, faites référence à l'identifiant de session du joueur.
Une fois la connexion établie, le client du jeu et le processus serveur communiquent directement sans impliquer Amazon GameLift. Le serveur maintient la communication avec Amazon GameLift pour signaler l'état de connexion des joueurs, leur état de santé, etc. Si le serveur de jeu valide les joueurs entrants, il vérifie que l'identifiant de session du joueur correspond à un emplacement réservé dans la session de jeu et accepte ou refuse la connexion du joueur. Lorsque le joueur se déconnecte, le processus serveur signale l'interruption de la connexion.
-
Utiliser les propriétés des sessions de jeu
Votre client de jeu peut transmettre des données à une session de jeu en utilisant une propriété de jeu. Les propriétés du jeu sont des paires clé-valeur que votre serveur de jeu peut ajouter, lire, répertorier et modifier. Vous pouvez transmettre une propriété de jeu lorsque vous créez une nouvelle session de jeu, ou plus tard lorsque la session de jeu est active. Une session de jeu peut contenir jusqu'à 16 propriétés de jeu. Vous ne pouvez pas supprimer les propriétés du jeu.
Par exemple, votre jeu propose les niveaux de difficulté suivants : Novice
Easy
,Intermediate
, etExpert
. Un joueur choisitEasy
, puis commence la partie. Votre client de jeu demande une nouvelle session de jeu à Amazon GameLift en utilisant l'une des deux CreateGameSession
options StartGameSessionPlacement
ou comme expliqué dans les sections précédentes. Dans la demande, le client transmet ceci :{"Key": "Difficulty", "Value":"Easy"}
.
En réponse à cette demande, Amazon GameLift crée un GameSession
objet contenant la propriété de jeu spécifiée. Amazon demande GameLift ensuite à un serveur de jeu disponible de démarrer la nouvelle session de jeu et transmet l'GameSession
objet. Le serveur de jeu démarre une session de jeu avec un Difficulty
deEasy
.