Résoudre les problèmes liés à la GameLift flotte Amazon - Amazon GameLift

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.

Résoudre les problèmes liés à la GameLift flotte Amazon

Cette rubrique fournit des conseils sur les problèmes de configuration du parc pour une solution d'hébergement GameLift géré Amazon. Pour un dépannage supplémentaire, vous pouvez accéder à distance à une instance de flotte une fois que la flotte est active. Consultez Connectez-vous à distance aux instances GameLift de flotte Amazon.

Problèmes de création de flotte

Lorsqu'une flotte est créée, le GameLift service Amazon lance un flux de travail qui déploie une nouvelle instance dans chacun des emplacements de la flotte et la prépare à faire fonctionner vos serveurs de jeu. Pour une description détaillée, reportez-vous à la sectionComment fonctionne la création GameLift de flottes Amazon. Une flotte ne peut pas héberger de sessions de jeu ni de joueurs tant qu'elle n'a pas atteint le statut Actif. Cette section traite des problèmes les plus courants qui empêchent les flottes de devenir actives.

Téléchargement et validation

Au cours de cette phase, la création du parc peut échouer si des problèmes surviennent avec les fichiers de construction extraits, si le script d'installation ne s'exécute pas ou si le ou les exécutables désignés dans la configuration d'exécution ne sont pas inclus dans les fichiers de construction. Amazon GameLift fournit des journaux relatifs à chacun de ces problèmes.

Si les entrées n'affichent aucun problème, il est possible que le problème soit dû à une erreur de service interne. Si c'est le cas, réessayez de créer la flotte. Si le problème persiste, envisagez de recharger la build de jeu (dans le cas où les fichiers ont été corrompues). Vous pouvez également contacter l'GameLiftassistance Amazon ou poser une question sur le forum.

Création

Les problèmes qui provoquent l'échec lors de la phase de génération sont en général toujours dû aux fichiers de la build du jeu et/ou au script d'installation. Vérifiez que les fichiers de compilation de votre jeu, tels qu'ils ont été chargés sur AmazonGameLift, peuvent être installés sur une machine exécutant le système d'exploitation approprié. Veillez à utiliser une installation de système d'exploitation, et non un environnement de développement existant.

Activation

Les problèmes les plus courants de création de flotte surviennent lors de la phase d'activation. Au cours de cette phase, un certain nombre d'éléments sont en cours de test, notamment la viabilité du serveur de jeu, les paramètres de configuration du runtime et la capacité du serveur de jeu à interagir avec le GameLift service Amazon à l'aide du SDK du serveur. Problèmes courants pouvant survenir lors de l'activation de la flotte :

Les processus serveur ne parviennent pas à démarrer.

Vérifiez d'abord que vous avez correctement défini le chemin de lancement et les paramètres de lancement facultatifs dans la configuration d'exécution de la flotte. Vous pouvez consulter la configuration d'exécution actuelle du parc en utilisant la section Détails (page détaillée du parc) ou en appelant la AWS CLI commande describe-runtime-configuration. Si la configuration d'exécution semble correcte, vérifiez s'il y a des problèmes avec vos fichiers de la build du jeu et/ou le script d'installation.

Les processus serveur démarrent mais la flotte ne parvient pas à s'activer.

Si les processus du serveur démarrent et s'exécutent correctement, mais que le parc ne passe pas à l'état Actif, cela est probablement dû au fait que le processus du serveur n'informe pas Amazon GameLift qu'il est prêt à héberger des sessions de jeu. Vérifiez que votre serveur de jeux appelle correctement l'action d'API Server ProcessReady() (voir Initialiser le processus du serveur).

La demande de connexion d'appairage de VPC a échoué.

Pour les flottes créées avec une connexion d'appairage de VPC (voir Pour configurer l'appairage de VPC avec une nouvelle flotte), l'appairage de VPC est effectué au cours de cette phase d'activation. Si un appairage de VPC échoue pour une raison quelconque, la nouvelle flotte n'obtiendra pas le statut Actif. Vous pouvez suivre le succès ou l'échec de la demande de peering en appelant describe-vpc-peering-connections. Assurez-vous qu'il existe une autorisation d'appairage VPC valide (describe-vpc-peering-authorizations, car les autorisations ne sont valables que pendant 24 heures).

Problèmes liés aux processus serveur

Les processus serveur démarrent mais échouent rapidement ou indiquent une intégrité médiocre.

Hormis les problèmes liés à votre version de génération de jeu, cela peut se produire lorsque vous essayez d'exécuter trop de processus serveur simultanément sur l'instance. Le nombre optimal de processus simultanés dépend des exigences relatives au type d'instance et aux ressources de votre serveur de jeux. Essayez de réduire le nombre de processus simultanés, lequel est défini dans la configuration d'exécution de la flotte, pour voir si les performances s'améliorent. Vous pouvez modifier la configuration d'exécution d'un parc à l'aide de la GameLift console Amazon (modifiez les paramètres d'allocation de capacité du parc) ou en appelant la AWS CLI commande update-runtime-configuration.

Problèmes de suppression de flotte

Une flotte ne peut pas être résiliée en raison d'un nombre d'instances maximum.

Le message d'erreur indique que la flotte en cours de suppression dispose encore d'instances actives, ce qui n'est pas autorisé. Vous devez d'abord mettre à l'échelle une flotte en la réduisant à zéro instance active. Cela s'effectue en définissant manuellement le nombre d'instances souhaitées de la flotte à « 0 », puis en attendant que la réduction prenne effet. Veillez à désactiver la scalabilité automatique, qui contrecarrera les paramètres manuels.

Les actions de VPC ne sont pas autorisées.

Ce problème s'applique uniquement aux flottes pour lesquelles vous avez spécifiquement créé des connexions d'appairage VPC (voir. Peering VPC pour Amazon GameLift Ce scénario se produit car le processus de suppression d'un parc inclut également la suppression du VPC du parc et de toutes les connexions d'appairage VPC. Vous devez d'abord obtenir une autorisation en appelant l'API du GameLift service Amazon CreateVpcPeeringAuthorization() ou en utilisant la commande AWS create-vpc-peering-authorization CLI. Une fois que vous avez l'autorisation, vous pouvez supprimer la flotte.

Problèmes liés à la flotte de serveurs en temps réel

Sessions de jeu zombie : elles commencent à exécuter un jeu, mais ne se terminent jamais.

Vous pouvez observer ces problèmes dans les scénarios suivants :

  • Les mises à jour des scripts ne sont pas récupérées par les serveurs en temps réel de la flotte.

  • La flotte atteint rapidement sa capacité maximale et n'est pas réduite lorsque l'activité des joueurs (telle que les nouvelles demandes de session de jeu) diminue.

Cela est presque certainement dû à l'échec de l'appel de votre script processEnding en temps réel. La flotte est activée et les sessions de jeu démarrées, mais il n'y a pas de méthode pour les arrêter. Par conséquent, le serveur en temps réel qui exécute la session de jeu n'est jamais libéré pour en démarrer une nouvelle, et les nouvelles sessions de jeu ne peuvent démarrer que lorsque de nouveaux serveurs en temps réel sont ouverts. De plus, les mises à jour du script en temps réel n'ont aucune incidence sur les sessions de jeu déjà en cours, mais uniquement sur celles qui sont en cours d'exécution.

Pour éviter que cela se produise, les scripts doivent fournir un mécanisme pour déclencher un appel processEnding. Comme illustré dans Exemple de script de serveurs en temps réel, une solution consiste à programmer un délai d'expiration de session inactive, tel que si aucun joueur n'est connecté pendant un certain temps, le script met un terme à la session de jeu actuelle.

Toutefois, si vous tombez dans ce scénario, il existe quelques solutions pour débloquer vos serveurs en temps réel. L'astuce consiste à déclencher le redémarrage des processus du serveur en temps réel, ou des instances de flotte sous-jacentes. Dans ce cas, ferme GameLift automatiquement les sessions de jeu pour vous. Une fois que les serveurs en temps réel sont libérés, ils peuvent démarrer de nouvelles sessions de jeu à l'aide de la dernière version du script Realtime.

Il existe deux méthodes pour y parvenir, en fonction de l'ampleur du problème :

  • Mettre à l'échelle la totalité de la flotte en la réduisant. Cette méthode est la plus simple à mettre en œuvre mais a un effet étendu. Mettez à l'échelle la flotte en la réduisant à zéro instance, attendez la réduction complète de la flotte, puis remettez-la à l'échelle en l'augmentant. Cela effacera toutes les sessions de jeu existantes et vous permettra de repartir à zéro avec le script Realtime le plus récemment mis à jour.

  • Accéder à distance à l'instance et redémarrer le processus. Il s'agit d'une bonne option si vous n'avez que quelques processus à corriger. Si vous êtes déjà connecté à l'instance, par exemple aux journaux de processus ou de débogage, cette méthode peut être la plus rapide. Consultez Connectez-vous à distance aux instances GameLift de flotte Amazon.

Si vous choisissez de ne pas inclure le mode d'appel processEnding dans votre script en temps réel, certaines situations délicates peuvent survenir même lorsque la flotte est active et que des sessions de jeu démarrent. Tout d'abord, une session de jeu en cours d'exécution ne se termine pas. Par conséquent, le processus serveur qui exécute cette session de jeu n'est jamais libre de démarrer une nouvelle session de jeu. Deuxièmement, le serveur Realtime ne récupère aucune mise à jour de script.