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 hybride avec GameLift Serveurs Amazon
Cette feuille de route vous explique comment développer une solution d'hébergement pour votre jeu multijoueur. Amazon GameLift Serverspropose plusieurs options d'hébergement de jeux ; pour plus d'informations sur ces options, consultezGameLift Serveurs Amazon options d'hébergement de jeux.
Une solution hybride utilise une combinaison de ressources d'hébergement, y compris des ressources basées sur le cloud gérées par Amazon GameLift Servers et vos propres ressources d'hébergement autogérées. Pour une discussion plus détaillée sur l'hébergement hybride, consultez cet article : Hébergement de serveurs de jeux hybrides avec Amazon GameLift Servers Anywhere
Une architecture hybride comprend les composants suivants :
-
Une version de serveur de jeu unique, intégrée au SDK du serveur pourAmazon GameLift Servers, à déployer sur toutes les flottes.
-
Un client de jeu et un service backend uniques, intégrés au AWS SDK, pour interagir avec le Amazon GameLift Servers service et demander des sessions de jeu.
-
Une Amazon GameLift Servers file d'attente partagée pour placer de nouvelles sessions de jeu sur les serveurs de jeu disponibles et équilibrer la charge entre toutes les flottes.
-
(Facultatif) Un agent de gestion des processus, qui est déployé avec un parc Anywhere, pour simplifier les tâches de gestion des processus du serveur sur les ordinateurs de tous les parcs.
-
(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 Amazon GameLift Servers gérées, qui utilisent des instances Amazon Elastic Compute Cloud (Amazon EC2) optimisées pour l'hébergement de jeux multijoueurs.
-
Une ou plusieurs flottes Amazon GameLift Servers Anywhere, qui utilisent vos ressources sur site ou d'autres ressources d'hébergement existantes, y compris vos outils de gestion de configuration et de déploiement. (Vous pouvez éventuellement utiliser le AWS Systems Manager.)
Cette feuille de route présente un chemin simplifié pour que votre jeu multijoueur soit opérationnel avec succès dans une solution d'hébergement hybride avecAmazon GameLift Servers. 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.
Prenez un bon départ avec le GameLift Serveurs Amazon .
Si vous développez des projets avec Unreal Engine ou Unity, commencez à configurer votre jeu pour l'hébergement avec le Amazon GameLift Servers plugin. Avec le plugin, vous pouvez ajouter les Amazon GameLift Servers SDK à votre projet de jeu et utiliser les flux de travail guidés pour créer une version fonctionnelle simple d'une solution d'hébergement hybride avec à la fois une flotte Anywhere et une flotte Amazon GameLift Servers gérée. Vous pouvez ensuite utiliser ces principes fondamentaux pour développer et personnaliser selon vos besoins.
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. Les mêmes fonctionnalités sont requises si le serveur de jeu fonctionne sur une flotte Amazon GameLift Servers gérée ou une flotte Anywhere.
-
Procurez-vous le SDK du serveur pour Amazon GameLift Servers (version 5.x) 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
. -
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. Incluez du code pour spécifier les paramètres du serveur lors de l'exécution sur un parc informatique Anywhere. -
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 requises
OnProcessTerminate(), et.OnStartGameSession()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 invite pour 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 un script d'installation avec vos fichiers de compilation, vos dépendances et les logiciels de support. Consultez Conditionner les fichiers de version de jeu. Nous vous recommandons d'utiliser un compartiment Amazon Simple Storage Service (Amazon S3) pour stocker les versions de votre build de jeu.
-
Testez l'intégration de votre serveur de jeu. Pour cette tâche, nous vous recommandons de configurer une flotte Amazon GameLift Servers Anywhere avec un poste de travail local, comme décrit dansConfigurez les tests locaux avec GameLift Serveurs Amazon N'importe où. Pour cette étape, installez manuellement la version de votre serveur de jeu sur l'appareil 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.
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()(ouStartMatchmaking()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 la même flotte Amazon GameLift Servers Anywhere avec une station de travail locale pour les tests.
Pendant la phase de développement, si vous souhaitez tester le comportement de votre build de jeu dans une flotte Amazon GameLift Servers gérée, nous vous recommandons également de configurer un environnement de test basé sur le cloud. Cette solution Amazon GameLift Servers Toolkit imite le comportement d'une flotte gérée mais vous permet de mettre à jour les versions des serveurs de jeu dans un délai minimal.
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.
-
(Facultatif) Ajoutez des composants FlexMatch de matchmaking. Pour obtenir des conseils, consultez le guide du Amazon GameLift ServersFlexMatch développeur.
Jusqu'à présent, vous utilisiez des appareils locaux (enregistrés sous le nom de Anywhere fleet computes) pour tester et itérer les composants de votre jeu. L'étape suivante consiste à configurer le type de flottes dont vous aurez besoin pour un système de production. Commencez avec une flotte Anywhere, puis ajoutez l'Amazon GameLift Serversagent pour gérer certaines tâches clés de gestion des hôtes sur le calcul. Pour en savoir plus, consultez Collaborez avec l'Amazon GameLift Serversagent.
-
Procurez-vous l'Amazon GameLift Serversagent et ajoutez-le au package d'installation de votre serveur de jeu. Obtenez et générez le code source de l'agent, disponible dans le GitHub référentiel de l'Amazon GameLift Serversagent
. Placez le fichier JAR exécutable obtenu dans le même répertoire que l'exécutable de compilation de votre jeu. -
Modifiez le script de démarrage de l'agent selon vos besoins. Assurez-vous que l'exécutable de l'agent est lancé dès qu'un ordinateur commence à fonctionner. Consultez le fichier Readme dans le référentiel de l'Agent pour obtenir de l'aide concernant l'installation et l'exécution de l'Agent sur vos ordinateurs d'hébergement. Votre commande de lancement doit inclure des options permettant de spécifier, au minimum, l'ID de flotte Anywhere ainsi Région AWS qu'un emplacement personnalisé et un nom de calcul.
L'Agent gère automatiquement les tâches suivantes pour vous. Par conséquent, si vous avez géré ces tâches à l'aide de scripts, vous pouvez les supprimer :
-
Appels
RegisterCompute()pour ajouter le calcul à une flotte Anywhere. -
Appels
GetComputeAuthToken()pour authentifier les serveurs de jeu lorsqu'ils se connectent au Amazon GameLift Servers service. L'agent gère l'obtention et l'actualisation du jeton d'authentification, qui peut être utilisé par tous les processus du serveur de jeu qui s'exécutent sur l'ordinateur. -
Démarre de nouveaux processus de serveur sur le calcul en fonction d'un ensemble d'instructions d'exécution.
-
-
Créez une configuration d'exécution pour les calculs de votre parc Anywhere. Spécifiez au minimum le chemin de lancement de l'exécutable de votre serveur de jeu. Vous pouvez utiliser la Amazon GameLift Servers console ou la AWS CLI pour créer ou modifier des instructions d'exécution pour la flotte. L'agent exécute ces instructions et demande périodiquement des mises à jour au Amazon GameLift Servers service.
-
Configurez ou modifiez la file d'attente de vos sessions de jeu selon vos besoins. Créez une nouvelle file d'attente (ou mettez à jour une file existante) et désignez une destination pour la flotte Anywhere déployée avec l'Amazon GameLift Serversagent.
-
Testez l'intégration de l'agent à vos flottes Anywhere. Vérifiez que l'agent démarre correctement les processus du serveur en fonction de la configuration d'exécution.
Créez une flotte EC2 Amazon GameLift Servers gérée pour compléter votre flotte Anywhere. Si vous avez configuré un environnement de test basé sur le cloud à l'étape 2 pour accélérer le développement, prévoyez de créer une flotte gérée une fois que vous aurez terminé la plupart du développement et des tests de votre jeu. Vous avez besoin d'une flotte entièrement gérée pour configurer et tester des paramètres supplémentaires tels que la mise à l'échelle automatique de la capacité.
-
Emballez la compilation de votre serveur de jeu et téléchargez-le surAmazon GameLift Servers. Créez un script d'installation avec vos fichiers de compilation, vos dépendances et les logiciels de support. Vous pouvez utiliser le même logiciel de création avec vos flottes Anywhere et gérées. Consultez Créez un serveur de jeu conçu pour GameLift Serveurs Amazon. Vous pouvez télécharger votre build à Amazon GameLift Servers l'aide de la console ou de l' AWS interface de ligne de commande.
Avant de télécharger votre build, décidez dans quoi Région AWS vous souhaitez créer la flotte gérée. Vous devez télécharger la version dans la même région. Pour en savoir plus sur le choix de l'emplacement d'une flotte, consultezSituations géographiques.
-
Créez une flotte EC2 gérée. Vous pouvez utiliser la Amazon GameLift Servers console ou l' AWS interface de ligne de commande pour créer une flotte gérée. Lorsque vous créez une flotte, le déploiement de votre serveur de jeu à des fins d'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 EC2 gérée. Au minimum, procédez comme suit :
-
Donnez un nom à la flotte et spécifiez la version de jeu téléchargée à déployer.
-
Choisissez On-Demand des instances pour votre flotte et sélectionnez un type d'instance disponible dans l'emplacement de votre flotte. Les flottes ponctuelles constituent une option intéressante mais nécessitent une conception et une configuration supplémentaires.
-
Créez une configuration d'exécution avec des paramètres similaires à ceux que vous avez utilisés avec la flotte Anywhere. Spécifiez au minimum le chemin de lancement de l'exécutable de votre serveur de jeu.
-
Spécifiez les paramètres de port pour permettre au trafic entrant d'accéder à vos serveurs de jeu.
-
-
Ajoutez la flotte gérée à la file d'attente de vos sessions de jeu partagées. Mettez à jour la file d'attente à partir de l'étape 4 afin qu'elle inclue les destinations de la flotte gérée et de la flotte Anywhere déployée avec l'Amazon GameLift Serversagent.
-
Testez l'hébergement de jeux avec vos flottes gérées. À ce stade, vous devriez être en mesure de tester l'ensemble du cycle d'hébergement, avec un client de jeu demandant une session de jeu, obtenant des informations de connexion et se connectant avec succès à une session de jeu.
Lors de la préparation du lancement du jeu, vous devrez peaufiner vos solutions d'hébergement. Parmi les décisions à prendre en compte, citons :
-
Pour les flottes Anywhere, automatisez le processus de démarrage et d'arrêt des ordinateurs selon les besoins, y compris l'installation et l'exécution du logiciel du serveur de jeu. Le recyclage des ordinateurs est utile pour s'assurer qu'ils sont mis à jour régulièrement, et l'arrêt des ordinateurs peut permettre de réduire les coûts lorsqu'ils ne sont pas nécessaires.
-
Si votre serveur de jeu a besoin de communiquer avec d'autres AWS ressources, configurez des rôles IAM pour gérer l'accès. Consultez Connectez votre GameLift Serveurs Amazon serveur de jeu hébergé vers un autre AWS resources.
-
Déterminez où géographiquement vous souhaitez positionner les serveurs de jeu. Ajoutez des sites distants à vos flottes gérées. Consultez Personnalisation des ressources d'hébergement.
-
Pour les flottes gérées, pensez à utiliser les flottes Spot pour réaliser des économies. Consultez Réduisez les coûts d'hébergement de jeux grâce aux flottes Spot.
-
Optimisez les performances du parc en sélectionnant des configurations de ressources de calcul, puis configurez vos instructions d'exécution pour exécuter le nombre optimal de processus de serveur par calcul. Procédez ainsi à la fois pour les flottes Anywhere et pour les flottes gérées. Consultez Optimisation de la configuration d'exécution du serveur de jeu en mode géré Amazon GameLift Servers.
-
Testez les options de placement des sessions de jeu pour les flottes gérées, notamment en personnalisant les paramètres de priorisation. Consultez Personnaliser une file d'attente de session de jeu.
-
Pour les flottes gérées, configurez une mise à l'échelle automatique des capacités pour répondre à la demande attendue des joueurs. Consultez Augmenter la capacité d'hébergement de jeux avec Amazon GameLift Servers.
-
Pour les flottes Anywhere, créez des mécanismes pour gérer la mise à l'échelle manuelle ou automatisée des capacités afin de répondre à la demande attendue des joueurs.
-
Concevez et implémentez le basculement vers d'autres ressources si nécessaire. Configurez des flottes de secours dans d'autres parcs Régions AWS et modifiez les files d'attente et la mise à l'échelle automatique pour gérer les basculements si nécessaire.
-
Configurez des outils d'observabilité de l'hébergement, notamment des outils d'analyse et de journalisation. Consultez Contrôle GameLift Serveurs Amazon. Créez des groupes de métriques pour regrouper les analyses de toutes vos ressources d'hébergement.
-
Automatisez votre déploiement à l'aide de l'infrastructure en tant que code (IaC). Consultez Gérer GameLift Serveurs Amazon héberger des ressources en utilisant CloudFormation.
Amazon GameLift Serversprend en charge l'utilisation de AWS CloudFormation modèles pour toutes les configurations spécifiques au déploiement. Vous pouvez également utiliser le Cloud Development Kit AWS (AWS CDK) pour définir vos Amazon GameLift Servers ressources. Pour plus d'informations à ce sujet AWS CDK, consultez le Guide du Cloud Development Kit AWS (AWS CDK) développeur.
Pour gérer le déploiement de vos CloudFormation piles, nous vous recommandons d'utiliser des outils et services d'intégration continue et de livraison continue (CI/CD) tels que AWS CodePipeline. Ces outils vous permettent de déployer automatiquement ou avec approbation chaque fois que vous créez un binaire de serveur de jeu. Avec un CI/CD outil ou un service, le déploiement des ressources pour une nouvelle version du serveur de jeu peut se présenter comme suit :
-
Créez et testez le binaire de votre serveur de jeu.
-
Téléchargez le fichier binaire surAmazon GameLift Servers.
-
Déployez de nouvelles flottes avec la nouvelle version.
-
Ajoutez les nouvelles flottes à la file d'attente de votre session de jeu et supprimez les flottes de la version de build précédente.
-
Lorsque les flottes de la version précédente n'hébergent plus de sessions de jeu actives, supprimez les CloudFormation piles de ces flottes.
-