
Server meshing
Timeline 2025
L’équipe s’est concentrée sur le server meshing, pour améliorer le passage d’informations entre serveurs.
Le système d’échange d’UEC entre joueurs est en train d’être adapté au server meshing.
Des progrès ont été réalisés sur le “server meshing” et la résilience aux crashs.
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.
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.
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.
Pendant les quatre derniers mois, le focus a été de terminer l’adaptation des technologies et fonctionnalités au server meshing. Quelques exemples :
Des changements sont apportés aux entités afin de les préparer au server meshing dynamique.
Les travaux nécessaires pour adapter pleinement au server meshing les composants de l’intelligence artificielle sont en phase de planification.
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.
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.
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 s’est concentrée sur le server meshing, pour améliorer le passage d’informations entre serveurs.
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.
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.
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.
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.
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.
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.
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.
Les travaux se poursuivent pour l’implémentation de la première version du server meshing.
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.
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.
Les voyages quantiques sont en train d’être adaptés au server meshing.
Les travaux nécessaires pour adapter le système d’inventaire au server meshing ont été définis.
La refonte du système de mission, nécessaire pour l’adaptation au server meshing, est en phase de planification.
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.
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 :