S'adapter au rythme effréné d'un jeu VR Multiplayer en direct avec PIGIAMA KASAMA

Fondée en 2022, PIGIAMA KASAMA est une société de production de jeux vidéo qui crée des jeux pour ses propres propriétés intellectuelles, telles que Kasama : The Awakening, et propose des services de développement de jeux à d'autres marques.
Leur dernier titre, PICKABOOM, est un jeu VR social nouvelle génération axé sur l'exploration, les interactions chaotiques et la coopération Multiplayer en temps réel. Les joueurs descendent dans des réseaux de grottes imprévisibles, survivent à des catastrophes naturelles absurdes et créent leurs propres moments de comédie, de tension et de triomphe.
Nous avons discuté avec les cofondateurs, Matteo Fanchin et Paride Stella, de leur approche face à l'instabilité du réseau, aux échecs de reconnexion, aux baisses de performances et aux délais de traitement rapides du contenu, tout en développant leur premier jeu VR Multiplayer en direct.
Quel était l'objectif principal de PICKABOOM?
Paride Stella : Notre objectif principal était de créer un jeu VR social très dynamique, vivant, imprévisible et rejouable à l'infini, un monde où les joueurs font équipe, survivent ensemble et génèrent naturellement le genre de moments que les gens ont envie de partager.
En tant que jeu en ligne, PICKABOOM doit répondre à des exigences en constante évolution : nous publions des mises à jour chaque semaine, corrigeons en permanence les problèmes signalés par la communauté et ajoutons du nouveau contenu tout en maintenant des performances solides. Cela nous a obligés à concevoir des systèmes évolutifs, à synchroniser la physique entre plusieurs joueurs et à maintenir les performances sur les casques autonomes.
Nous voulions créer une expérience de survie coopérative chaotique mêlée à la culture créative, où l'environnement, les catastrophes et les interactions physiques surprennent constamment les joueurs et les poussent à collaborer.

Quel a été le plus grand défi technique rencontré lors du développement de PICKABOOM?
Matteo Fanchin : PICKABOOM est le premier titre Multiplayer de notre studio, et il nous a poussés à faire face à l'instabilité du réseau, aux échecs de reconnexion, aux baisses de performances lors d'événements physiques chaotiques et à la pression liée à la publication de mises à jour hebdomadaires tout en améliorant continuellement la qualité du gameplay.

Quelles mesures l'équipe a-t-elle prises pour surmonter cette difficulté ?
MF : Nous avons divisé le problème en plusieurs étapes : création d'un pipeline de contenu en direct et mise en œuvre d'un profilage continu. Pour le pipeline de contenu en direct, nous avons modularisé les outils et les ennemis, permis l'ajout rapide de nouveau contenu, veillé à ce que les mises à jour n'affectent pas les versions précédentes et ajusté le calendrier hebdomadaire lorsque cela était nécessaire.
Pour un profilage continu, nous avons effectué des tests de performance réguliers, testé la charge Multiplayer avec de vrais joueurs de la communauté et donné la priorité à l'optimisation spécifique à la VR pour l'utilisation de la mémoire, le ramasse-miettes et les pics GPU. Cette approche nous a permis de fournir des mises à jour hebdomadaires stables sans ralentir le développement.

Quelles nouvelles fonctionnalités et mises à jour de Unity 6 ont permis de surmonter les défis techniques auxquels l'équipe était confrontée ?
P.-S. : Lors de la mise à l'échelle du jeu, nous avons rationalisé le temps d'itération et amélioré les performances grâce aux fonctionnalités et mises à jour suivantes :
Temps de construction plus rapides : Un jeu en direct nécessite des compilations fréquentes. Compte tenu de la nature Multiplayer du jeu (jusqu'à 10 joueurs simultanément), il était essentiel de le tester avec des équipes internes et externes. Des temps de compilation plus rapides ont permis de gagner un temps considérable en matière de développement.
Améliorations des performances du pipeline de rendu universel (URP) : Le développement pour la VR est toujours difficile en raison des limitations matérielles. Les améliorations apportées à l'URP ont facilité le développement, car les gains de performance étaient tangibles. Nous avons ajusté l'éclairage, les ombres et les matériaux pour améliorer la clarté et la lisibilité dans les environnements chaotiques.
Améliorations apportées au Shader Graph : Nous avons largement utilisé Shader Graph pour améliorer la vitesse de création des ressources, les effets procéduraux, la personnalisation des personnages et l'optimisation.
Nous avons développé des shaders de carte personnalisés pour peindre de manière procédurale des matériaux complexes avec un coût de performance minimal. Les shaders peuvent générer plusieurs biomes visuels. Ils créent des rendus radicalement différents tout en utilisant très peu de ressources et en conservant un faible impact sur le GPU et la mémoire.
Shader Graph a également joué un rôle déterminant dans la création de notre système de matériaux pour avatars. Grâce à un pipeline personnalisé, un seul matériau peut être partagé entre tous les personnages sans avoir recours à des textures, tout en permettant aux joueurs de personnaliser presque tous les éléments de leur avatar, jusque dans les moindres détails, comme la couleur des ongles. Cette approche garantit des performances maximales, même lorsque de nombreux personnages et accessoires sont affichés simultanément.

Améliorations des performances de Unity Physics : Unity Physicsgère toutes les interactions, y compris les lancers, les saisies, les réactions des ennemis et les catastrophes. Nous avons optimisé les paramètres Rigidbody afin qu'ils restent suffisamment déterministes pour le mode Multiplayer.
Améliorations apportées au système audio Unity : Le système Unity Audio a été utilisé pour les repères de position, les voix des joueurs, les ennemis et les explosions, aidant ainsi les joueurs à se coordonner et à communiquer en temps réel. Ces améliorations ont permis d'obtenir des repères sonores spatiaux clairs, même dans les moments chaotiques.
Stabilité des adresses Addressables : Nous avons utilisé Addressables pour prendre en charge les mises à jour en direct des personnages, des objets et des accessoires, garantissant ainsi une flexibilité maximale et permettant une évolutivité à long terme pour le projet.

Comment l'équipe a-t-elle mis en œuvre les effets optimisés pour les GPU ?
P.-S. : Nous avons implémenté des effets optimisés pour le GPU en utilisant d'abord l'instanciation GPU pour la végétation et les gemmes. Cela a joué un rôle majeur dans la réduction de l'impact des effets spéciaux et des particules sur les performances. Nous avons ensuite optimisé chaque shader afin qu'il reste aussi léger que possible, ne contenant que la logique strictement nécessaire à son objectif.
Nous avons également optimisé la géométrie afin de réduire au maximum le nombre de polygones et d'appels de dessin. Notre système de grottes complexe est extrêmement léger, ce qui permet un fonctionnement fluide sur du matériel VR autonome. De larges sections de la carte PICKABOOM peuvent être prototypées, testées et déployées en moins de deux jours ouvrables grâce à notre éditeur de carte développé sur mesure.
Enfin, nous avons réduit les coûts d'éclairage.Le style visuel du jeu a été conçu pour réduire presque entièrement l'utilisation de l'éclairage en temps réel. Les lumières en temps réel ne sont utilisées qu'en cas d'absolue nécessité, par exemple pour certains effets spéciaux ou pour la torche du joueur. Notre éditeur de cartes personnalisé comprend un système de sondes lumineuses adaptatives spécialement conçu pour les environnements souterrains, ce qui nous permet d'obtenir un éclairage stable et réaliste à un coût de performance réduit.
Nous avons évalué chaque élément de cette approche pour obtenir plus de 60 FPS sur Quest 3 et Quest 3S.

Quels sont vos objectifs en matière de flux de contenu ?
MF : Nous publions chaque semaine de nouvelles mises à jour, comprenant de nouveaux objets, de nouveaux mini-jeux, des améliorations en matière de stabilité et des fonctionnalités demandées par les joueurs. Nous planifions deux à trois semaines à l'avance, mais restons flexibles en fonction des commentaires des joueurs et des rapports d'erreurs. Nous sommes en mesure de modifier très rapidement le contenu grâce à l'utilisation de contenu modulaire, d'approches de prototypage rapide et d'Addressables.
Quels problèmes liés aux performances l'équipe a-t-elle rencontrés ?
P.-S. : Nous avons été confrontés à des pics physiques, des explosions de Rigidbody, des fluctuations du réseau et des problèmes de charge GPU pendant le gameplay catastrophe. Nous avons relevé ces défis en simplifiant la couche physique, en optimisant les collisionneurs, en utilisant l'instanciation GPU et des shaders moins coûteux, en améliorant la fréquence de synchronisation et en supprimant les mises à jour inutiles des objets.
Le profilateur Unity et le débogueur d'images ont été très utiles. Nous avons également utilisé Deep Profiler pour identifier les problèmes liés au ramasse-miettes, ainsi qu'Android Logcat pour les diagnostics d'exécution.

Quelles sont les étapes importantes dont vous êtes le plus fier ?
MF : Tout d'abord, nous sommes ravis d'avoir atteint une fréquence stable de plus de 60 FPS sur Quest 3 et Quest 3S. Nous sommes également fiers de prendre en charge des centaines d'objets physiques en réseau sans aucune perte de performances et de maintenir un nombre nul de bugs « bloquants » lors des mises à jour hebdomadaires. Enfin, il est formidable de disposer d'un système de caméras capable de capturer des images de haute qualité sans perte d'images.
Quel conseil donneriez-vous à un développeur qui souhaite faire évoluer son jeu VR ?
P.-S. : Mon conseil serait de créer rapidement un prototype et de le perfectionner par la suite. Il est également important de conserver une architecture Multiplayer simple avant la mise à l'échelle et de procéder à un profilage constant.
MF : Il est essentiel de créer du contenu sous forme de modules et de privilégier la stabilité de la structure plutôt que les éléments visuels. Je recommanderais également de tester chaque semaine avec de vrais joueurs et de développer des outils dès le début.
Pour en savoir plus sur les projets Made with Unity, consultez la page Ressources.
