Intégrer les fonctionnalités Amazon GameLift Servers du client de jeu - 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égrer les fonctionnalités Amazon GameLift Servers du client de jeu

Intégrez la fonctionnalité d'hébergement de Amazon GameLift Servers jeux dans tous les composants de la solution qui doivent communiquer avec le Amazon GameLift Servers service, par exemple pour obtenir des informations sur les sessions de jeu ou créer de nouvelles sessions de jeu. Dans la plupart des cas, cette fonctionnalité est intégrée au composant de service principal. Ajoutez des fonctionnalités pour les tâches principales, notamment :

  • Demandez des informations et le statut des sessions de jeu actives.

  • Réservez une place pour un nouveau joueur dans une session de jeu existante.

  • Créez une nouvelle session de jeu pour un groupe de joueurs.

  • Demande de mise en relation pour un ou plusieurs joueurs.

  • Fournissez des données mises à jour pour les sessions de jeu existantes.

Consultez client/server Interactions dans le jeu avec Amazon GameLift Servers pour plus de détails sur la façon dont les composants d'hébergement de jeux interagissent via le Amazon GameLift Servers SDKs.

Configuration de l'Amazon GameLift ServersAPI

Ajoutez le AWS SDK pour C++ with Amazon GameLift Servers à un projet.

Ajoutez du code pour initialiser un Amazon GameLift Servers client et enregistrer les paramètres clés. Ce code doit être exécuté avant tout code dépendant deAmazon GameLift Servers.

  1. 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 lors de la prise de contactAmazon GameLift Servers. 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.

  2. Initialisez un client Amazon GameLift Servers. Utilisez Aws : GameLift : : GameLiftClient () (C++) ou AmazonGameLiftClient() (C#) avec une configuration client par défaut ou une configuration client personnalisée.

  3. Si vous utilisez des sessions de joueurs, 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 un joueur IDs.

  4. Collectez et stockez les informations suivantes :

    • Flotte cible : si vous créez manuellement des sessions de jeu sur une flotte spécifique, fournissez un identifiant de flotte ou un identifiant d'alias pointant vers la flotte cible. Si le parc est multisite, spécifiez un emplacement du parc. Il est recommandé d'utiliser des alias de flotte afin de pouvoir changer de joueur d'une flotte à l'autre sans avoir à mettre à jour votre service principal.

    • 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 à laquelle envoyer les demandes de placement.

    • AWS informations d'identification — Tous les appels vers Amazon GameLift Servers doivent fournir les informations d'identification de l'hôte du jeu. Compte AWS Vous pouvez obtenir 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 une Amazon GameLift Servers 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 Passage à un rôle IAM (AWS API) dans le guide de l'utilisateur IAM.

      • 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 références d'AWS API 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 l'utilisateur IAM. Le code doit demander de nouvelles informations d'identification avant que les anciennes n'expirent.

Obtenez des sessions de jeu actives

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. Cet objet contient le nom DNS, l'adresse IP et le port dont un client de jeu a besoin pour se connecter à la session de jeu.

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 la durée pendant laquelle la session est en cours : ÉvaluezCreationTime.

  • Trouvez des sessions de jeu en fonction d'une propriété de jeu personnalisée :gameSessionProperties.gameMode = "brawl".

Gérer les données des sessions de jeu

Utilisez les opérations suivantes pour récupérer ou mettre à jour des informations sur des sessions de jeu.

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, en fonction de la façon dont votre solution d'hébergement de jeux gère les emplacements des sessions de jeu.

Créez une session de jeu avec une file d'attente multi-sites

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ù se Amazon GameLift Servers situe la nouvelle session de jeu. Pour plus d'informations sur les files d'attente et sur leur utilisation, consultezConfigurer le placement des sessions de jeu.

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, utilisez Amazon GameLift Servers ces informations pour placer la nouvelle session de jeu dans une flotte offrant une expérience de jeu idéale aux joueurs.

Pour obtenir des mesures de latence précises, utilisez Amazon GameLift Servers les balises ping UDP. Ces points de terminaison vous permettent de mesurer la latence réelle du réseau UDP entre les appareils des joueurs et les sites d'hébergement potentiels, ce qui permet de prendre des décisions de placement plus précises qu'avec des pings ICMP. Pour plus d'informations sur l'utilisation de balises ping UDP pour mesurer la latence, reportez-vous à. Balises ping UDP

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. Après avoir Amazon GameLift Servers créé la nouvelle session de jeu et renvoyé un GameSessionobjet, vous pouvez y rejoindre 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 fonction de protection des Amazon GameLift Servers ressources 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. Cette action est disponible si votre jeu utilise des sessions de joueur avec un joueur unique IDs. Pour plus d'informations sur les sessions des joueurs, consultezAmazon GameLift Serverset l'expérience du joueur.

  1. Réservez une place de joueur lors d'une session de jeu

    Pour réserver une place de joueur, créez une session de joueur pour la session de jeu. Il existe deux façons de procéder :

    Une demande de session de joueur doit inclure un identifiant de joueur unique. Pour de plus amples informations, veuillez consulter Générer un joueur IDs. À la réception de la demande, Amazon GameLift Servers vérifie 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 Servers réserve une place au joueur, crée une nouvelle session de joueur et renvoie un PlayerSessionobjet.

    Une session de joueur peut inclure un ensemble de données de joueur personnalisées. Ces données sont stockées dans l'objet de session du joueur nouvellement créé. Amazon GameLift Serverstransmet cet objet au serveur de jeu lorsque le joueur se connecte directement à la session de jeu. Lorsque vous demandez des sessions à plusieurs joueurs, associez chaque chaîne de données de joueur à un identifiant de joueur.

  2. Se connecter à une session de jeu

    Ajoutez du code au service principal pour récupérer l'PlayerSessionobjet (par exemple en appelant DescribePlayerSessions()) et transmettez-le au client du jeu. Cet objet contient le nom DNS, l'adresse IP et le port. Le client du jeu peut utiliser ces informations pour établir une connexion directe avec le serveur.

    • Vous pouvez vous connecter à l'aide du port spécifié et du nom DNS ou de l'adresse IP attribués au processus serveur.

    • Si la génération de certificats TLS est activée dans vos flottes, connectez-vous à l'aide du nom et du port DNS.

    • 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 interventionAmazon GameLift Servers. Le serveur maintient la communication avec Amazon GameLift Servers le joueur pour signaler l'état de connexion, l'é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.

Transmettre des données de jeu personnalisées à une session de jeu

Votre client de jeu peut transmettre des données à une session de jeu. Lorsque vous créez une session de jeu, vous pouvez inclure un ensemble de propriétés de jeu (paires clé-valeur) ou de données de session de jeu (valeurs de chaîne) dans la demande. Vous pouvez également mettre à jour une session de jeu existante avec des données de jeu nouvelles ou mises à jour. Ces données sont transmises au processus du serveur de jeu qui héberge la session de jeu, pour être utilisées par le code du serveur de jeu. Vous ne pouvez pas supprimer les propriétés du jeu.

Par exemple, supposons que votre jeu définisse des niveaux de difficulté : NoviceEasy,Intermediate, etExpert. Un joueur choisit de rejoindre une Easy partie. Votre client de jeu, via le service principal, demande une nouvelle session de jeu avec la propriété de jeu suivante :{"Key": "Difficulty", "Value":"Easy"}. En réponse, Amazon GameLift Servers invite un serveur de jeu disponible à démarrer une nouvelle session de jeu et transmet l'GameSessionobjet. Le processus du serveur de jeu utilise la propriété de jeu fournie pour définir le niveau de difficulté de la session de jeu.

En savoir plus