floppy-diskPersistance

Apprenez à gérer des mondes persistants avec des déploiements toujours en ligne 24/7 sur Flottes privées.

De nombreux genres (MMO, Sandbox, jeux sociaux) tirent parti des mondes persistants pour permettre aux joueurs :

  • de se rencontrer et de socialiser avec de nouveaux amis ; de favoriser des communautés de joueurs organiques,

  • d'explorer un monde ouvert vivant rempli de contenus générés par les utilisateurs placés par les joueurs,

  • de participer à des raids épiques durant des heures avec de grands groupes ou des guildes entières.

Explorez des stratégies pour offrir la meilleure expérience joueur possible, garder les coûts sous contrôle et éliminer la frustration des joueurs due aux pannes ou aux retours en arrière. Améliorez le modèle de serveur traditionnel en apportant les avantages de l'edge computing conditionnés pour une utilisation facile par les développeurs de jeux.

✔️ Préparation

Pour permettre des déploiements persistants et ininterrompus 24/7 :

circle-exclamation

🔑 Propriété du serveur

Explorez les avantages et inconvénients des modèles de propriété modernes et traditionnels avec une touche d'edge computing.

Hébergement par le studio

L'hébergement des serveurs est traditionnellement géré par le studio, qui couvre le coût de l'hébergement à partir des revenus du jeu.

👍 Avantages

  • tarification produit transparente - le coût de l'hébergement est couvert par la licence/abonnement du joueur,

  • forte compatibilité client/serveur avec découplage souple des clients, services et montée en charge,

  • plus résistant à la triche et au reverse engineering en raison de la nature propriétaire des serveurs.

👎 Inconvénients

  • le support du modding par la communauté est limité pour garantir l'intégrité et la stabilité du serveur.

Serveurs communautaires

Permettez à vos joueurs d'héberger et de financer leurs propres serveurs et éliminez le besoin de services de location tiers. Canalisez les revenus via votre studio plutôt que par des tiers qui n'ont pas de visibilité sur la qualité de l'expérience utilisateur finale.

👍 Avantages

  • support de modding amélioré via une liste sélectionnée de mods Applications et versions,

  • boucle de retour joueur améliorée grâce à une collaboration plus étroite avec la communauté,

  • risque financier réduit car les joueurs couvrent le coût de l'hébergement.

👎 Inconvénients

  • plus d'opérations pour le studio - modération des demandes des joueurs et collecte des paiements,

  • compatibilité client/serveur plus faible en raison du nombre accru de versions moddées,

  • susceptible aux tricheurs en raison d'une base de code distribuée et de la possibilité de reverse engineering.

🥛 Capacité & Mise à l'échelle

Apprenez des techniques avancées pour optimiser la disponibilité des serveurs, le coût d'hébergement et la qualité de service.

Capacité

Les déploiements ne suivent ni ne gèrent les connexions actives des joueurs après vous Déploiements pour vous donner un contrôle absolu et la liberté d'implémenter n'importe quel design.

Mettez en œuvre la gestion de la capacité pour garantir que vos serveurs :

  • maximisent les économies de coûts - benchmarquent et utilisent efficacement les ressources serveur,

  • offrent un gameplay fluide - empêchent la surcharge des serveurs par trop de joueurs simultanés,

  • éviter les mauvaises critiques dues aux plantages - intercepter et gérer les exceptions inattendues.

Pour garantir une gestion efficace de la capacité des serveurs :

  • libérez des emplacements joueurs si des joueurs assignés au serveur de jeu ne se connectent pas dans quelques secondes,

  • envoyez fréquemment un message de heartbeat minimal des clients vers le serveur pour suivre l'activité,

  • déconnectez les clients et libérez les emplacements joueurs si aucune activité n'est détectée pendant plusieurs secondes,

  • empêchez l'ajout de joueurs sur des serveurs à pleine capacité sans emplacements disponibles.

circle-check

Monter en charge

La mise à l'échelle des serveurs persistants ne nécessite pas de « deviner » le trafic régional ou le coût serveur. Réservez Flottes privées capacité pour la marée basse et débordez automatiquement vers le cloud lors de pics inattendus.

Mettez en œuvre des stratégies de mise à l'échelle des serveurs pour :

  • permettre un hébergement à grande échelle tout en protégeant soigneusement contre les abus,

  • minimiser le gaspillage de coûts serveur dû aux serveurs en veille vides,

  • éviter les longues files d'attente en répondant rapidement à l'augmentation de la demande des joueurs.

Architecture de référence pour l'auto-scaling

Points clés d'intégration

  1. Les clients intègrent une Autorité d'Échelle - Matchmaking, Navigateur de serveurs, ou une solution personnalisée.

    1. Découvrez d'autres joueurs, réservez de la capacité dans des serveurs en cours d'exécution, ou demandez de nouveaux serveurs si nécessaire.

  2. L'Autorité d'Échelle assigne des serveurs en cours d'exécution ou lance de nouveaux serveurs pour desservir les joueurs.

  3. Le serveur informe l'Autorité d'Échelle en temps réel du démarrage/arrêt du serveur et des changements de connexion des joueurs.

    1. L'Autorité d'Échelle supprime (expire) les enregistrements obsolètes des serveurs non réactifs (plantés).

  4. Les clients se connectent et établissent des sessions de jeu directement avec le serveur, puis passent au jeu.

Nous recommandons fortement une mise à l'échelle basée sur le nombre de connexions plutôt que la charge physique (CPU & RAM), car les fluctuations momentanées de la charge physique peuvent entraîner une disponibilité imprévisible.

Redescendre en charge

Des politiques de réduction efficaces sont essentielles pour optimiser les coûts, mais arrêter des serveurs sans précaution peut affecter négativement l'expérience des joueurs. Considérez ces facteurs et testez les changements avant de les déployer :

Votre détection de l'activité / déconnexion des joueurs est-elle fiable ?

  • L'absence d'entrée indique-t-elle de façon fiable une inactivité du joueur ? Les joueurs utilisent souvent des bots, macros et autres techniques pour simuler de l'activité et maintenir une connexion active afin d'éviter les temps d'attente.

  • Y a-t-il des actions fréquemment effectuées par des joueurs actifs qui sont difficiles à simuler ?

  • L'utilisation de bots ou de macros est-elle un problème ou une fonctionnalité avec Persistance les serveurs ?

L'arrêt des serveurs est-il facilement et rapidement réversible (remonter en charge) ?

  • Une fois atteint Déploiements, votre serveur peut nécessiter du temps supplémentaire pour effectuer l'initialisation du moteur et Persistance (restauration de l'état). Engagez-vous des coûts supplémentaires pour le calcul ou le transfert de données avec les services de jeu ? Ce temps d'attente affecte-t-il l'expérience du joueur ?

  • Pouvez-vous masquer le chargement du serveur avec une scène de chargement, un mini-jeu, un hall d'attente ou d'autres moyens ?

Les joueurs sont-ils liés à des instances de serveur spécifiques ou peuvent-ils migrer facilement ?

  • Comment la connexion à un serveur différent influence-t-elle le compte du joueur, l'historique des achats, l'expérience sociale, la progression, l'inventaire et autres aspects du gameplay ?

  • Examinez votre Persistance et assurez-vous que les données critiques ne sont pas perdues.

  • Mettez en œuvre des méthodes automatisées ou des outils pour joueurs afin de restaurer les données critiques.

  • Fournissez un support humain et communiquez avec votre communauté au sujet des pannes et des problèmes.

🔎 Découvrabilité

Pour trouver des serveurs actifs acceptant de nouveaux joueurs, mettez en œuvre une ou plusieurs méthodes de découverte :

💭 Configuration & État

Intégrez des services pour définir les exigences initiales du serveur et gérer l'état des joueurs et des serveurs.

Gestion de la configuration

La configuration se réfère aux données initiales transmises à votre serveur lors du déploiement :

circle-info

La configuration est immuable - elle est lue une fois après le démarrage de votre serveur et ne change pas par la suite.

Gestion de l'état

L'état se réfère aux données décrivant le résultat d'une série d'actions précédentes des joueurs et d'événements serveur :

circle-info

Les données d'état changent fréquemment. Les clients sont mis à jour de façon sélective sur les informations pertinentes par l'autorité serveur.

circle-check

Les objets de jeu désignent généralement un propriétaire qui les contrôle, cela peut être soit le serveur soit un joueur.

Objets possédés par le serveur

Les objets possédés par le serveur ne peuvent être manipulés que par le serveur. Les joueurs connectés ont un accès en lecture limité aux objets possédés par le serveur. Les objets possédés par le serveur ne sont généralement pas partagés avec d'autres serveurs.

circle-check

Objets possédés par le joueur

Les objets possédés par le joueur peuvent être manipulés à la fois par les joueurs et par le serveur. Assigner la propriété d'objets persistants aux joueurs facilite la migration vers d'autres serveurs ultérieurement.

circle-check
circle-info

Prévenez la triche en validant les changements avec l'autorité serveur. Autorité et propriété peuvent être séparées.

Objectifs de récupération

En cas de problèmes, certaines catégories de données peuvent être plus sensibles à la perte de données, par exemple :

  • données de compte, d'abonnement, d'achat et de microtransaction - critiques,

  • données de progression, de succès, de classements et d'inventaire - important,

  • données de détection de triche, modération, performance et suivi des erreurs - important,

  • données de comportement des joueurs, sociales, de chat - faible importance.

circle-check

Nous recommandons vivement de discuter des éléments suivants au sein de votre équipe :

  • catégories de données traitées dans vos clients et serveurs de jeu,

  • importance et sensibilité de chaque catégorie pour votre entreprise et vos joueurs,

  • Recovery Point Objective (RPO) - quantité acceptable de perte de données avant qu'un dommage grave ne survienne,

  • Recovery Time Objective (RTO) - durée d'indisponibilité acceptable avant qu'un dommage grave ne survienne.

👀 Observabilité

Les serveurs persistants à longue durée posent de nouveaux défis d'observabilité, notamment la détection d'anomalies dans la surveillance, la journalisation et le suivi des bugs.

Nous recommandons fortement de mettre en place des alertes pour les redémarrages de serveurs pour gagner en visibilité sur les problèmes.

Notre Stockage de points de terminaison intégration des logs transfère uniquement les journaux après Déploiements, ajoutez des logs personnalisés et du suivi de bugs (comme Sentryarrow-up-right) pour dépanner les défaillances partielles et les bugs.

circle-check

Mis à jour

Ce contenu vous a-t-il été utile ?