Skip to content

Guide de la série sur les mondes ouverts dans le navigateur

Par Oleg Sidorkin, CTO et cofondateur de Cinevva

Cette page est le point de navigation central de la série complète.

Si vous êtes arrivé ici depuis une partie prise au hasard, commencez par cette page.

Mise à jour de mars 2026 : nous avons ajouté dans la Partie 12 une vérification externe de l’implémentation, tirée des journaux de développement de Vuntra City, et enrichi le guide technique des mondes ouverts dans le navigateur avec les mêmes enseignements.

Mise à jour d’avril 2026 : les Parties 13 et 14 couvrent la sculpture du terrain (Spikes 25 à 27) ainsi que la couche visuelle et ludique : texturation multi-matériaux, végétation instanciée et contrôleur de personnage avec collisions HM+SDF (Spikes 28 à 30).

Mise à jour de mai 2026 : la série a atteint 29 parties. Les Parties 15 à 29 couvrent le long milieu du développement : terrain multijoueur et eau, refactorisation de la structure du code, animations et dispersion assistée par IA, imposteurs et parallaxe, le tampon de visibilité qui n’a pas été rentable, nuages et culling de meshlets, avatars regroupés en lots et chat vocal de proximité, persistance du monde et vent sur GPU, personnages universels, trois approches de l’eau, île procédurale, herbe et occlusion, ainsi qu’un contrôleur de personnage interchangeable capable de piloter n’importe quel corps (Spikes 31 à 60).

Mise à jour de juin 2026 : la Partie 30 ajoute une caméra tenant compte des collisions, avec une perche à ressort, un contrat de collision interchangeable et une sonde de distance signée qui empêche la vue de traverser les surplombs et les plafonds des grottes, et pas seulement les collines.

Ce que signifie « spike » dans cette série

Un spike est une expérience courte et ciblée.

Chaque spike met à l’épreuve une question risquée. Nous limitons son périmètre, mesurons ce qui compte et décidons de la prochaine étape. Considérez-le comme un outil d’apprentissage, pas comme une fonctionnalité finalisée.

Dans ce projet, les spikes sont principalement des pages autonomes sous /spikes/* que vous pouvez exécuter en direct.

Lire la série dans l’ordre

  1. Partie 1 : Nous avons commencé par essayer de tout casser
  2. Partie 2 : La physique dans un worker et la crainte de la latence des commandes
  3. Partie 3 : Les spikes peu spectaculaires qui nous ont sauvés
  4. Partie 4 : Le streaming avant les terrains sophistiqués
  5. Partie 5 : Budgétiser les effets visuels
  6. Partie 6 : Les clipmaps ont changé la donne
  7. Partie 7 : Marching cubes et les premières vraies grottes
  8. Partie 8 : Intégrer sans perdre notre référence de base
  9. Partie 9 : Transvoxel a commencé par une ossature
  10. Partie 10 : Le chaos des jointures et le combat de boss dans les angles
  11. Partie 11 : Un mode défini par des règles, pas codé en dur
  12. Partie 12 : Anneaux, brume céleste et ce que nous referions
  13. Partie 13 : La sculpture du terrain et la mort de la fonction mathématique
  14. Partie 14 : Le monde prend vie
  15. Partie 15 : Remplacer la base, puis la synchroniser
  16. Partie 16 : Une structure adaptée à un monde qui ne cesse de grandir
  17. Partie 17 : Des animations sans retargeting et une recherche de ressources en direct
  18. Partie 18 : Un pinceau de dispersion qui donne l’impression d’un placement par IA
  19. Partie 19 : L’imposteur qui doit survivre à une forêt
  20. Partie 20 : Simuler la profondeur sur un plan plat
  21. Partie 21 : Un moteur de rendu plus rapide qui ne l’était pas
  22. Partie 22 : Des nuages que l’on peut éclairer et un culling qu’il faut alimenter
  23. Partie 23 : Cinquante avatars et une voix dans la pièce
  24. Partie 24 : Sauvegarder un monde et rendre le vent visible
  25. Partie 25 : Un seul squelette pour toutes les tenues
  26. Partie 26 : Trois façons de créer de l’eau
  27. Partie 27 : Une île créée à partir de bruit, un sol qui ressemble vraiment à un sol
  28. Partie 28 : De l’herbe jusqu’à l’horizon et un sol qui se masque lui-même
  29. Partie 29 : Un seul contrôleur pour n’importe quel corps
  30. Partie 30 : Une caméra qui respecte les murs

Carte des spikes en direct

Commencez par ceux-ci si vous souhaitez parcourir directement la chronologie technique.

Spike 1 terrain et instanciation · source
Spike 2 physique dans un worker · source
Le Spike 3, un test de charge de diffusion avec Durable Objects, s’exécutait comme script de service et non comme page autonome
Spike 4 : contraintes de qualité sur mobile, testées via un paramètre de requête du Spike 1
Spike 5 : fiabilité du comportement du LLM, exécuté comme script et non comme page autonome
Spike 6 chargement et permutation des chunks · source
Spike 7 végétation générée à partir de cartes de densité · source
Spike 8 coût des matériaux du terrain · source
Spike 9 budget des ombres en cascade · source
Spike 10 clipmaps et géomorphing · source
Spike 11 streaming de chunks de cartes de hauteur · source
Spike 12 marching cubes avec WebGPU · source
Spike 13 base de référence pour l’intégration de WebGPU · source
Spike 14 consolidation progressive · source
Spike 15 ossature des jointures · source
Spike 16 première face Transvoxel · source
Spike 17 double LOD MC · source
Spike 18 jointure de carte de hauteur · source
Spike 19 angle à résolutions mixtes · source
Spike 20 jointure d’angle sur GPU · source
Spike 21 jointure d’angle MC sur GPU · source
Spike 22 repli de MC vers HM · source
Spike 23 modes de chunks définis par des règles · source
Spike 24 anneaux de clipmap et brume céleste · source
Spike 25 pinceau de carte de hauteur sur des données échantillonnées · source
Spike 26 pinceau SDF via calcul GPU · source
Spike 27 intégration HM + MC + pinceau · source
Spike 28 texturation multi-matériaux · source
Spike 29 végétation et herbe par shader · source
Spike 30 physique du terrain et contrôleur de personnage · source
Spike 31 synchronisation du terrain en multijoueur · source
Spike 32 eau et nage · source
Spike 33 refactorisation de la structure du code · source
Spike 34 création directement dans le monde · source
Spike 35 animations de combat et retargeting · source
Spike 36 recherche en direct de ressources Poly Haven · source
Spike 37 dispersion d’objets assistée par IA · source
Spike 38 imposteurs octaédriques · source
Spike 39 parallax occlusion mapping · source
Spike 40 moteur de rendu avec tampon de visibilité · source
Spike 41 imposteurs dans une forêt · source
Spike 42 correction du scintillement des imposteurs · source
Spike 43 atmosphère et nuages volumétriques · source
Spike 44 culling Hi-Z des meshlets · source
Spike 45 skinning des avatars par lots et synchronisation réseau · source
Spike 46 chat vocal de proximité · source
Spike 47 persistance du monde avec autorité serveur · source
Spike 48 : intégration du rig d’avatar, réutilisée comme code partagé par les spikes suivants (aucune page autonome)
Spike 49 vent sur GPU appliqué aux objets et au feuillage · source
Spike 50 personnages universels et accessoires portables · source
Spike 51 eau avec réflexions en espace écran · source
Spike 52 eau avec miroir planaire · source
Spike 53 bibliothèque d’eau prête pour la production · sourceSpike 54 génération procédurale d’îles · source
Spike 55 rendu du terrain et atténuation de la répétition des textures · source
Spike 56 herbe en quadruples plans croisés rendue par le GPU · source
Spike 57 élimination des parties occultées du terrain · source
Spike 58 contrôleur de personnage interchangeable · source
Spike 59 contrôleur avec un véritable avatar · source
Spike 60 animations de personnages polygonaux Synty · source