MGG / Actualités jeux vidéo / Star Citizen /

Star Citizen Live : Persistent Entity Streaming

Star Citizen Live : Persistent Entity Streaming
0

La technologie Persistent Entity Streaming est l’objectif principal du patch 3.18, car elle va poser les fondations d’un univers immense et persistant. Benoit Beausejour et Paul Rendeill prennent le temps de nous expliquer les principes et les implications.

Star Citizen Live : Persistent Entity Streaming

Dans cet épisode de Star Citizen Live, Jared Huckaby reçoit deux personnes au cœur du développement de la technologie Persistent Entity Streaming (PES) qui est l’objectif majeur du patch 3.18. Il s’agit de Benoît Beauséjour, directeur technique de Turbulent, et de Paul Rendeill, directeur de l’ingénierie de Cloud Imperium Games.

Avant de rentrer dans les détails et afin de bien montrer les enjeux, les développeurs font l’analogie suivante pour décrire le patch 3.18 et le Persistent Entity Streaming : c’est comme si on prenait un gratte-ciel, qu’on le soulevait de 100 mètres, qu’on creusait de nouvelles fondations plus solides, et qu’on le reposait en faisant attention de ne rien casser à l’intérieur. Le patch 3.18 est donc un patch qui pose les fondations pour le server meshing et qui cherche à vérifier que rien n’est cassé, même si les joueurs ne voient pas beaucoup de changements dans le gameplay. Le PES a demandé près de deux ans de développement et les développeurs sont impatients de voir la technologie entre les mains des joueurs.

A la fin de l’émission, Jared explique que les Star Citizen Live sont aussi un outil pour transmettre l’information entre les équipes de développement.

Le PES, qu’est-ce que c’est ?

Actuellement, quand un joueur se connecte à Star Citizen, il est affecté par le matchmaking à un serveur de jeu qui simule tout Stanton.

Les personnages des joueurs, leurs vaisseaux et véhicules, et les objets qu’ils ont rangés dans les inventaires locaux sont enregistrés dans une base de données externe au serveur. En revanche, tout ce qui est dans l’univers et qui n’entre pas dans ces catégories est stocké dans la mémoire du serveur. A titre d’exemples, cela englobe les personnages non joueurs, les portes, les transports en commun, les objets posés au sol… En cas de crash, ces éléments sont définitivement perdus.

La technologie Persistent Entity Streaming (PES dans la suite de cet article) a pour finalité de sortir ces données de la mémoire des serveurs afin d’obtenir une persistance complète indépendamment de ces derniers. Il s’agit donc de connecter chaque serveur de jeu à une base de données qui mémorise la position et l’état de chaque élément de l’univers.

Ainsi, en plus de la persistance des personnages joueurs et des vaisseaux, on obtient celle de tout objet et personnage de l’univers. On parle donc ici de millions d’entités.

Base globale de données, shards et serveurs

Dans l’architecture de Star Citizen, il existe une base de données globale qui assure la persistance de tout ce qui existe. C’est cette base de données qui assure que les possessions des joueurs sont toujours disponibles quand il se connecte, quel que soit le serveur ou le shard sur lequel il se trouve. En effet, quand un joueur se connecte ou quand il demande un vaisseau à un terminal, la base de données globale envoie les informations correspondantes à la base de données du shard où le joueur se trouve.

Un shard est un groupe de serveurs qui partagent le même état de l’univers. C’est-à-dire qu’au sein d’un shard, les joueurs voient la même chose, peuvent se croiser et s’affecter mutuellement. Une entité de la base de données globale ne peut se trouver que sur un seul shard à la fois, mais elle peut être éventuellement être vue depuis plusieurs serveurs de ce shard.

Pour le patch 3.18, comme le server meshing n’est pas activé, chaque serveur correspondra à un shard. L’objectif à long terme de Cloud Imperium Games est d’avoir le moins de shards possible, idéalement un seul shard mondial si la technologie le permet.

Persistance, déconnexion et nettoyage

Comme expliqué précédemment, le PES a pour objectif d’étendre la persistance à toutes les entités. Ceci implique qu’on pourra déposer un objet au sol, et que celui-ci y restera jusqu’à ce qu’il soit ramassé, détruit, ou nettoyé. On pourra donc créer une cache d’armes ou de provisions, planquer son butin, ou procéder à un échange sans se croiser.

En dehors de ce qui est porté par le personnage et de ce qui se trouve dans ses véhicules et vaisseaux, tous les objets déposés ou abandonnés dans l’univers persisteront même lorsque le joueur se déconnecte.

  • Quand un joueur range un vaisseau au niveau d’un terminal, l’appareil et tout ce qu’il contient sont envoyés dans la base de données globale et sont déchargés du shard.
  • Quand un joueur se déconnecte, son personnage et tout ce qu’il porte sont également envoyés dans la base de données globale et sont déchargés du shard.

Un mécanisme va être mis en place pour que les vaisseaux qu’il possède et qui sont encore dans l’univers disparaissent à un moment opportun (cela évitera que ses amis se retrouvent dans l’espace sans vaisseau, ou qu’il fasse un ALT-F4 pour ne pas perdre un combat)

On pourra également faire apparaître bien plus de vaisseaux par joueur, alors qu’aujourd’hui la limite est à 3.

Cependant, si la densité d’entités est trop importante dans une zone, les performances du jeu en seraient affectées. C’est pour cela que les développeurs ont mis en place un système appelé Density Management qui évalue la densité des entités et en supprime quand cela est nécessaire pour maintenir les performances. Le mécanisme de nettoyage est intelligent, dans le sens où il y a un ordre de priorité pour le nettoyage des entités et certaines sont même protégées contre le nettoyage. Ainsi, les entités qui sont référencées dans une mission en cours ne peuvent pas être nettoyées. Les objets les moins importants (une blouse d'hôpital est moins importante qu’une arme par exemple) seront enlevés en premier. Les objets non visibles seront enlevés en priorité par rapport à ceux visibles. Et ainsi de suite.

La technologie PES permettra de réapparaître exactement là où on s’est déconnecté. Cependant dans le patch 3.18, les mêmes règles qui sont en place actuellement seront utilisées.

Persistance des variables sérialisées

Actuellement, ces variables ne sont pas stockées et ne persistent pas. Avec le PES, plusieurs nouveaux éléments de jeu qui utilisent ces variables vont devenir persistants, comme l’usure des vaisseaux, le mode pour les gimbals

Crashs serveurs

L’architecture PES déplace les données des serveurs vers des bases de données centralisées au niveau des shards. Ainsi, les crashs des serveurs auront des conséquences très limitées. Par contre, cela reporte le problème sur les crashs des shards mais comme ce sont des bases de données, leur code est plus simple et plus robuste.

Les développeurs ont un plan d’action en trois étapes pour prendre en compte les crashs serveurs :

  1. A partir du patch 3.18, un mécanisme temporaire sera mis en place pour retrouver le vaisseau dans le dernier état connu, comme c’est le cas actuellement. Si cela ne fonctionne pas, il faudra faire jouer l’assurance.
  2. Dans une prochaine itération et en attendant le server meshing, le système relancera le serveur dans son état avant plantage, et le joueur sera invité à y reprendre sa place.
  3. Une fois le server meshing en place, le jeu transférera automatiquement le joueur vers un serveur disponible au sein du shard.

A noter que les crashs de serveurs n’auront pas de conséquences sur les objets posés au sol ou sur la simulation de l’univers.

Matchmaking

Le système de matchmaking a pour but d’affecter les joueurs à un serveur. Actuellement, on peut rejoindre un serveur aléatoire, un serveur avec un ami ou un groupe, ou un serveur qu’on a quitté pour cause de crash client.

Pour le patch 3.18, les développeurs n’ont pas eu les ressources nécessaires pour modifier le matchmaking. C’est l’un des systèmes qui sera modifié dans les prochaines itérations.

Shards et construction de base

Comme une entité ne peut être chargée que sur un seul shard, les développeurs cherchent encore une solution pour que les bâtiments construits par les joueurs puissent être vus sur tous les shards, quitte à réduire les interactions possibles en dehors du shard où ils sont pleinement actifs.

Refonte du cargo

La technologie de refonte du cargo (cargo refactor en anglais) toujours prévue pour le patch 3.18 est un prérequis pour le recyclage, et on a pu voir un exemple de son application dans l’ISC de cette semaine, avec les boîtes de matériaux produites dans le Reclaimer et le Vulture et rangées au Multitool.

0
B H
Wiset  - Responsable du portail MGG Star Citizen

Entre deux voyages spatiaux, je rédige des guides pour Star Citizen.
Si mes guides vous donnent envie de vous lancer, inscrivez vous en bénéficiant de mon parrainage : https://robertsspaceindustries.com/enlist?referral=STAR-TZXL-TX7X

L'actu

En Continu

11:00 Star Citizen : Clarification sur les performances
07:00 Star Citizen : Q&A sur le RSI Galaxy
07:00 Star Citizen : à la recherche d'un Community Manager francophone
21:10 Star Citizen : remise à zéro totale (full wipe) pour le patch 3.18
07:00 Inside Star Citizen : Finding the North Star
07:00 Star Citizen 3.18 Patch Watch : touches et équilibrage
20:15 Star Citizen : Présentation du RSI Galaxy
07:00 Inside Star Citizen : Galaxy Class
20:00 Star Citizen : Le C8R Pisces débarque !
17:00 Star Citizen : précisions sur la "mort douce"

Articles

recommandés

Star Citizen - CitizenCon 2952 : ce qu'on peut en retenir
Star Citizen : Letter from the Chairman – mai 2022
L'équipage Millenium Star Citizen a besoin de vous !

Guides

à découvrir

Star Citizen : Achat et location de vaisseaux
Star Citizen : Guide des commandes
Quel pack choisir sur Star Citizen ?