Présentation de Game Servers

Game Servers est un service de jeu géré, conçu pour les équipes d'infrastructure de jeu. Il permet de déployer et de gérer facilement des parcs de serveurs de jeu dédiés mondiaux. Game Servers permet la gestion des clusters de serveurs de jeux à l'aide de Kubernetes pour l'orchestration de conteneurs et d'Agones pour l'orchestration du parc de serveurs de jeu et la gestion du cycle de vie. Vous pouvez connecter et déconnecter des clusters de la gestion par Game Servers à tout moment, sans aucun impact sur les sessions de jeu existantes. Après avoir déconnecté un cluster, vous pouvez continuer à exécuter une installation Open Source Agones.

Vous contrôlez les clusters de serveurs de jeu à l'aide des configurations globales du serveur de jeu, en définissant des règles pour l'emplacement et le nombre de serveurs à démarrer, ainsi que le binaire de serveur de jeu à déployer. Game Servers crée automatiquement des couches Agones en fonction des déploiements gérés de manière centralisée, ce qui garantit leur déploiement automatique et en toute sécurité sur tous les clusters gérés. En particulier, les sessions en cours ne sont jamais interrompues, car le serveur de jeu en cours d'utilisation n'est jamais mis en pause.

Ressources Game Servers

Cette section décrit les principales ressources avec lesquelles vous interagissez pour gérer Game Servers.

Projet Game Servers

Un seul environnement, tel que production ou testing, est un projet Google Cloud avec Game Servers activé. Pour améliorer l'isolation et la sécurité, vous gérez généralement un seul titre de jeu à l'aide de plusieurs projets Google Cloud, tels que My Game Production et My Game Testing.

Zone

L'emplacement définit le champ d'application d'une ressource et définit par défaut la valeur global, qui offre la plus haute disponibilité et l'endroit où les données sont redondantes dans plusieurs régions Google Cloud. Vous pouvez définir manuellement l'emplacement d'une ressource sur une région Google Cloud spécifique. Si vous souhaitez contrôler l'emplacement de stockage des données ou les domaines de basculement, remplacez le paramètre global par défaut.

Domaine

Game Servers est conçu pour être compatible avec les clusters Kubernetes s'exécutant sur Google Kubernetes Engine. Pour s'appuyer sur les concepts de régions et de zones de Google Cloud, Game Servers introduit le concept de méta-région de domaine. Un domaine est un regroupement défini par l'utilisateur de clusters de serveurs de jeu en fonction des exigences de latence du jeu pour le remplissage des joueurs. Les domaines disposent d'un fuseau horaire qui leur permet d'utiliser les configurations de scaling basées sur l'heure sur des clusters du domaine. Les domaines existent dans un emplacement spécifique.

Cluster Game Servers

Un cluster de serveur de jeux est une sous-ressource d'une ressource de domaine. Chaque cluster de serveur de jeu correspond à un espace de noms sur un cluster Kubernetes exécutant Agones enregistré dans un domaine. Les clusters de serveurs de jeu au sein d'un domaine doivent être considérés comme équivalents du point de vue de l'expérience utilisateur pour des mesures telles que la latence ou les performances de calcul. L'utilisation d'un espace de noms autre que default nécessite que l'espace de noms soit créé sur Kubernetes et qu'Agones soit configuré pour l'utiliser.

Après avoir créé un cluster de serveurs de jeux, Game Servers crée des parcs Agones et autoscalers, si nécessaire. Game Servers ne modifie pas les parcs Agones créés manuellement.

Après la suppression d'un cluster de serveur de jeu,  Servers ne supprime aucune ressource du cluster, y compris les parcs Agones et les autoscalers créés par Game Servers.

Déploiement de Game Servers

Un déploiement de serveur de jeu est un enregistrement global d'une version de logiciel de serveur de jeu pouvant être déployée sur l'ensemble des clusters de serveurs de jeu à travers le monde ou sur l'un de ces clusters. Un déploiement de serveur de jeu est la ressource parente de la configuration et du déploiement du serveur de jeu.

Configuration de Game Servers

Une configuration de serveur de jeu est une sous-ressource d'une ressource de déploiement de serveur de jeu qui spécifie le nombre de serveurs de jeu, le tampon et la version du serveur de jeu. Vous définissez des règles de scaling dans une configuration de serveur de jeu. Les règles de scaling peuvent être statiques ou basées sur le temps, comme le montrent les exemples suivants :

  • Pendant les heures de pointe, il devrait y avoir suffisamment de serveurs pour prendre en charge N allocations par minute, pendant les heures creuses, M allocations par minute.
  • Pour les événements de jeu planifiés, augmentez la capacité réservée de N% pour une plage de dates et d'heures.

Déploiement

Un déploiement est une sous-ressource d'une ressource de déploiement de serveur de jeu qui mappe les configurations de serveur de jeu pour cibler des domaines cibles. Par défaut, un déploiement attribue une configuration de serveur de jeu à tous les domaines. Pour les tests A/B et les tests Canary, vous pouvez remplacer certains domaines pour recevoir une autre configuration de serveur de jeu.

Architecture

Game Servers propose une API de plan de contrôle disponible dans le monde entier, via laquelle vous pouvez contrôler les ressources décrivant le déploiement à l'aide d'appels d'API ou de l'outil de ligne de commande gcloud, parmi lesquelles :

  • créer et modifier des domaines
  • Créer, enregistrer et modifier des clusters de serveurs de jeu en temps réel
  • créer, déployer et mettre à jour des déploiements de serveurs de jeu, des configurations de serveur de jeu et des déploiements

Pour autoriser Game Servers à gérer les ressources, vous devez créer un compte de service Kubernetes avec un accès limité aux clusters Agones. Game Servers utilise ce compte pour appliquer les modifications de configuration aux clusters Kubernetes à l'échelle mondiale.

Chaque déploiement de serveur de jeu décrit des paramètres de serveur de jeu, équivalents des GameServerSpec Agones et spécifie une règle pour cibler les clusters de serveurs de jeu où des parcs de serveurs de jeu exécutant un build spécifique doivent être créés. Vous pouvez également définir des préférences de scaling de cluster individuelles à l'aide de règles.

Étape suivante