Le navigateur est discrètement devenu une véritable cible pour les moteurs de jeu
Par Oleg Sidorkin, CTO de Cinevva
Il y a deux mois, nous écrivions que le rendu dans le navigateur venait de connaître son meilleur mois, et nous pensions qu'il s'agissait d'un pic. Ce n'était pas le cas. C'était le début d'une tendance, et cette tendance va dans une direction claire. Le navigateur devient un environnement dans lequel on déploie un véritable jeu, et non plus un environnement vers lequel on porte un petit jeu.
Ce qui est arrivé depuis mars
Passons la liste en revue. Babylon.js 9 a introduit l'éclairage en clusters pour des milliers de lumières dynamiques, l'éclairage volumétrique et une refonte complète du Gaussian splatting. Three.js r184 a ajouté HTMLTexture, qui restitue un DOM interactif en direct sous forme de texture sur une surface 3D. PlayCanvas v2.17 a apporté le Gaussian splatting piloté par le GPU sur WebGPU, avec des harmoniques sphériques en f16 ainsi qu'un tri et une élimination hors champ effectués par le GPU. La version bêta de Godot 4.7 a ajouté des exports web wasm64 qui lèvent l'ancienne limite de mémoire de 4 Go, ainsi qu'une véritable sortie HDR et des lumières surfaciques. Chrome 146 a introduit un mode de compatibilité WebGPU fonctionnant sur OpenGL ES 3.1 et Direct3D 11, tandis que WebGPU lui-même a atteint le statut de recommandation candidate du W3C. N'importe laquelle de ces avancées aurait suffi à rendre un trimestre remarquable. Elles sont toutes arrivées en huit semaines environ.
« Suffisant pour une démo » est devenu « suffisant pour être déployé »
Les fonctionnalités qui viennent d'arriver ne sont pas des gadgets. L'éclairage en clusters permet d'éclairer une scène avec des milliers de lumières dynamiques sans faire s'effondrer la fréquence d'images. Le Gaussian splatting permet d'intégrer dans un jeu des environnements photoréalistes capturés, tout en conservant une fréquence d'images interactive. Le tri et l'élimination hors champ pilotés par le GPU font la différence entre une démo technique qui saccade et un jeu qui tient les 60 images par seconde. Ce sont les techniques qu'utilisent les moteurs natifs pour livrer des jeux AAA, et elles fonctionnent désormais dans un onglet. Le travail sur le mode de compatibilité est tout aussi important dans l'autre sens. Il permet à WebGPU de prendre en charge le matériel bon marché et plus ancien que possèdent réellement la plupart des joueurs, et pas seulement les machines de développement équipées d'un GPU haut de gamme.
C'est sur cette base que nous construisons, à la main
Nous ne tirons pas ces conclusions d'un communiqué de presse. Ces derniers temps, nous avons construit un monde ouvert fonctionnant dans le navigateur au fil de plus de soixante expérimentations exploratoires, depuis de premières versions rudimentaires du terrain jusqu'aux marching cubes sur GPU et au LOD en streaming. Nous avons retracé ce parcours dans une série complète et dans un article plus approfondi sur la méthodologie. Presque toutes les fonctionnalités ci-dessus correspondent à un problème auquel nous nous sommes confrontés de plein fouet. Quand l'éclairage en clusters arrive dans un moteur web grand public, c'est une partie de notre propre code que nous pouvons supprimer.
L'objection est morte, mais pas l'habitude
« On ne peut pas créer un vrai jeu dans un navigateur » a longtemps été vrai, puis a cessé de l'être pendant que l'essentiel de l'industrie regardait ailleurs, du côté de l'IA. Le plafond technique qui justifiait de déployer d'abord un client natif et de remettre une éventuelle version web à jamais a disparu. Il ne reste que l'habitude. Les moteurs, les studios et les chaînes d'outils reposent encore sur l'idée que le navigateur est une cible secondaire.
Cette idée reçue représente l'opportunité. Nous avons construit Cinevva en pariant que le navigateur deviendrait l'environnement par défaut pour déployer et découvrir des jeux, plutôt qu'une solution de repli. Ces deux derniers mois, la pile de rendu vient de donner raison à ce pari. Les studios qui feront évoluer leur vision en premier bénéficieront d'un canal de distribution sans aucune friction d'installation, avec un public à un clic de distance. Ceux qui attendront finiront par y porter leurs jeux, une fois que tous les autres y seront déjà installés.
À lire également :
- Le rendu dans le navigateur vient de connaître son meilleur mois — le pic que nous pensions exceptionnel
- Sortie de Babylon.js 9 — éclairage en clusters et Gaussian splatting
- Three.js r184 introduit HTMLTexture — le DOM en direct comme surface 3D
- PlayCanvas v2.17 ajoute le Gaussian splatting piloté par le GPU — le splatting WebGPU à grande échelle
- Godot 4.7 bêta — sortie HDR, lumières surfaciques et exports web wasm64
- Chrome 146 ajoute un mode de compatibilité WebGPU — WebGPU pour les GPU plus anciens
- Ce qu'il faut pour construire un monde ouvert dans un navigateur — notre propre parcours