View a markdown version of this page

Feuille de route de développement pour l'hébergement avec GameLift Serveurs Amazon conteneurs gérés - GameLift Serveurs Amazon

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.

Feuille de route de développement pour l'hébergement avec GameLift Serveurs Amazon conteneurs gérés

Cette feuille de route vous explique comment développer une solution d'hébergement Amazon GameLift Servers géré pour vos serveurs de jeux conteneurisés. Les conteneurs gérés ne sont qu'une solution d'hébergement proposée parAmazon GameLift Servers. Pour plus d'informations sur les options d'hébergement, consultezGameLift Serveurs Amazon options d'hébergement de jeux.

Une solution de conteneurs gérés Amazon GameLift Servers comprend les éléments suivants :

  • Une image de conteneur avec la version de votre serveur de jeu, téléchargée dans le référentiel privé Amazon Elastic Container Registry (Amazon ECR). La version du serveur de jeu est intégrée au SDK du serveur Amazon GameLift Servers et conçue pour fonctionner sous Linux.

  • Un service backend qui interagit avec le Amazon GameLift Servers service pour le compte des clients de vos jeux. Le service principal utilise les fonctionnalités de l'API de service pourAmazon GameLift Servers, qui fait partie du AWS SDK.

  • Une file d'attente de sessions de Amazon GameLift Servers jeu ou un autre mécanisme de placement qui traite les demandes de nouvelles sessions de jeu, recherche les serveurs de jeu disponibles dans toutes les flottes et invite un serveur de jeu à démarrer une session de jeu.

  • (Facultatif) Un FlexMatch système de matchmaking pour créer des matchs multijoueurs et configurer des sessions de jeu pour eux.

  • Une ou plusieurs flottes de conteneurs, qui utilisent des instances Amazon Elastic Compute Cloud (Amazon EC2) et sont optimisées pour l'hébergement de jeux multijoueurs.

Cette feuille de route présente un chemin simplifié pour que vos serveurs de jeux conteneurisés soient opérationnels avec succès grâce à des conteneurs Amazon GameLift Servers gérés. Une fois que vous avez mis en place les composants nécessaires, vous pouvez continuer à développer des jeux et à personnaliser votre solution d'hébergement. À l'approche du lancement, consultez-les Préparez le lancement avec GameLift Serveurs Amazon hébergement pour vous aider à préparer votre solution d'hébergement pour une utilisation en production.

Accélérez l'intégration à l'aide des outils suivants pour les conteneurs gérés :
  • Le kit de démarrage pour conteneurs rationalise l'intégration et la configuration de la flotte. Il ajoute des fonctionnalités essentielles de gestion des sessions de jeu à votre serveur de jeu et utilise des modèles préconfigurés pour créer une flotte de conteneurs et un pipeline de déploiement automatisé pour votre serveur de jeu. Après le déploiement, utilisez la Amazon GameLift Servers console et les outils d'API pour surveiller les performances de la flotte, gérer les sessions de jeu et analyser les statistiques.

  • Pour les développeurs Unreal Engine et Unity, utilisez les Amazon GameLift Servers plugins pour intégrer votre serveur de jeu et constituer une flotte de conteneurs depuis l'environnement de développement de votre moteur de jeu. Les flux de travail guidés du plugin vous aident à créer une solution simple et rapide avec un hébergement basé sur le cloud à l'aide de conteneurs gérés. Vous pouvez vous appuyer sur cette base pour créer une solution d'hébergement personnalisée pour votre jeu.

Ajoutez des fonctionnalités à votre serveur de jeu afin qu'il puisse communiquer avec le Amazon GameLift Servers service lorsqu'il est déployé pour l'hébergement.

  • Procurez-vous le SDK du serveur pour Amazon GameLift Servers (version 5.2 ou supérieure) pour votre projet de jeu. Le SDK du serveur est disponible en C++, C# et Go. Téléchargez le SDK du serveur pour Amazon GameLift Servers. Le SDK du serveur est disponible en C++, C# et Go.

  • Modifiez le code de votre serveur de jeu pour ajouter la fonctionnalité SDK du serveur. Pour de plus amples informations, consultez Préparez un jeu à héberger avec Amazon GameLift Servers. Au minimum, procédez comme suit :

    • Ajoutez du code pour initialiser le Amazon GameLift Servers SDK et établir une WebSocket connexion avec le Amazon GameLift Servers service. Utilisez l'action InitSdk() du SDK du serveur.

    • Ajoutez du code pour signaler au Amazon GameLift Servers service lorsque le processus du serveur est prêt à héberger des sessions de jeu. Utilisez l'action ProcessReady() du SDK du serveur.

    • Implémentez les fonctions de rappel requisesOnStartGameSession(), et. OnProcessTerminate() Grâce à ces fonctions, les processus du serveur de jeu peuvent maintenir une connexion avec le Amazon GameLift Servers service, lancer une session de jeu lorsque cela est demandé et répondre à une demande visant à mettre fin au processus du serveur de jeu. Amazon GameLift Servers

    • Ajoutez du code à signaler au Amazon GameLift Servers service lorsque le processus du serveur met fin à une session de jeu. Utilisez l'action ProcessEnding() du SDK du serveur.

  • Emballez la version de votre serveur de jeu. Créez votre serveur de jeu pour qu'il fonctionne sous Linux. Préparez la compilation et les autres fichiers nécessaires au fonctionnement du serveur de jeu. Si vous développez sous Windows, cette étape peut impliquer la configuration d'un espace de travail Linux distinct ou l'utilisation d'un outil tel que le sous-système Windows pour Linux (WSL). Vous aurez besoin d'un environnement Linux pour tester la version de votre serveur de jeu, ainsi que pour créer et tester les images de vos conteneurs.

  • Testez l'intégration de votre serveur de jeu. Vérifiez que votre serveur de jeu intégré peut se connecter au Amazon GameLift Servers service et répondre aux instructions. Nous vous recommandons de configurer une flotte Amazon GameLift Servers Anywhere simple avec un poste de travail local comme hôte de test, comme décrit dansConfigurez les tests locaux avec GameLift Serveurs Amazon N'importe où. Installez la version de votre serveur de jeu sur l'hôte de test et lancez un processus serveur. Utilisez l' AWS interface de ligne de commande pour demander une nouvelle session de jeu et vérifiez que le Amazon GameLift Servers service invite correctement le processus de votre serveur à démarrer une session de jeu.

Après avoir intégré avec succès votre serveur de jeu, créez une image de conteneur avec l'exécutable de votre serveur de jeu. Stockez-le dans un référentiel Amazon Elastic Container Registry (Amazon ECR) pour l'utiliser avecAmazon GameLift Servers. Pour obtenir des instructions complètes, consultez Créez une image de conteneur pour Amazon GameLift Servers.

  • Obtenez le modèle Dockerfile pour un conteneur de serveur de jeu (fourni parAmazon GameLift Servers). Modifiez le fichier des fichiers de compilation de votre serveur de jeu.

  • Créez une image de conteneur de serveur de jeu. Travaillant dans un environnement Linux, utilisez l'outil Docker pour créer votre image.

  • Transférez l'image de votre conteneur vers Amazon ECR. Créez un référentiel public ou privé dans Amazon ECR, en utilisant le même référentiel Compte AWS et à l' Région AWS endroit où vous prévoyez de déployer votre flotte de conteneurs. Poussez-y l'image de votre conteneur.

  • Testez les images de vos conteneurs à l'aide de votre flotte Anywhere (facultatif). Vous souhaiterez peut-être tester les images de vos conteneurs localement avant de les déployer sur une flotte de conteneurs hébergée dans le cloud. Vous pouvez utiliser votre parc Amazon GameLift Servers Anywhere existant avec un poste de travail local à des fins de test. Installez et exécutez le conteneur du serveur de jeu et vérifiez que : (1) le Amazon GameLift Servers service invite correctement le processus de votre serveur à démarrer une session de jeu, et (2) un client de jeu peut se connecter à la session de jeu.

Jusqu'à présent, vous avez travaillé avec une flotte Anywhere autogérée pour tester et itérer les composants de votre jeu. Lorsque vous disposez d'un serveur de jeu fonctionnel intégré pourAmazon GameLift Servers, vous pouvez commencer à configurer les ressources d'hébergement de la flotte de conteneurs Amazon GameLift Servers gérée dans le cloud dont vous aurez besoin pour un environnement de production.

  • Créez des définitions de groupes de conteneurs. Les définitions de groupes de conteneurs décrivent l'architecture de conteneurs d'une flotte et identifient les images de conteneurs à déployer. Consultez Création d'une définition de groupe de conteneurs pour une flotte de Amazon GameLift Servers conteneurs. Créez votre définition de groupe de conteneurs à l' Région AWS endroit même où les images de conteneurs sont stockées. Pour en savoir plus sur le choix de l'emplacement d'une flotte, consultezSituations géographiques. Au minimum, procédez comme suit :

    • Créez une définition de groupe de conteneurs pour serveurs de jeux.

    • Ajoutez une définition de conteneur avec une image de conteneur lors de la construction de votre serveur de jeu.

    • Configurez une plage de ports pour les processus du serveur de jeu du conteneur.

  • Créez une flotte de conteneurs gérée. Lorsque vous créez une flotte, le déploiement de votre serveur de jeu pour l'hébergement commence Amazon GameLift Servers immédiatement. Vous pouvez configurer de nombreux aspects d'une flotte gérée. Pour de plus amples informations, consultez Créez un GameLift Serveurs Amazon flotte de conteneurs gérée. Au minimum, procédez comme suit :

    • Configurez un rôle de service Gestion des identités et des accès AWS (IAM) pour la flotte de conteneurs. Consultez Configurer un rôle de service IAM pour Amazon GameLift Servers.

    • Spécifiez la définition du groupe de conteneurs de serveurs de jeu à déployer sur les instances de flotte.

    • Utilisez les valeurs par défaut lorsqu'elles sont disponibles pour tous les autres paramètres. Amazon GameLift Serverscalcule certains paramètres pour une configuration optimale.

  • Ajoutez les flottes de conteneurs à votre file d'attente. Dans la file d'attente de vos sessions de jeu, remplacez la flotte de test Anywhere par votre flotte de conteneurs gérée.

  • Testez l'hébergement de jeux avec vos flottes de conteneurs. À ce stade, vous devriez être en mesure de tester l'ensemble de la solution. Démarrez un client de jeu et demandez une session de jeu via le service principal. Obtenez des informations de connexion et participez à une session de jeu sur la flotte de conteneurs.

  • Effectuez des itérations sur les déploiements de votre flotte. Vous pouvez mettre à jour les définitions de groupes de conteneurs et les configurations de flotte, puis déployer des mises à jour sur les flottes existantes.

Créez un moyen pour votre client de jeu de demander à rejoindre une session de jeu, d'obtenir des informations de connexion, puis de se connecter directement à une session de jeu hébergée. L'approche la plus courante consiste à configurer une fonctionnalité de service backend qui sert d'intermédiaire entre le client de votre jeu et le service. Amazon GameLift Servers Cette approche protège vos ressources d'hébergement et vous permet de mieux contrôler la façon dont les joueurs sont placés dans les sessions de jeu.

  • Créez des fonctionnalités de service backend pour l'hébergement. Le service principal communique avec le Amazon GameLift Servers service et fournit des informations de connexion à un client de jeu. Cette fonctionnalité inclut le démarrage de sessions de jeu, le placement de joueurs dans des parties et la récupération des informations relatives aux sessions de jeu. Pour de plus amples informations, consultez Préparez un jeu à héberger avec Amazon GameLift Servers. Au minimum, procédez comme suit :

    • Téléchargez le AWS SDK pour Amazon GameLift Servers et ajoutez-le à votre projet de service principal. Consultez les ressources du Amazon GameLift Servers SDK pour les services clients.

    • Ajoutez du code pour initialiser un Amazon GameLift Servers client et enregistrer les paramètres clés. Consultez Configurez le GameLift Serveurs Amazon API.

    • Ajoutez une fonctionnalité permettant d'appeler l'action du AWS SDK CreateGameSession() et de fournir les informations de connexion à une session de jeu à un client de jeu. Consultez la section Création d'une session de jeu sur une flotte spécifique.

      CreateGameSession()L'appel est un point de départ pratique pour demander de nouvelles sessions de jeu. Une fois que vous aurez mis en place un système de placement des sessions de jeu (voir Étape 3), vous remplacerez ce code par un appel à StartGameSessionPlacement() (ou StartMatchmaking() si vous l'utilisezFlexMatch).

      Pour obtenir des conseils sur la conception de votre service backend, consultezCréez un service de backend pour GameLift Serveurs Amazon.

  • Ajoutez des fonctionnalités à votre client de jeu qui permettent aux joueurs de rejoindre une session de jeu hébergée. Le client du jeu adresse des requêtes à votre service principal, et non directement àAmazon GameLift Servers. Une fois que le service principal a fourni les informations de connexion à la session de jeu, le client du jeu se connecte directement à la session de jeu pour jouer au jeu.

  • Testez l'intégration de votre client de jeu. Vous pouvez utiliser votre parc Amazon GameLift Servers Anywhere existant avec un poste de travail local à des fins de test. Utilisez le nouveau service principal pour demander une nouvelle session de jeu et vérifiez que : (1) le Amazon GameLift Servers service invite correctement le processus de votre serveur à démarrer une session de jeu, et (2) un client de jeu peut se connecter à la session de jeu.

Personnalisez la façon dont vous Amazon GameLift Servers souhaitez traiter les demandes de nouvelles sessions de jeu et localisez les serveurs de jeu disponibles pour les héberger. Amazon GameLift Serverssuit automatiquement la disponibilité de tous les serveurs de jeu de toutes les flottes. Lorsqu'un client de jeu envoie une demande pour rejoindre une session de jeu, Amazon GameLift Servers il recherche le « meilleur emplacement possible » en fonction d'un ensemble de priorités définies telles que la latence minimale, le coût et la disponibilité.

  • Créez une file d'attente pour placer une nouvelle session de jeu sur les serveurs de jeu disponibles. Les files d'attente constituent le principal mécanisme de placement des sessions de jeu. Pour de plus amples informations, consultez Création d'une file d'attente de session de jeu.

    • Ajoutez au minimum vos flottes Anywhere comme destinations dans votre file d'attente. Tous les autres paramètres sont des personnalisations facultatives.

  • Dans le code de votre service principal, convertissez l'CreateGameSession()appel enStartGameSessionPlacement(). Consultez la section Création d'une session de jeu dans une file d'attente multi-sites.

  • Créez un mécanisme pour avertir le client du jeu lorsqu'une session de jeu est prête à être rejointe. Pendant le développement, vous pouvez effectuer un sondage pour connaître l'état de votre session de jeu en appelant àDescribeGameSessionPlacement. Avant d'utiliser une file d'attente pour traiter des volumes élevés, vous devez toutefois activer les notifications d'événements. Consultez Configurer la notification des événements pour le placement des sessions de jeu.

  • Ajoutez le FlexMatch matchmaking (facultatif). Créez un ensemble de règles de matchmaking et créez une configuration de matchmaking adaptée à votre file d'attente de sessions de jeu. Pour obtenir des conseils sur la configuration d'un système de matchmaking, consultez le guide du Amazon GameLift Servers FlexMatch développeur.

  • Testez le système de placement. Vous pouvez utiliser votre parc Amazon GameLift Servers Anywhere existant avec un poste de travail local à des fins de test. Utilisez le service principal pour demander une nouvelle session de jeu et vérifiez que le Amazon GameLift Servers service invite correctement le processus de votre serveur à démarrer une session de jeu.

Lors de la préparation du lancement du jeu, vous devrez affiner vos ressources d'hébergement géré. Parmi les décisions à envisager, citons :