Pour conclure cette série, quoi de mieux qu’une étude de cas concrète ? Voici comment j’ai utilisé Claude Code pour recréer Prelude of the Chambered, le jeu de Notch (créateur de Minecraft), avec une stack moderne.
Pour découvrir le projet en détail, lisez mon article dédié : Prelude of the Chambered Reborn : Renaissance d’un classique de Notch
Voir aussi mon autre projet de jeu rétro en TypeScript : GBTS - Un émulateur GameBoy
Le projet
Contexte
Prelude of the Chambered est un dungeon crawler créé par Notch en 48h lors d’une game jam en 2011. Le code original est en Java, avec un moteur de rendu raycasting fait maison.
Objectif
Recréer le jeu avec :
- TypeScript
- Three.js pour le rendu 3D
- Architecture moderne (modules ES6)
- Tests automatisés
- Documentation complète
Phase 1 : Exploration (Jours 1-2)
Analyser le code original
claude
> @java-src/**/*.java Analyse l'architecture du jeu original.
> Identifie les composants principaux et leurs responsabilités.
Claude a identifié :
- Art.java : Gestion des textures et sprites
- Game.java : Boucle de jeu principale
- Level.java : Structure du niveau
- Entity.java : Système d’entités (joueur, ennemis)
- Screen.java : Rendu raycasting
Planifier la migration
> ultrathink. Propose une architecture TypeScript moderne
> pour recréer ce jeu avec Three.js
Claude a proposé :
src/
├── core/
│ ├── Game.ts # Boucle de jeu
│ ├── Renderer.ts # Three.js wrapper
│ └── Input.ts # Gestion des contrôles
├── world/
│ ├── Level.ts # Structure du niveau
│ ├── Tile.ts # Types de tuiles
│ └── Loader.ts # Chargement des niveaux
├── entities/
│ ├── Entity.ts # Classe de base
│ ├── Player.ts # Joueur
│ └── enemies/ # Différents ennemis
├── graphics/
│ ├── TextureManager.ts
│ └── SpriteSheet.ts
└── utils/
└── Math.ts
Phase 2 : Setup (Jour 3)
Initialiser le projet
> Initialise un projet TypeScript avec Vite, Three.js,
> et configure ESLint + Prettier selon les conventions.
Claude a créé :
package.jsonavec les dépendancestsconfig.jsonconfiguré pour le strict modevite.config.tsavec les plugins nécessaires.eslintrc.jset.prettierrc
CLAUDE.md du projet
> Crée un CLAUDE.md qui documente l'architecture et les conventions.
# CLAUDE.md - Prelude Reborn
## Architecture
Ce projet est un remake de Prelude of the Chambered avec Three.js.
## Conventions
- TypeScript strict
- Composants ES6 modules
- Tests avec Vitest
- Naming: PascalCase classes, camelCase fonctions
## Fichiers clés
- src/core/Game.ts : Point d'entrée principal
- src/world/Level.ts : Gestion du niveau
- src/entities/Player.ts : Logique joueur
Phase 3 : Core Engine (Jours 4-7)
Système de rendu
> Implémente le Renderer.ts qui wraps Three.js
> pour afficher une scène first-person style dungeon crawler.
Claude a créé :
- Caméra perspective avec contrôles FPS
- Système de grille pour les murs
- Gestion des textures avec Three.js TextureLoader
Boucle de jeu
> Implémente la boucle de jeu avec:
> - Update à 60 FPS
> - Delta time pour la physique
> - States (menu, playing, paused)
Chargement des niveaux
> Analyse @java-src/Level.java et @java-src/Art.java
> pour comprendre le format des niveaux.
> Puis implémente le Level.ts compatible.
Claude a :
- Analysé le format bitmap des niveaux originaux
- Créé un parser pour les fichiers PNG
- Implémenté la génération de la géométrie 3D
Phase 4 : Gameplay (Jours 8-12)
Système d’entités
> Implémente le système d'entités inspiré de @java-src/Entity.java
> avec:
> - Entity base class
> - Collision detection
> - Update/Render cycle
Joueur et contrôles
> Implémente le Player.ts avec:
> - Mouvement WASD
> - Rotation souris
> - Interaction E
> - Santé et dégâts
Ennemis
> Analyse les ennemis dans @java-src/entities/
> et implémente-les progressivement.
> Commence par le plus simple.
Claude a procédé méthodiquement :
- Bat (chauve-souris) : Mouvement aléatoire
- Ghost : Poursuite du joueur
- Ogre : Patrouille + attaque
- Boss : Combinaison de patterns
Combat
> Implémente le système de combat:
> - Attaque joueur (clic gauche)
> - Dégâts aux ennemis
> - Dégâts au joueur
> - Effets visuels (flash rouge)
Phase 5 : Polish (Jours 13-16)
Audio
> Ajoute le système audio avec Web Audio API:
> - Musique de fond
> - Sons d'effets
> - Contrôle du volume
UI
> Implémente l'interface utilisateur:
> - Barre de vie
> - Inventaire
> - Messages à l'écran
> - Menu pause
Optimisation
> Profite le rendu et optimise:
> - Frustum culling
> - LOD pour les entités distantes
> - Texture atlasing
Phase 6 : Tests et déploiement (Jours 17-20)
Tests automatisés
> Génère des tests Vitest pour:
> - Level loading
> - Collision detection
> - Entity behavior
> - Game state management
Claude a généré des tests couvrant :
- Chargement correct des niveaux
- Détection de collision avec les murs
- Comportement des ennemis
- Transitions d’états du jeu
CI/CD
> Configure GitHub Actions pour:
> - Lint + Type check
> - Tests
> - Build
> - Deploy sur GitHub Pages
Documentation
> Génère la documentation du projet:
> - README complet
> - JSDoc pour les classes principales
> - Guide de contribution
Résultats
Métriques du projet
| Métrique | Valeur |
|---|---|
| Lignes de code | ~5,000 |
| Fichiers TypeScript | 45 |
| Couverture tests | 78% |
| Temps total | ~20 jours |
| Coût Claude Code | ~$120 |
Ce que Claude a fait automatiquement
- ✅ Analyse du code Java original
- ✅ Proposition d’architecture
- ✅ Scaffolding du projet
- ✅ Implémentation des systèmes core
- ✅ Conversion des algorithmes Java → TypeScript
- ✅ Génération des tests
- ✅ Configuration CI/CD
- ✅ Documentation
Ce que j’ai fait manuellement
- 🎨 Choix artistiques (couleurs, textures)
- 🔧 Fine-tuning du gameplay (vitesse, dégâts)
- 🐛 Debug de certains edge cases
- ✍️ Revue de code et validation
Leçons apprises
Ce qui a bien fonctionné
- CLAUDE.md détaillé : Plus le contexte est riche, meilleures sont les réponses
- Workflow EPCT : Explore → Plan → Code → Test à chaque feature
- Références @ précises :
@java-src/Entity.javaplutôt que “le fichier Entity” - ultrathink pour la conception : Architecture solide dès le départ
Ce qui a nécessité des ajustements
- Three.js spécifique : Claude connaît Three.js mais pas toutes les subtilités
- Performances : Les premières implémentations n’étaient pas optimisées
- Edge cases : Les cas limites nécessitaient des prompts spécifiques
Conseils pour vos projets
- Commencez par le contexte : Un bon CLAUDE.md fait toute la différence
- Itérez en petites étapes : Feature par feature, pas tout d’un coup
- Utilisez ultrathink : Pour la conception et les problèmes complexes
- Testez souvent : Claude peut générer les tests, utilisez-les
- Commitez régulièrement : Les checkpoints Git sont votre filet de sécurité
Conclusion de la série
En 20 jours, nous avons couvert :
- Installation et premiers pas
- Syntaxe secrète #@/!
- Workflow EPCT
- Prompt engineering
- Gestion du contexte
- Git workflows
- Permissions et sécurité
- Slash commands personnalisées
- Subagents
- Skills
- Plugins et marketplace
- Hooks
- MCP
- IDE integration
- CI/CD headless
- Facturation et coûts
- Troubleshooting
- Status line et terminal
- Comparatif des outils
- Cette étude de cas
Claude Code est un outil puissant qui, bien utilisé, transforme la façon dont nous développons. Ce n’est pas un remplacement du développeur, mais un multiplicateur de productivité.
Maintenant, c’est à vous de jouer !
Merci d’avoir suivi cette série “Maîtriser Claude Code en 20 jours”. Découvrez le projet Prelude Reborn