V Rising : Dans les coulisses du royaume des vampires construit sur 1 600 systèmes ECS

Dec 9, 2024|8:34 Min.

Découvrez comment Stunlock Studios a réalisé sa monstrueuse aventure de survie de vampire en monde ouvert sur PC et a touché encore plus de joueurs en la lançant sur PlayStation®5.

Le défi :

Lancement d'un jeu de survie Multiplayer performant et 60 joueurs

Équipe de projet :

~40

Plateformes :

PC et PlayStation 5

Lieu :

Skövde, Suède

Comment créer un jeu de survie Multiplayer à grande échelle ? V Rising propose une vision sinistre de ce genre populaire, où les joueurs deviennent des vampires dans un immense monde ouvert. Stunlock avait de grandes ambitions et s'est donné les moyens de le faire en mettant en œuvre dès le début le pile technologique orientée vers les données (DOTS) et le pipeline de rendu HDRP (HDRP) de Unity afin de créer une base stable et évolutive pour son jeu le plus complexe à ce jour.

Grâce à la DOTS, Stunlock disposait de l'architecture de code flexible dont ils avaient besoin pour gérer efficacement le développement de leur projet de plus en plus vaste, tandis que le HDRP débloquait des effets visuels haute fidélité comme Volumetric Fog qui étaient essentiels pour établir une atmosphère gothique. Avec une planification avisée et les bons outils à sa disposition, Stunlock a lancé V Rising sur PC pour élogieux critiques dès l'accès en avant-première et à nouveau à la sortie, avant de prolonger encore la durée de vie du jeu avec un portage PlayStation 5 acclamé par la critique. Le jeu s'est vendu à plus de 5 millions d'exemplaires à ce jour.

Les résultats

  • Création d'un vaste monde de jeu basé sur des serveurs s'étendant sur plus de cinq kilomètres carrés, avec huit biomes uniques
  • Diffusion et rendu de plus de 160 000 objets interagissant en temps réel
  • Gestion de 21 000 prefabs précalculés, 450 sous-scènes précalculées, 1 600 systèmes ECS et 2 700 systèmes de particules
  • Des centaines d'heures économisées à l'aide du Profiler Unity pour identifier rapidement le code sous-optimal et la création de mémoire inutile
  • Suppression de plusieurs ms de décalage d'image avec le SRP Batcher
  • a enregistré des indicateurs d'engagement élevés, avec des joueurs passant en moyenne 35 heures dans le jeu et débloquant plus de 3,4 millions de trophées PlayStationTMNetwork et de réussites Steam à ce jour
  • Mise en œuvre de fonctionnalités spécifiques à la PlayStation 5, y compris le chat vocal automatisé, la prise en charge du retour haptique de la manette sans fil DualSenseTM, les déclencheurs adaptatifs et les effets sonores de la manette, ainsi qu'un système de trophée PlayStation
Bande annonce : V Rising de Stunlock Studios

Délimitation du monde du jeu

Pour le cadre de V Rising, le continent de Vardoran, Stunlock a imaginé un monde interactif et persistant avec huit biomes distincts. Chacune serait entourée de brouillard, avec un cycle jour/nuit avec des lumières et des ombres en temps réel, qui devraient rester performantes à l'exécution pour offrir une expérience de jeu en ligne cohérente. « Nous avons décidé d'intégrer tout cela dans Unity sans aucune restriction, ce qui nous a donné une grande liberté pour créer le royaume des vampires de nos rêves », explique Fredrik Haraldsson, cofondateur du studio et programmeur système.

Les objets destructibles de V Rising en action

Évolution des opérations avec la DOTS

Stunlock suivait de près la DOTS récemment annoncée par Unity, qui présentait des solutions à de nombreux problèmes de performances qu'ils anticipaient. Bien que la technologie soit encore expérimentale, V Rising n'en est qu'à ses balbutiements et les programmeurs de Stunlock ont déjà une expérience de la conception orientée données. L'adoption précoce de cette technologie leur donnerait également l'occasion de collaborer plus étroitement avec Unity et d'obtenir un soutien pour leurs projets en échange d'une DOTS testée en production.

Enthousiasmés par le potentiel que cela pourrait révéler pour V Rising, les développeurs de Stunlock ont commencé à créer le cadre technique du projet dans Unity 2019.3, tandis que le reste de l'équipe a poursuivi le prototypage à l'aide du moteur interne qu'ils avaient précédemment utilisé pour créer Battlerite afin de poursuivre le développement.

V Rising Creator Spotlight

Écraser les draineurs performants

La mise en place de l'architecture de projet de V Rising à l'aide de la DOTS et de l'ECS a pris du temps, mais les avantages sont rapidement apparus. « Grâce à la DOTS, nous avons créé une fondation capable de gérer beaucoup plus de contenu et de tirer efficacement parti des entités et des ressources de streaming », explique Rasmus Höök, cofondateur et directeur technique chez Stunlock Studios. Les sous-scènes et le streaming de ressources sont utilisés pour charger et décharger les éléments de manière dynamique lors de l'exécution en fonction de ce que le joueur peut voir dans le jeu. Cette technique rend l'exploration du monde massif de V Rising beaucoup plus performante pour les joueurs.

Construire V Rising avec ECS signifiait également tirer parti du précalcul de scènes pour gérer le contenu du jeu. Les entités étant incompatibles avec le système de scènes de base de Unity, elles ne peuvent pas être directement incluses dans les scènes Unity. Le baking permet plutôt de charger des entités à partir de scènes, en convertissant leurs composants GameObject et MonoBehaviour en entités et composants ECS pouvant être chargés lors de l'exécution.

Rasmus soutient que cette séparation claire des données d'exécution et des données de l'éditeur est l'un des plus grands avantages de travailler avec la DOTS et les entités. « En travaillant dans l'éditeur, nous créons des prefabs de création, qui sont essentiellement des GameObjects standard avec MonoBehaviors. Cependant, ces prefabs sont uniquement destinés à l'édition et ne sont pas directement utilisés dans le jeu lui-même », explique-t-il. « Au lieu de cela, ils passent par un processus appelé baking où ils sont convertis en composants d'exécution. Puisque les prefabs de création ne sont utilisés que dans l'éditeur, nous pouvons leur ajouter des fonctionnalités et des données pour améliorer le flux de production sans craindre d'encombrer le jeu lui-même. »

L'utilisation de prefabs de création de cette manière facilite la mise à jour de V Rising. Plutôt que de peaufiner un élément d'un système et de demander aux artistes et concepteurs de mettre à jour des milliers de prefabs associés, les programmeurs de Stunlock peuvent simplement modifier le code de précalcul pour extraire les données requises par le système mis à jour. « Cela aide à la maintenance, mais aussi aux performances », explique Rasmus. « Dans le prefab, il peut y avoir des données uniquement de l'Éditeur, qui ne sont pas converties en composant d'exécution. Vous évitez donc toute cette surcharge. »

Surmonter les obstacles

Comme Stunlock l'avait prévu, travailler avec la technologie expérimentale comporte quelques obstacles. « Beaucoup des problèmes que nous avons rencontrés au début étaient auto-infligés. Beaucoup des entités que nous avons créées étaient trop grandes, elles avaient beaucoup de composants, ce qui signifie que nous ne pouvons pas assembler autant d'entités que nous le voudrions », explique Rasmus. « Pour résoudre ce problème, nous les avons réduits et augmenté la taille des pièces, ce qui nous a permis d'améliorer considérablement la situation. Il n'y a pas grand-chose à faire quand on a déjà créé le jeu, à part apprendre de l'expérience. »

Le fait de travailler avec la DOTS constituant une rupture significative par rapport aux paradigmes de développement Unity antérieurs et plus complexes, Stunlock a intégré progressivement l'équipe. Les programmeurs se sont vu assigner de petites tâches de rédaction de composants simples et de création de code pour s'habituer au nouveau processus de création. Rapidement, ils ont utilisé des composants DOTS tels que le système de tâches C# et des outils pour accélérer le développement et améliorer l'assurance qualité au sein de l'équipe.

« À l'aide du système de tâches C#, nous avons conçu des outils capables de numériser les maillages dans le projet pour détecter les doublons de géométrie ou de calculer la densité de polygones d'un maillage pour identifier les ressources qui pourraient avoir besoin de réduire la quantité de triangles de sous-pixels » explique Filippa Arvidsson, infographiste technique.

« L'approche orientée vers les données de la DOTS est ma nouvelle façon préférée de travailler avec le code dans Unity, car je la trouve très intuitive une fois que vous avez surmonté l'obstacle initial consistant à passer de GameObjects aux systèmes. Et les bénéfices en termes de performances sont aussi un gros plus, bien sûr. »

Pour les membres moins spécialisés de l'équipe technique, Stunlock a implémenté des flux de production en plus de la base de code DOTS pour faciliter la contribution au projet. Un flux de production permet la création de composants prefabs qui génèrent et écoutent les événements prédéfinis, comme les effets qui se produisent quand un joueur fraye ou les buffs qui sont appliqués lorsque certaines conditions sont remplies. Grâce à ce système, les concepteurs peuvent créer des éléments d'expérience de jeu modulaires et gérables sans connaissances techniques approfondies de la DOTS.

Le second flux de production, conçu principalement pour l'implémentation de fonctionnalités, fait travailler les concepteurs dans une couche de programmation de scripts avec une API contrainte. Cela leur permet de créer leurs propres scripts qui peuvent interagir avec les composants et s'inscrire à différents événements, accélérant ainsi la production.

Libérer les graphismes et l'expérience de jeu avec HDRP

V Rising est conçu en HDRP, qui a permis d'obtenir des graphismes plus fidèles et qui ont façonné l'expérience du joueur de manière intéressante.

« Volumetric Fog est absolument l'effet visuel qui a le plus influencé le jeu », explique Rasmus. « Quand nos artistes ont su que nous utiliserions le HDRP, ils ont adapté le style autour de cela, donc HDRP influencé l'aspect général du jeu. » En plus de créer une atmosphère et d'ajouter une saveur visuelle aux sorts et aux capacités, le brouillard volumétrique est utilisé comme mécanisme de visibilité directe, masquant les zones que le joueur ne peut pas voir.

V Rising utilise le brouillard volumétrique comme mécanisme de visibilité directe (LoS) pour le joueur

Stunlock utilise Physically Based Sky du HDRP pour gérer le cycle jour/nuit de V Rising, qui est fourni avec des mécanismes de jeu indispensables pour bien faire. Pendant la journée, le joueur subit des dégâts s'il s'attarde à la lumière du soleil et doit se réfugier dans l'ombre pour se déplacer à travers le monde. Les zones sûres et nocives devaient être clairement définies pour que ce mécanisme ne devienne pas frustrant.

« Le rendu en temps réel est très important, à la fois pour créer de belles transitions entre les différents moments de la journée, mais aussi pour informer visuellement le joueur de l'endroit où le soleil va les brûler », explique Filippa. « Le HDRP fonctionnait très bien pour cela, en permettant à nos artistes de configurer différents profils de volume pour différents moments de la journée et pour différentes zones, que nous pouvions mélanger en douceur. »

Stunlock a tiré pleinement parti de la possibilité de scripter du HDRP pour créer des centaines d'effets visuels personnalisés, de shaders et de passes de post-traitement. Filippa se souvient d'un effet, créé comme passe de post-traitement personnalisée, qui assombrit les objets proches de la caméra. Il apparaît tout au long du jeu et sert à créer l'ambiance dans V Rising dès le début.

« Par exemple, dans la crypte de départ, il y a ces hauts piliers qui dominent le vampire. Le passe de post-traitement les rend d'autant plus foncés qu'ils sont proches de la caméra. » « Cela crée immédiatement cette atmosphère très troublante, qui ajoute beaucoup. »

Stunlock a également personnalisé le code source du HDRP selon ses besoins, en éliminant les fonctionnalités et les calculs redondants pour améliorer les performances. Ils ont étendu les profils de volume pour conduire les composants au-delà des effets HDRP typiques. Cela a permis aux développeurs de jeux moins techniques tels que les artistes et les concepteurs de configurer facilement des éléments tels que la météo, la musique et les effets sonores dans différentes scènes indépendamment dans l'éditeur.

« C'était vraiment puissant de pouvoir exposer cela aux artistes », explique Filippa. « De cette façon, ils ont pu faire en sorte que chaque biome ressemble exactement à ce qu'ils souhaitaient à chaque moment de la journée, avec un minimum d'assistance technique. C'est sûr que ça nous a fait gagner beaucoup de temps. »

À la recherche de sang neuf sur PlayStation 5

V Rising est le premier jeu sur console de Stunlock, et quand ils ont été approchés par Sony, ils ont saisi l'occasion pour relever un nouveau défi et atteindre potentiellement des millions de joueurs supplémentaires sur PlayStation 5.

Les programmeurs ont commencé par mettre à niveau les versions Unity pour tirer parti des améliorations supplémentaires apportées aux performances d’ECS 1.0. Le thread principal de compilation du PC ayant été un facteur limitant, ils ont utilisé le système de tâches C# pour distribuer le travail aux autres threads. Un planning sûr les a aidés à créer facilement des emplois sur le thread principal qui n'interféraient pas avec les autres tâches. « Nous avons réalisé la majorité de nos développements avant Entities 1.0, et maintenant, après la mise à niveau, nous utilisons beaucoup la publication pour voir ce qui se passe, ce qui nous a également été très utile », explique Rasmus.

En ce qui concerne les graphismes, Filippa a noté que le traitement par lots avait un impact important sur les performances de rendu PlayStation 5, ils ont donc conçu des outils en HDRP pour un flux de production UDIM modifié qui leur permet de combiner des sous-maillages avec différents matériaux pour réduire les draw calls. « Cela nous a probablement permis d'économiser plusieurs ms en ce qui concerne le processeur, car les données de rendu pouvaient être envoyées au GPU de manière beaucoup plus efficace », dit-elle.

Prise en charge de la nuit

Entre la sortie 1.0 sur PC, le lancement PlayStation 5 et un récent partenariat avec la légendaire franchise Castlevania de Konami Digital Entertainment (KONAMI), V Rising a connu une montée en puissance. C'est un exploit technique exceptionnel de la part d'une petite équipe prête à expérimenter audacieusement les nouvelles technologies pour créer des expériences captivantes et uniques pour les joueurs.

Grâce à la DOTS, Stunlock a pu ajouter « bien plus de tout » à V Rising avec un minimum de problèmes de performances, tandis que le HDRP les a aidés à créer des effets visuels obsédants pour une expérience de jeu plus immersive et attrayante. Aujourd'hui, V Rising est l'un des plus grands jeux basés sur la DOTS du marché en fonction des lignes de code, et Unity exploite les informations de la production pour rendre l'éditeur encore plus performant et stable pour les créateurs de jeux ambitieux.

« Dès le début, nous n'avions pas l'intention d'avoir autant d'éléments dynamiques et destructibles. C'était juste quelque chose qui s'est produit parce que nous le pouvions », explique Rasmus. « C'est un témoignage de la qualité de l'ECS et des bénéfices significatifs qu'elle peut apporter en termes de performances. Sans la DOTS, la V Rising que nous connaissons aujourd'hui aurait été bien différente. »

Créez des jeux ambitieux avec Unity

Les performances de rendu améliorées et l'itération Multiplayer plus rapide de Unity 6 peuvent vous aider à proposer des jeux visuellement époustouflants et uniques à un plus grand nombre de joueurs sur un plus grand nombre d'appareils. Essayez-le dès aujourd'hui ou trouvez avec Unity Pro de nouveaux publics sur plus de 20 plateformes.

©2025 Sony Interactive Entertainment LLC. « PlayStation Family Mark », « PlayStation », « PS5 logo », « PS5 », « PS4 logo », « PS4 », « PlayStation Shapes Logo » et « Play Has No Limits » sont des marques déposées ou des marques commerciales de Sony Interactive Entertainment Inc.