Feuille de route de développement pour l'hébergement avec des conteneurs Amazon GameLift Servers gérés - 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.

Feuille de route de développement pour l'hébergement avec des conteneurs Amazon GameLift Servers 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 des solutions d'hébergement proposées parAmazon GameLift Servers. Pour plus d'informations sur les options d'hébergement, consultezAmazon GameLift Serverssolutions.

Une solution de conteneur géré Amazon GameLift Servers comportant les composants suivants :

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

  • Une image de conteneur contenant 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 principal qui interagit avec le Amazon GameLift Servers service pour le compte de vos clients de jeu. 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 session de Amazon GameLift Servers jeu 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.

Cette feuille de route présente une approche rationalisée 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 les composants nécessaires en place, vous pouvez continuer à développer le jeu et à personnaliser votre solution d'hébergement. À l'approche du lancement, consultez-les Préparation de votre jeu pour le lancement grâce à l'Amazon GameLift Servershébergement pour vous aider à préparer votre solution d'hébergement pour une utilisation en production.

Accélérez l'intégration grâce à ces outils 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 indicateurs.

  • Pour les développeurs d'Unreal Engine et Unity, utilisez les Amazon GameLift Serversplugins pour intégrer votre serveur de jeu et créer une flotte de conteneurs à partir de 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 les fonctionnalités du SDK du serveur. Pour de plus amples informations, consultez Intégrez des jeux à des serveurs de jeux personnalisés. Procédez au minimum 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 à 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 Amazon GameLift Servers est demandé et répondre à une demande de fin du processus du serveur de jeu.

    • 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.

  • Package de la version de votre serveur de jeu. Concevez votre serveur de jeu pour qu'il fonctionne sous Linux. Préparez le build et les autres fichiers nécessaires au fonctionnement du serveur de jeu. Si vous développez sous Windows, cette étape peut impliquer de configurer un espace de travail Linux distinct ou d'utiliser 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 vos images de conteneur.

  • 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 demandes. 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 des tests locaux avec Amazon GameLift Servers Anywhere. Installez le build de votre serveur de jeu sur l'hôte de test et lancez un processus de serveur. Utilisez la AWS CLI pour demander une nouvelle session de jeu et vérifiez que le Amazon GameLift Servers service invite correctement votre processus serveur à démarrer une session de jeu.

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 principal qui sert d'intermédiaire entre le client de jeu et le service. Amazon GameLift Servers Cette approche protège vos ressources d'hébergement et vous permet de mieux contrôler la manière dont les joueurs sont placés dans les sessions de jeu.

  • Développez des fonctionnalités de service principal 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 jeux et la récupération des informations de session de jeu. Pour de plus amples informations, consultez Intégrez des jeux à des serveurs de jeux personnalisés. Procédez au minimum comme suit :

  • 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 flotte Amazon GameLift Servers Anywhere existante 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 nouvelle session 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 sur 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 le minimum de latence, de coût et de disponibilité.

  • Créez une file d'attente de session de jeu pour placer une nouvelle session de jeu parmi les serveurs de jeu disponibles. Les files d'attente sont 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 en tant que destinations dans votre file d'attente. Tous les autres paramètres sont des personnalisations facultatives.

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

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

  • Ajouter FlexMatch le matchmaking (facultatif). Créez un ensemble de règles de matchmaking et créez une configuration de matchmaking compatible avec votre file d'attente de session de jeu. Pour obtenir des conseils sur la configuration d'un système de matchmaking, consultez le guide du Amazon GameLift ServersFlexMatch développeur.

  • Testez le système de placement. Vous pouvez utiliser votre flotte Amazon GameLift Servers Anywhere existante 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.

Après avoir intégré votre serveur de jeu avec succès, créez une image de conteneur avec le fichier exécutable de votre serveur de jeu. Stockez-le dans un référentiel Amazon Elastic Container Registry (Amazon ECR) pour l'utiliser avec. Amazon GameLift Servers Pour obtenir des instructions complètes, veuillez consulter 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 pour les fichiers de build de votre serveur de jeu.

  • Créez une image de conteneur de serveur de jeu. 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 l'utilisant Compte AWS et à l' Région AWS endroit où vous prévoyez de déployer votre flotte de conteneurs. Insérez l'image de votre conteneur dessus.

  • Testez les images de vos conteneurs à l'aide de votre flotte Anywhere (facultatif). Vous souhaiterez peut-être tester vos images de conteneurs localement avant de les déployer sur une flotte de conteneurs hébergée dans le cloud. Vous pouvez utiliser votre flotte Amazon GameLift Servers Anywhere existante 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 modifier les composants de votre jeu. Le dernier élément de votre solution consiste à configurer les ressources d'hébergement basées sur le cloud dont vous aurez besoin pour un système de production. Pour commencer à planifier et à configurer la production, vous souhaitez configurer un parc de conteneurs Amazon GameLift Servers géré et le personnaliser pour la production.

  • Créez des définitions de groupes de conteneurs. Les définitions des groupes de conteneurs décrivent l'architecture des 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 dans le même Région AWS endroit où les images de conteneurs sont stockées. Pour en savoir plus sur le choix de l'emplacement d'une flotte, voirEmplacement de la flotte. Procédez au minimum comme suit :

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

    • Ajoutez une définition de conteneur avec une image de conteneur avec la version 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, commencez Amazon GameLift Servers immédiatement à déployer la version de votre serveur de jeu pour l'hébergement. Vous pouvez configurer de nombreux aspects d'un parc géré. Pour de plus amples informations, consultez Créez un Amazon GameLift Servers flotte de conteneurs gérée. Procédez au minimum comme suit :

    • Configurez un rôle de service AWS Identity and Access Management (IAM) pour le parc de conteneurs. Consultez Configurer un rôle de service IAM pour Amazon GameLift Servers.

    • Spécifiez la définition du groupe de conteneurs du serveur 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 votre session de jeu, remplacez le parc de test Anywhere par votre parc de conteneurs géré.

  • 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 connectez-vous à une session de jeu sur la flotte de conteneurs.

  • Procédez à une itération des 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.

Alors que vous vous préparez au lancement du jeu, vous devrez affiner vos ressources d'hébergement géré. Parmi les décisions à prendre en compte, mentionnons les suivantes :