
Server Meshing
Timeline 2025
Les voyages quantiques sont en train d’être adaptés au server meshing.
La refonte des services sociaux d'arrière-plan est terminée. Il s’agissait notamment de les transposer à la technologie gRPC et de les préparer pour le server meshing.
L’objectif actuel pour le patch 4.0 avec le “Server Meshing” et Pyro est l’été 2024. Des tests seront effectués sur les “Tech Preview Channels” :
Des changements sont apportés aux entités afin de les préparer au server meshing dynamique.
Pendant les quatre derniers mois, le focus a été de terminer l’adaptation des technologies et fonctionnalités au server meshing. Quelques exemples :
En attendant le server meshing dynamique, la version statique nécessite une configuration des zones de responsabilités des serveurs au sein d’un shard. Actuellement, les développeurs allouent cinq serveurs à chaque système (Stanton et Pyro), avec un serveur pour l’espace et les points de saut, et un serveur pour chaque planète.
Le système de transit (ou de transports en commun) date et est composé de nombreux sous-systèmes (stations, panneaux d’affichages, rames…) Dans un jeu classique, toutes les entités du système de transit seraient chargées en mémoire de manière permanente. Dans Star Citizen, le système est déchargé quand personne n’est à proximité, afin d’économiser des ressources. Tout cela doit être adapté à un contexte de server meshing. Les développeurs ont donc deux équipes sur le sujet : une qui travaille sur le futur système qui sera plus stable et résilient, et l’autre qui apporte des correctifs au système actuel pour qu’il soit jouable.
Le déplacement instantané d’une entité (sorte de téléportation), qui est utilisé quand un joueur réapparaît après être mort, a dû être adapté au contexte de server meshing. L’enjeu est de pouvoir transférer l’entité d’un serveur à un autre au sein d’un même shard.
Le passage au server meshing a engendré de nombreux problèmes liés à la transition entre deux serveurs. Les équipes travaillent à corriger ces régressions.
Les développeurs espéraient que le server meshing allait améliorer les performances, et ça n’a pas été le cas car ils n’ont pas assez poussé l’optimisation de ces dernières. Cloud Imperium Games a donc mis en place une organisation pour pouvoir améliorer le code sous la forme d’opérations “coup de poing” et amener les traitements des serveurs entre 15 et 20 cycles par seconde.
Les travaux nécessaires pour adapter pleinement au server meshing les composants de l’intelligence artificielle sont en phase de planification.
Dans le cadre du server meshing, plusieurs services d'arrière-plan essentiels ont été finalisés, comme ceux pour les missions, les scénarios et le social.
Le nouveau système de missions a reçu des changements critiques dans le cadre de son adaptation au server meshing. Ceux-ci doivent permettre la continuité des missions lors du franchissement d’une frontière entre serveurs ou encore lors de récupération après un crash de serveur.
Refonte du système de mission Refonte du système de mission pour le rendre compatible avec le Server Meshing, permettant ainsi de faciliter la création et la maintenance des missions.
Server Meshing V1 L'implémentation initiale du Server Meshing permettra d'avoir plusieurs serveurs par shard afin d'améliorer la répartition de la charge et de faciliter la navigation entre deux systèmes planétaires.
Les complications sont les mêmes que pour la coupe des arbres. Il faut prendre en compte le server meshing, la persistance, etc, cela fait beaucoup d'informations. Il faut différentier les arbres notables (près des camps et points d'intérêt) et essayer d'être plus générique (par exemple définition par zone), dans le cas de zones plus denses ou moins fréquentées. Il n'y a aucune garantie aujourd'hui, mais ils étudient les possibilités.
Les changements nécessaires au système social dans le cadre de l’adaptation au server meshing sont en phase de tests internes.
L’équipe continue de travailler sur le server meshing, en particulier sur la synchronisation de Subsumption entre les serveurs de jeu. Ainsi, les personnages non joueurs peuvent continuer leur comportement en cours lorsqu’ils changent de serveur.
Après évaluation du support requis pour le Server Meshing, Pyro et la stabilité générale de la 4.0, nous avons décidé de retirer temporairement plusieurs livrables de cette mise à jour afin de libérer les ressources d’ingénierie nécessaires à la préparation de son lancement. Ceci inclut le gameplay d’ingénierie, le support de vie, les incendies et les extincteurs, le chargement/déchargement et la refonte du système de transport. Nous sommes conscients que beaucoup d'entre vous attendaient avec impatience ces fonctionnalités, en particulier le gameplay d’ingénierie, mais soyez assurés que nous sommes déterminés à les réintégrer dès que possible.
Le patch Alpha 4.0 est un patch technique, dans le sens où il apporte des changements fondamentaux dans les technologies du jeu avec le “server meshing”.
Avec l’arrivée du server meshing, le nombre de joueurs par shard (c’est-à-dire qui peuvent se rencontrer lors d’une session de jeu) va drastiquement augmenter. Dans ces conditions, le nombre de lieux actuellement présents dans le ‘Verse ne seront pas suffisants et créer des lieux à la main nécessiteraient trop de ressources.
L’équipe se prépare au déploiement du server meshing dans l’univers persistant. Ceci consiste en une série de Tech-Preview pour augmenter le nombre de joueurs par serveur.
L’équipe s’est concentrée sur le server meshing, pour améliorer le passage d’informations entre serveurs.
La refonte du système de missions se poursuit, ce qui inclut 1700 enregistrements de missions rien que pour Stanton. L’objectif est d’adapter les missions au contexte de server meshing tout en simplifiant le travail des développeurs, sans changement pour les joueurs.
Le système de transit est en cours de refonte complète dans le cadre du server meshing.
La vitesse des cycles du serveur (server framerate) a un effet direct sur la simulation de la physique et le comportement des personnages non joueurs. C’est une information que les joueurs peuvent voir en jeu et en sentir les effets. Les développeurs cherchent constamment à améliorer la vitesse du cycle, grâce à des optimisations et en répartissant la charge grâce au server meshing.
Le service d’échange d’UEC entre joueurs fonctionne désormais dans un environnement de server meshing.
Les développeurs espèrent qu’avec le server meshing activé, le patch Alpha 4.0 aura un cycle serveur plus rapide et offrira en conséquence une meilleure expérience de combat contre les personnages non joueurs.
Le système d’échange d’UEC entre joueurs est en train d’être adapté au server meshing.
Les travaux se poursuivent sur la vision et le déplacement des personnages non joueurs dans le cadre du server meshing. Ceci leur permettra de passer d’un serveur à un autre sans perte de contexte.
Dans d’autres cas, des données redondantes étaient envoyées à la couche de réplication, provoquant des problèmes de performance. Il y a donc des actions dans toutes les équipes pour convertir les fonctionnalités existantes à cette nouvelle architecture. L’équipe chargée du server meshing a mis en place des outils pour monitorer les performances de la couche de réplication et des serveurs de jeu, pour guider les autres équipes dans leurs efforts.
La première étape a été l’introduction de la couche de réplication (replication layer) dans le patch 3.18. L’un des bénéfices de cette technologie est la capacité à récupérer après un crash de serveur. Le premier enseignement de ce test a été que la technologie fonctionne globalement très bien, que les principes sont bons. La couche de réplication fonctionnelle offre des bases solides pour un développement plus rapide du reste du server meshing.
Le développement du server meshing s’est fait en plusieurs étapes, chacune testant une partie du système. Les backers ont beaucoup de créativité pour tester les limites du système. Ainsi, chacune des phases de test (appelées Tech Preview) a révélé des problèmes et axes d’amélioration.
De nouveaux tests sont nécessaires en prévision du patch Alpha 4.0 qui verra plusieurs systèmes découpés en de multiples territoires gérés par plusieurs serveurs de jeu. A partir de ce point, les efforts porteront sur le server meshing dynamique, qui devra équilibrer la charge des serveurs de jeu.
Une fois la couche de réplication fonctionnelle, les développeurs ont conduit un test avec deux serveurs de jeu connectés à la même couche de réplication, ce qui correspond à un premier essai de server meshing. Encore une fois, ce test s’est bien mieux déroulé que ce à quoi s’attendaient les développeurs. Le seul bémol pour eux, c’est que le point de saut a dû être descopé de l’expérimentation à la dernière minute. Un autre test avec un point de saut fonctionnel entre Stanton et Pyro a donc été organisé, et les développeurs ont pu constater le bon fonctionnement de la transition entre les deux systèmes.
Les développeurs se sont aussi rendus compte que certaines parties du code n’étaient pas adaptées au server meshing, notamment car des bugs sont apparus du fait de la capacité à récupérer après un crash. L’un des scénarios les plus critiques se produit quand un serveur de jeu envoie des données erronées dans la couche de réplication avant de crasher, provoquant un crash systématique de tous les serveurs de jeu qui essaient de prendre le relai.
Un système de région pour les entités a commencé son développement. Il s’agit de gérer la durée de vie des entités générées procédurallement, fonctionnalité indispensable pour les entités persistence, le rétablissement après un crash et le server meshing.
Des investigations sont en cours pour améliorer la syntchronisation des données de l’intelligence artificielle entre les serveurs et les clients dans le cadre du server meshing.
Les travaux se poursuivent pour l’implémentation de la première version du server meshing.
Les voyages quantiques sont en train d’être adaptés au server meshing.
La refonte du système de mission, nécessaire pour l’adaptation au server meshing, est en phase de planification.
Les travaux nécessaires pour adapter le système d’inventaire au server meshing ont été définis.
L’équipe a commencé à travailler sur des fonctionnalités candidates pour le patch 4.0, comme la refonte des systèmes de mission et de marqueurs, ou encore le commerce dans le cadre du server meshing.
Server Meshing V1 L’implémentation initiale du Server Meshing permettra d’avoir plusieurs serveurs par shard afin d’améliorer la répartition de la charge et de faciliter la navigation entre deux systèmes planétaires.
Refonte du système de transport Refonte du système de transport utilisé pour les trams et les ascenseurs afin de le rendre compatible avec le Server Meshing et de le rendre plus robuste.
Refonte du système de mission Refonte du système de mission pour le rendre compatible avec le Server Meshing, permettant ainsi de faciliter la création et la maintenance des missions.
Mise à jour de la couche de réplication Au cours du cycle de patchs de la 3.23, la couche de réplication sera séparée des serveurs du jeu pour devenir un service autonome. À court terme, cela permettra une meilleure récupération des serveurs en cas de crash. Il s’agit également d’une étape cruciale vers le Server Meshing.
La refonte des services sociaux d'arrière-plan est terminée. Il s’agissait notamment de les transposer à la technologie gRPC et de les préparer pour le server meshing.
Les travaux ont débuté sur la technologie Planet Tech v5. L’équipe est en train de déterminer comment le partitionnement spatial va fonctionner avec le server meshing et la récupération en cas de crash. Le concept de planètes par défaut (default planets) a été introduit pour faciliter les tests internes.
Les services d’arrière-plan liés aux fonctions sociales ont été remaniés, notamment pour le portage vers gRPC et l’adaptation au server meshing.
Vous vous demandez peut-être pourquoi je vous raconte cette histoire : eh bien, un peu avant la date historique du 10 avril, nous avons organisé notre propre célébration du Jour du premier saut sur le canal de test Tech Preview ce week-end ! Pour tester nos progrès en matière de Server Meshing et de Replication Layer (couche de réplication), nous avons ouvert nos premières portes de saut fonctionnelles et permis à des joueurs de tester le voyage entre deux systèmes pour la première fois de notre histoire ! Les joueurs ont pu voyager entre Stanton et Pyro via des trous de ver, chaque système se chargeant et se déchargeant de façon fluide. Pour ceux que cela intéresse, le “Nick Croshaw” de notre ‘verse est un membre Evocati appelé “MrTrash” qui, selon nous, a été le premier de la communauté à réussir ce saut ! Pendant le test, il est intéressant de souligner que nous avons également atteint 350 joueurs dans une seule shard (par exemple, une couche de réplication avec deux serveurs connectés), établissant ainsi un nouveau record de joueurs présents dans une seule instance dans Star Citizen !
Avec l’alpha 3.18, notre première mise à jour majeure de 2023, l’équipe a livré le Persistent Entity Streaming (PES), la technologie fondamentale requise pour le Server Meshing (SM). Comme mentionné dans la dernière lettre, le PES est la plus difficile des technologies requises pour le SM et celle qui a nécessité le plus d’ingénierie, de sorte que surmonter les défis de cette mise à jour l’année dernière était essentiel. Le lancement de l’alpha 3.18 a été beaucoup plus délicat que prévu, et nous avons découvert des problèmes avec notre base de données backend qui n’étaient visibles qu’à l’échelle d’une version live, contrairement aux serveurs de test PTU. Par ailleurs, nous avons découvert de nombreux petits problèmes liés à un univers vraiment persistant ; alors qu’il est extraordinaire de tomber sur une épave provenant d’un combat entre joueurs ayant eu lieu il y a une semaine, il est moins agréable d’essayer de se poser dans un hangar où les trois derniers vaisseaux se sont écrasés et ont laissé des débris autour, bloquant votre plateforme d’atterrissage. Nous avons progressivement résolu ces problèmes et bien d’autres encore, mais ce fut une période difficile tant pour les développeurs que pour la communauté. Ces obstacles ont non seulement mis à l’épreuve nos compétences et notre détermination, mais ils ont également démontré notre résilience à mesure que nous les surmontions.
En 2024, notre projet de Server Meshing atteint son apogée après des années de travail acharné. Nous nous rapprochons de la vision initiale que nous nous étions fixée.
L’autre grande étape de 2023 a été l’accueil de l’équipe de Turbulent au sein de la famille CIG. Partenaires depuis fin 2012, Turbulent a été en charge d’une grande partie de notre infrastructure réseau et a grandement contribué à notre croissance et à notre succès. Cette acquisition nous permet de rationaliser nos efforts et nous donne officiellement une présence significative à Montréal, au Canada, une pépinière de talents dans le domaine du jeu vidéo. Dans le cadre de cette acquisition, nous avons accueilli deux cadres supérieurs clés : Benoit Beausejour, le directeur technique de Turbulent, qui devient maintenant le directeur technique de Cloud Imperium et le chef de notre groupe de technologie fondamentale (Core Technology Group ou CTG). Vous connaissez déjà Benoit avec à ses présentations sur le Server Meshing lors des deux dernières CitizenCon. Le second cadre à rejoindre nos rangs est Marc Beaudet, auparavant PDG de Turbulent, et qui devient notre vice-président senior en charge des opérations et du bien-être du millier de personnes travaillant sur Star Citizen et Squadron 42, réparties entre nos cinq bureaux d’Austin (Texas), Los Angeles (Californie), Manchester (Angleterre), Francfort (Allemagne), et désormais Montréal (Canada).
Vous étiez là pour l’emblématique retournement de casque et la première ouverture des portes du hangar dans l’alpha 0.8. Ensemble, nous avons commencé à explorer la vaste étendue de l’Univers persistant dans l’alpha 2.0, et vous étiez présents lors du premier atterrissage planétaire dans l’alpha 3.0. Bientôt, nous quitterons le système Stanton pour nous aventurer dans les étendues désertiques et sans foi ni loi du système Pyro dans l’alpha 4.0 grâce au Server Meshing. Et au-delà, la 1.0 de Star Citizen se profile à l’horizon ! Jamais l’avenir n’a été aussi radieux !
En ce qui concerne Star Citizen, les équipes se préparent à livrer le Server Meshing et à élargir l’univers vers de multiples systèmes stellaires.
Une refonte du système de mission en prévision du server meshing est en cours de réalisation.
Pour l'adaptation au server meshing, un soutien a été apporté pour les voyages quantiques et les marqueurs lors des transitions vers un autre système stellaire.
Des progrès ont été réalisés sur le “server meshing” et la résilience aux crashs.
Le système de transports en commun a été adapté au “server meshing”, et pour prendre en compte la récupération aux crashs lorsqu’un personnage est dans un transport.
L’objectif actuel pour le patch 4.0 avec le “Server Meshing” et Pyro est l’été 2024. Des tests seront effectués sur les “Tech Preview Channels” :
Les fonctionnalités suivantes sont visées pour le premier semestre 2024, car elles ne dépendent pas de l’implémentation du server meshing :
Bien que nous prévoyions d’utiliser le canal de prévisualisation pour la séparation de la couche de réplication, le Server Meshing et d’autres technologies fondamentales, celles-ci ne feront pas partie du lancement initial.
Ce playtest inclura-t-il la séparation de la couche de réplication ou le Server Meshing ?
C’est là qu’intervient le canal de prévisualisation, un nouvel environnement dans lequel nous déployons et testons de nouvelles technologies fondamentales dans un environnement isolé afin de protéger la fiabilité et la jouabilité du service Live. Les technologies fondatrices à venir, telles que la séparation de la couche de réplication et la récupération en cas de crash, seront d’abord déployées sur ce canal. Ces technologies seront testées et renforcées sur ce canal avant d’être transférées sur le PTU pour une migration vers le service Live. À l’avenir, lorsque nous serons prêts à livrer le Server Meshing, vous pouvez vous attendre à ce qu’il passe d’abord par le canal de prévisualisation pour que ses effets soient observés et testés avant qu’il ne passe au PTU. Toute nouvelle technologie sur le canal doit être validée, évaluée et, en fin de compte, éprouvée avant une sortie sur les serveurs Live.
Mise à jour de la couche de réplication (NOUVEAU) Au cours du cycle de patchs 3.21, la couche de réplication sera séparée des serveurs du jeu pour devenir un service autonome. À court terme, cela permettra une meilleure récupération des serveurs en cas de crash. Il s’agit également d’une étape cruciale vers le Server Meshing.
En bref, il s’agit de la prochaine étape du test des composants du Server Meshing après le déploiement du Persistent Entity Streaming en début d’année. Pour l’instant, les serveurs du jeu ne géreront que le système Stanton, de sorte que vous ne constaterez pas beaucoup de changements dans votre expérience in-game, mais il s’agit d’une étape cruciale pour avancer vers l’alpha 4.0 et au-delà.
Pour plus d’informations sur la couche de réplication, le Persistent Entity Streaming, le Server Meshing et la façon dont tout cela affectera l’avenir de Star Citizen, veuillez consulter notre panel de la CitizenCon 2021 : CitizenCon 2951 : Server Meshing et l’état de la persistance.
Le premier projet à intégrer ce nouveau canal d’aperçu technologique est la couche de réplication (Replication Layer), une composante réseau essentielle de l’infrastructure du Server Meshing. Dans cette mise à jour, la réplication du réseau du jeu et son état sont séparés des serveurs du jeu et constituent un service à part entière. Les clients sont connectés à ce nouveau service et les serveurs du jeu eux-mêmes deviennent des clients ayant autorité sur la couche de réplication. Avec la réplication déplacée hors des serveurs du jeu, l’équipe espère commencer à tester la récupération en cas de crash serveur sans déconnecter les clients du jeu de l’état de l’univers sur une instance donnée.
En bref, il s’agit de la prochaine étape du test des composants du Server Meshing après le déploiement du Persistent Entity Streaming en début d’année. Pour l’instant, les serveurs du jeu ne géreront que le système Stanton, de sorte que vous ne constaterez pas beaucoup de changements dans votre expérience in-game, mais il s’agit d’une étape cruciale pour avancer vers l’alpha 4.0 et au-delà.