Ci dessous un résumé de la vidéo, merci à @EtherealFox sur le Spectrum pour avoir déblayé le travail !
Qu’est-ce que le PES ?
On prend le graphe de scène complet du moteur, qui est principalement stocké dans la mémoire du serveur, et on le pousse vers une base de données. Il est possible de le transmettre en continu au moteur de jeu et à tous les serveurs, ce qui donne un niveau de persistance.
Alors que le PES sera la base des futurs systèmes, pour la version 3.18, l’accent est mis sur le maintien et la garantie que ce qui a été fait auparavant fonctionne avec cette nouvelle fondation.
Quelle est la différence entre serveur et shard ?
Il n’y a pas de différence entre les deux pour le moment, car nous faisons tourner un seul serveur dans un seul shard. Avec le maillage de serveurs, c’est lorsque nous avons plusieurs serveurs dans un seul shard.
En étant sur un seul serveur, et en faisant persister le serveur, la chose que les joueurs verront le plus est que sur un seul serveur, au fil du temps, vous verrez les choses persister entre les redémarrages. De même, lorsque vous avez un vaisseau avec des objets à l’intérieur, et que vous stockez ce vaisseau dans votre zone d’atterrissage. Le vaisseau continuera d’avoir tous les objets à l’intérieur lorsque vous le ressortirez.
Comment pouvons-nous retourner sur le même serveur que celui où se trouvent nos objets ?
Le PES est par serveur, mais vous pouvez prendre des articles de la base de données du serveur dans la base de données globale, ce qui signifie que vos articles seront transportés sur n’importe quel serveur où vous allez.
Pour la version 3.18, nous n’aborderons pas les changements de matchmaking, car ils feront partie du travail de maillage des serveurs. Pour la première version du PES, lorsque vous démarrez votre client, vous êtes mis sur un serveur aléatoire ou vous rejoignez des amis. Si vous plantez, vous avez environ 10 minutes pour revenir dans le même serveur grâce au système de ré-accueil.
Le PES permet-il aux entités de persister entre tous les serveurs ?
En fonction du type et de l’objet, vous pouvez le ranger et l’amener d’un serveur à l’autre. Si vous avez un pistolet et que vous le laissez sur le sol, si vous partez et rejoignez un autre serveur plus tard, cette arme persiste dans le serveur précédent.
Les objets non stockés seront conservés sur le serveur où ils ont été placés.
Les autres joueurs pourront-ils retrouver les tasses à café et les armes abandonnées si le joueur d’origine n’est pas en ligne ?
Si vous prenez une tasse à café et que vous la laissez tomber sur le sol, elle restera là pour toujours, sur ce serveur, sans que le joueur d’origine soit présent.
Les objets placés dans votre vaisseau seront stockés avec votre vaisseau.
Y a-t-il une réplication dans la version 3.18 ?
Non. Si vous déposez un objet sur un serveur, il ne sera pas répliqué sur un autre serveur.
Il n’y a pas de plan de réplication inter-serveurs. Mais il y a des discussions sur la façon dont nous pourrions le faire pour des choses spécifiques, comme les bases de joueurs.
Si un serveur a une 30k, comment un joueur peut-il retrouver son ancien vaisseau ?
Premièrement, les 30ks n’arrivent jamais ! 🙂
Commençons par le début. Lorsque vous demandez un vaisseau à une plate-forme d’atterrissage, cela détache le vaisseau de l’inventaire global vers le moteur de jeu. Ensuite, une 30k se produit, lorsque vous revenez dans le jeu, ce vaisseau est toujours dans ce shard de ce serveur. Si vous êtes envoyé dans un autre serveur, ce qui est probable puisque le serveur original est hors service, vous pouvez alors faire un claim d’assurance pour le récupérer.
Nous étudions actuellement un mécanisme de récupération qui remettra automatiquement le vaisseau dans votre inventaire global. Ainsi, dans le cas d’une 30k, votre vaisseau est rangé, dans le même état qu’il était au moment de la 30k, tout comme le joueur.
Dans la prochaine version, si le serveur 30k, ce serveur existe toujours, et nous pourrions alors redémarrer un nouveau serveur et charger ces informations originales du serveur et tout recharger exactement comme il était. Et le matchmaking donnera la priorité au joueur qui retourne dans ce serveur.
L’objectif final, une fois que tout est terminé, est de faire en sorte que, lorsqu’un serveur est bloqué, vous ne le remarquiez pas, car un nouveau serveur sera instantanément mis en place pour remplacer celui qui a été bloqué, afin que vous puissiez continuer à jouer sans aucune interférence.
Pourquoi pas de matchmaking maintenant ?
Il y a toujours une contrainte de ressources. Mais il y a aussi la gestion du risque. La version 3.18 représente un risque énorme car nous reconstruisons la base de données, qui a été développée pendant 5 ans, et nous la remplaçons par une toute nouvelle technologie. Nous essayons donc de réduire le risque en introduisant ces changements de manière itérative, sans faire de changements massifs qui pourraient créer une pile brûlante de problèmes.
Le refactor de la cargaison.
Le salvage nécessite le cargo refactor et peut être vu avec le déplacement des boîtes dans le reclaimer dans le dernier ISC.
Le cargo refactor est également utilisé par le PES, et fonctionne sur tous les autres systèmes pour que tout fonctionne.
Combat Logging : comment le PES va-t-il aider ?
Pas entièrement lié au PES, mais je comprends le lien.
Il y a déjà eu des changements dans le jeu liés au combat logging. Dans la version 3.17, les vaisseaux restent dans le monde du jeu avant d’être détruits. Le PES ne va pas résoudre ce problème, car il est régi par les règles du jeu.
Ce sont les règles du jeu qui décident de ce qui est conservé. Et la vraie solution serait un minuteur de déconnexion.
Le PES me permettra-t-il de me déconnecter là où je me suis arrêté ?
Pour la version 3.18, nous conserverons le système de déconnexion actuel. Cependant, le PES permet ce genre de chose, en permettant au joueur de se reconnecter là où il s’est déconnecté. Mais il y a beaucoup de considérations de conception qui doivent être prises en compte et ensuite des systèmes de code de jeu pour gérer cela correctement.
Il y a aussi un élément de surprise, le PES rend toutes les variables sérialisées persistantes, ce qui signifie que beaucoup d’éléments de jeu, comme l’usure, vont persister.
Gestion de la densité – Nettoyage.
Avec l’ancien système, nous avions une gestion de la durée de vie qui supprimait les entités lorsqu’elles atteignaient un certain plafond. Les joueurs ne pouvaient pas créer plus de 3 vaisseaux.
Pour le PES, nous avons décidé de rendre cela plus agréable pour le joueur et de le faire fonctionner pour le PES et le Server Meshing. Nous avons développé un système appelé Gestion de la densité. Nous examinons les zones et le nombre d’éléments dans une zone. Si une zone atteint la limite du coût, nous commençons à supprimer des éléments. Nous supprimons ensuite des éléments en fonction de leur importance (vaisseau de joueur ou tasse à café) et des éléments les plus anciens.
L’approche que nous adoptons est que nous faisons le nettoyage lorsque la zone est diffusée hors de la vue du joueur. Et nous n’utilisons les méthodes plus sérieuses que lorsque les choses ne sont pas diffusées et que le coût pour le serveur devient trop élevé.
Si une entité spécifique est référencée par une mission ou un joueur, cela empêchera la suppression de ces éléments.
Avec les éléments côté serveur, nous pouvons garder toutes les entités dans le serveur et si elles ne sont pas diffusées, alors il n’y a pas de coût pour le serveur.
Le PES permettra-t-il aux états des vaisseaux de persister ?
Cela dépend du code du jeu, ce qui n’est pas quelque chose que nous contrôlons, mais nous permettons que cela existe.
Je crois que les paramètres des gimbals vont persister, mais je ne suis pas sûr pour les MFDs et les angles de balayage, tout ce qui a une variable sérialisée devrait persister. Mais tout cela peut être modifié, et si une équipe peut utiliser quelque chose pour l’améliorer, alors elle le fera probablement.
Comment vous sentez-vous ?
Super excité, nous avons travaillé sur tout cela pendant presque 2 ans. Et maintenant, nous sommes enfin en phase de développement du jeu et nous voyons tout se mettre en place, avec le code modifié pour l’utiliser. C’est un grand pas en avant vers le maillage des serveurs, qui nous permet de séparer l’état et la simulation. En même temps, c’est un énorme défi qui doit être testé.
Quelle est la chose que vous voulez que tout le monde sache et comprenne à propos du PES et de votre travail ?
L’appréciation et la compréhension du fait qu’avec la version 3.18, on peut avoir l’impression que le jeu n’est pas très différent des versions précédentes. Avec les changements structurels apportés au cœur du jeu, tout ce que vous faites dans le jeu passe par une technologie et des fonctionnalités entièrement nouvelles. Tout cela est fait pour évoluer, fonctionner dans le cloud, avoir des services sans état et s’étendre horizontalement.
Nous sommes enfin en train d’en faire une véritable configuration “cloud-native” qui peut s’adapter à la vision de Chris. La gestion et le stockage de l’univers de jeu entier représentent une énorme quantité de données.