Guide pour etudiants en informatique : stack, architecture, et panorama du developpement de jeux video
VoxelCraft est un clone de Minecraft jouable dans le navigateur, construit sans aucun asset externe (zero images, zero sons, zero modeles 3D). Tout est genere proceduralement au runtime.
| Couche | Technologie | Pourquoi ce choix |
|---|---|---|
| Langage | TypeScript (strict mode) |
Typage statique pour une architecture modulaire. Detecte les bugs a la compilation. IntelliSense dans l'IDE. |
| Rendu 3D | Three.js |
Seule dependance runtime. Abstraction WebGL mature, acces bas niveau aux shaders, BufferGeometry, post-processing. Pas React Three Fiber (overhead inutile pour du voxel). |
| Bundler | Vite |
HMR instantane, ES modules natifs, build rapide. Zero configuration pour TypeScript. |
| Shaders | GLSL (via ShaderMaterial) |
Shaders custom pour l'AO, le fog, le tiling UV, la casse progressive, l'eau animee. Controle total du pipeline GPU. |
| Audio | Web Audio API |
Synthese sonore procedurale (oscillateurs, noise buffers, filtres). Musique generative. Zero fichiers audio. |
| Textures | Canvas 2D API |
Generation pixel-par-pixel de toutes les textures (16x16) au lancement. Atlas texture unique. |
| Persistance | IndexedDB |
Sauvegarde des chunks modifies et etat du joueur. Async, pas de limite de taille pratique. |
| UI | DOM + CSS |
HUD, menus, overlays en HTML/CSS pur. Pas de framework UI (overhead inutile). Manipulation DOM minimale. |
Principe cle : separation stricte des domaines. Le module world/ ne connait pas Three.js. Le module meshing/ transforme les donnees monde en geometrie. Le module rendering/ gere uniquement l'affichage. Pas de dependances circulaires.
Vecteurs, matrices, quaternions, produit vectoriel (winding order des faces), bruit de Perlin/Simplex (FBM), trigonometrie (orbite soleil/lune, mouvement camera).
Algebre lineaire Noise functions TrigonometrieGreedy meshing (fusion de faces voisines), DDA raycast (traversee de grille voxel), swept AABB collision (physique), flood fill (propagation de lumiere), generation procedurale de terrain.
Greedy meshing DDA raycast Collision AABBVertex shaders (deformation des vagues d'eau), fragment shaders (AO, eclairage, fog, fissures de casse), uniforms dynamiques, texture atlas sampling avec fract().
Budget de frame adaptatif, pre-allocation d'objets (zero GC dans le hot path), swap-with-last au lieu de splice, rendu conditionnel (fallback sans bloom), frustum culling.
60fps target GC pressure Frame budgetingModularite par domaine, separation donnees/rendu, event callbacks (onBreak, onPlace), pattern generateur (preload progressif), singleton (engine), composition (pas d'heritage).
Clean architecture SOLID CompositionSynthese sonore via oscillateurs Web Audio, noise buffers pour les bruitages, filtrage passe-bas pour le vent, gamme pentatonique pour la musique, reverb par delay feedback.
Web Audio API Synthese DSP basiqueCe rapport couvre les principaux types de jeux, les plateformes cibles, les stacks technologiques adaptees, et la complexite de chacun. L'objectif : donner une vision exhaustive des possibilites pour un developpeur ou une equipe etudiante.
Exemples : Super Mario, Celeste, Hollow Knight
Physique 2D (gravite, collision AABB/tilemap), animation sprite, level design, state machine pour le personnage, camera follow, parallax scrolling.
| Plateforme | Stack | Notes |
|---|---|---|
| Web | Phaser 3 ou PixiJS + TypeScript | Phaser a un moteur physique integre. PixiJS pour plus de controle. |
| Desktop | Godot (GDScript/C#) ou Unity (C#) | Godot est gratuit et leger, ideal pour du 2D. |
| Mobile | Flutter Flame ou Unity | Flame pour du cross-platform Dart. Unity pour le AAA mobile. |
| Console | Unity ou Godot | Unity a le meilleur support console. |
Editeur de niveaux (Tiled, LDtk), logiciel de pixel art (Aseprite, Piskel), IDE (VS Code).
Exemples : Pokemon, Final Fantasy, Zelda, Stardew Valley
Systeme de dialogue, inventaire, quetes, combat (tour par tour ou temps reel), sauvegarde/chargement, tilemaps, NPC AI, systeme d'experience/progression.
| Plateforme | Stack | Notes |
|---|---|---|
| Web | Phaser 3 + TypeScript | Plugin RPG, tilemap support natif. |
| Desktop | RPG Maker, Godot, Unity | RPG Maker pour le prototypage rapide. Godot/Unity pour du custom. |
| Mobile | Unity ou Godot | Unity dominant sur mobile pour les RPGs. |
| Multi | Godot 4 | Export Web, Desktop, Mobile depuis un seul projet. |
Exemples : Counter-Strike, Fortnite, DOOM
Rendu 3D avance, physique 3D (raycasting, balistique), netcode (interpolation, prediction), animation squelettique, systeme d'armes, AI ennemis, level design 3D, optimisation GPU.
| Plateforme | Stack | Notes |
|---|---|---|
| Web | Three.js / Babylon.js + TypeScript | Possible mais limite (pas de multithreading natif, WebGL). |
| Desktop | Unreal Engine 5 (C++) ou Unity (C#) | Unreal pour le AAA (Nanite, Lumen). Unity pour l'indie. |
| Console | Unreal Engine 5 | Pipeline de certification console integre. |
| Custom | C++ / Vulkan / DirectX 12 | Moteur custom pour un controle total (DOOM approach). |
Blender (modeles 3D), Substance Painter (textures), Wwise/FMOD (audio), Git LFS (assets volumineux).
Exemples : Tetris, 2048, Baba Is You, Portal
Logique de jeu, grille/matrice, algorithmes de recherche (BFS/DFS pour la validation), UI/UX, animation de transitions. Pour Portal : physique 3D avancee.
| Plateforme | Stack | Notes |
|---|---|---|
| Web | Vanilla JS/TS + Canvas 2D | Pas besoin de moteur pour du 2D simple. |
| Mobile | React Native, Flutter, Swift/Kotlin | UI native performante pour les puzzles tactiles. |
| Desktop | Godot, Electron | Godot pour du puzzle plus complexe. |
Exemples : Age of Empires, Civilization, Factorio, Rimworld
Pathfinding (A*), AI strategique (arbres de decision, utility AI), gestion de ressources, fog of war, systeme de construction, simulation economique, multijoueur deterministe.
| Plateforme | Stack | Notes |
|---|---|---|
| Web | PixiJS ou Phaser (2D), Three.js (3D) | Factorio-like faisable en web. RTS 3D plus difficile. |
| Desktop | Unity, Godot, C++ custom | Unity/DOTS pour la simulation massive. |
| Mobile | Unity | Clash of Clans-style, simplifie pour tactile. |
Exemples : Minecraft, Terraria, Roblox — c'est VoxelCraft !
Generation procedurale (noise), gestion de chunks, greedy meshing, systeme de blocs, physique voxel, eclairage, persistance monde, optimisation memoire (TypedArrays).
| Plateforme | Stack | Notes |
|---|---|---|
| Web | Three.js + TypeScript + Vite | C'est notre stack ! Prouve viable pour un voxel engine complet. |
| Desktop | C++/OpenGL, Rust/wgpu, Java (LWJGL) | Minecraft orignal est en Java. Les mods utilisent LWJGL. |
| Mobile | Unity (C#) ou C++/OpenGL ES | Performance critique sur mobile, LOD obligatoire. |
Exemples : Hades, Dead Cells, Slay the Spire, Binding of Isaac
Generation procedurale de niveaux (BSP, drunkard's walk), systeme de loot/drop, permadeath, meta-progression, combat dynamique, balance/randomisation.
| Plateforme | Stack | Notes |
|---|---|---|
| Web | Phaser 3 ou rot.js (roguelike ASCII) | rot.js est specialise roguelike (FOV, pathfinding, RNG). |
| Desktop | Godot, Unity, GameMaker | GameMaker pour du 2D rapide (Dead Cells l'utilise). |
| Multi | Godot 4 | Export partout, ideal pour les roguelikes indie. |
Exemples : SimCity, Cities Skylines, Theme Hospital, Two Point Hospital
Simulation economique, graphes de dependances, systeme de grille/placement, IA de population (agents), rendu isometrique ou 3D, UI complexe (panneaux, stats).
| Plateforme | Stack | Notes |
|---|---|---|
| Web | React + PixiJS ou Three.js | React pour l'UI complexe, Pixi/Three pour le rendu. |
| Desktop | Unity, Godot | Unity pour les sims 3D complexes. |
| Mobile | Unity | Dominant pour les sims mobile (Township, SimCity BuildIt). |
Exemples : World of Warcraft, Fortnite, Among Us, Valorant
Netcode (TCP/UDP, WebSocket, WebRTC), synchronisation d'etat, prediction client, compensation de lag, serveur autoritatif, base de donnees (comptes, progression), anti-triche, scalabilite, DevOps.
| Couche | Stack | Notes |
|---|---|---|
| Client Web | Three.js / Babylon.js + WebSocket | Among Us-style faisable en web. |
| Client Desktop | Unreal / Unity | Netcode integre (Netcode for GameObjects, Unreal Replication). |
| Serveur | Node.js, Go, Rust, C# | Go/Rust pour la performance. Node.js pour le prototypage. |
| Infra | Docker + Kubernetes + Redis + PostgreSQL | Scaling horizontal, matchmaking, persistence. |
| Temps reel | Colyseus, Socket.io, Photon | Colyseus = framework Node.js specialise jeu multijoueur. |
Exemples : Ace Attorney, Doki Doki Literature Club, Life is Strange
Systeme de dialogue branche (arbre/graphe), gestion d'etats/flags, affichage de sprites/backgrounds, musique d'ambiance, choix qui impactent l'histoire, sauvegarde d'etat narratif.
| Plateforme | Stack | Notes |
|---|---|---|
| Web | Ren'Py (Python) ou Twine (HTML) | Ren'Py est LE standard. Twine pour du texte interactif pur. |
| Desktop | Ren'Py, Unity + Ink | Ink = langage de script narratif par Inkle (80 Days). |
| Mobile | Ren'Py (export Android/iOS) | Support natif mobile. |
Exemples : Guitar Hero, Beat Saber, Osu!, Friday Night Funkin'
Synchronisation audio/visuel precise (audio clock vs frame clock), parsing de beatmaps, detection d'input timing, scoring, effets visuels synchronises, analyse audio (FFT optionnel).
| Plateforme | Stack | Notes |
|---|---|---|
| Web | Web Audio API + Canvas/WebGL | FNF est en HaxeFlixel mais portage web existe. |
| VR | Unity + XR Toolkit | Beat Saber approach. |
| Desktop | Unity, Godot, LÖVE (Lua) | LÖVE est ultra-leger pour du 2D rythme. |
Exemples : Bloons TD, Kingdom Rush, Plants vs Zombies
Pathfinding (vagues d'ennemis), systeme de tours (placement, upgrade, range), gestion de vagues, balance economique, targeting AI (closest, strongest, first).
| Plateforme | Stack | Notes |
|---|---|---|
| Web | Phaser 3 ou PixiJS | Parfait pour du TD 2D en navigateur. |
| Mobile | Unity, Godot | Genre tres populaire sur mobile. |
| Desktop | Godot | Leger et rapide a prototyper. |
Exemples : Mario Kart, Forza, TrackMania
Physique vehicule (suspension, friction, drift), rendu de piste, camera dynamique, AI de course (waypoints, rubber-banding), effets (particules, motion blur), multijoueur (netcode predicitf).
| Plateforme | Stack | Notes |
|---|---|---|
| Web | Three.js + Cannon.js (physique) | Faisable pour du low-poly racing. |
| Desktop | Unity, Unreal | Unity pour arcade, Unreal pour sim. |
| Mobile | Unity | Genre populaire mobile (Asphalt, Mario Kart Tour). |
Exemples : Resident Evil, Amnesia, Phasmophobia, Five Nights at Freddy's
Ambiance (eclairage, son), AI ennemie (patrouilles, detection), gestion de ressources limitees, jump scares programmes, level design claustrophobe, post-processing (grain, vignette).
| Plateforme | Stack | Notes |
|---|---|---|
| Web | Three.js + Web Audio | FNAF-style est faisable en web. 3D horreur aussi. |
| Desktop | Unreal (rendu photoreal), Unity | Unreal excelle pour l'ambiance visuelle. |
| VR | Unity + XR | L'horreur en VR est un genre a part (Phasmophobia VR). |
Exemples : Duolingo (gamifie), CodeCombat, Human Resource Machine
Design pedagogique, progression adaptative, feedback immediat, gamification (XP, badges, streaks), analytics d'apprentissage, accessibilite.
| Plateforme | Stack | Notes |
|---|---|---|
| Web | React/Vue + Canvas ou Phaser | Web = distribution instantanee, pas d'installation. |
| Mobile | React Native, Flutter | Apps educatives = mobile first. |
| Multi | Godot + GDScript | Godot lui-meme est educatif (simple a apprendre). |
| Plateforme | Technologies | Distribution | Considerations |
|---|---|---|---|
| Web (navigateur) | HTML5, WebGL/WebGPU, Web Audio, WASM | URL directe, pas d'installation | Accessibilite maximale, performances limitees (single thread, pas d'acces fichier direct). Pas de store fees. |
| Desktop (PC/Mac/Linux) | C++, C#, Rust, Java, Electron/Tauri | Steam, Epic, itch.io, standalone | Performances maximales, acces GPU/CPU complet. Steam prend 30%. |
| Mobile (iOS/Android) | Swift, Kotlin, Unity, Flutter, React Native | App Store, Google Play | Input tactile, batterie, tailles d'ecran variables. Store fees 15-30%. Review process iOS. |
| Console (Switch/PS/Xbox) | C++, Unity, Unreal | Nintendo eShop, PSN, Xbox Store | Dev kits requis ($$$), certification stricte, performances fixes. Accord NDA avec le constructeur. |
| VR/AR (Quest, PCVR) | Unity + XR, Unreal, WebXR | Meta Quest Store, SteamVR | Performance critique (90fps min), motion sickness, interaction spatiale. WebXR pour du VR web. |
| Embarque (Raspberry Pi, retro) | C, C++, SDL2, Raylib | Image SD, ROM | Ressources tres limitees, optimisation extreme. Raylib est ideal (C, leger, multiplateforme). |
| Type de jeu | Web | Desktop | Mobile | Console | VR |
|---|---|---|---|---|---|
| Platformer 2D | Facile | Facile | Moyen | Moyen | Difficile |
| RPG | Moyen | Difficile | Difficile | Expert | Expert |
| FPS 3D | Difficile | Difficile | Expert | Expert | Expert |
| Puzzle | Facile | Facile | Facile | Moyen | Moyen |
| Strategie | Difficile | Difficile | Difficile | Expert | Expert |
| Sandbox/Voxel | Difficile | Difficile | Expert | Expert | Expert |
| Roguelike | Moyen | Moyen | Moyen | Difficile | Difficile |
| Multijoueur (MMO) | Expert | Expert | Expert | Expert | Expert |
| Visual Novel | Facile | Facile | Facile | Moyen | Moyen |
| Racing | Moyen | Difficile | Difficile | Expert | Expert |
VS Code (universel), JetBrains Rider (C#/Unity), Visual Studio (C++/Unreal), Cursor (AI-assisted).
Git + GitHub/GitLab. Git LFS pour les assets volumineux. Branching strategy (feature branches, trunk-based).
Aseprite (pixel art), Krita (peinture), Piskel (web, gratuit), Photoshop/GIMP, TexturePacker (atlas).
Blender (modelisation, animation, rigging), MagicaVoxel (voxel art), Substance Painter/Designer (textures PBR).
Audacity (edition), LMMS/FL Studio (musique), sfxr/jsfxr (bruitages retro), Wwise/FMOD (audio middleware AAA).
Tiled (tilemaps 2D), LDtk (moderne, entites), Trenchbroom (BSP/Quake-style), editeurs integres (Unity/Unreal/Godot).
GitHub Actions, Vercel/Netlify (web), Steam Build Pipeline, Fastlane (mobile). Tests automatises, builds multi-plateforme.
Chrome DevTools (web), RenderDoc (GPU), Tracy (C++ profiler), Unity Profiler, Unreal Insights. Stat overlays in-game.
VoxelCraft demontre qu'un moteur de jeu voxel complet est realisable avec une stack web moderne (Three.js + TypeScript + Vite) et zero assets externes. Les competences mobilisees — algorithmique, mathematiques 3D, shaders, optimisation temps reel, architecture logicielle — sont directement transposables a tout type de developpement de jeu video.
Le choix de la stack depend toujours du type de jeu, de la plateforme cible, et de la taille de l'equipe. Pour un etudiant ou une petite equipe :
Document genere pour VoxelCraft Build #28 — 2026-03-19
Stack : Three.js + TypeScript + Vite | Zero external assets