Porter 10 000 lignes de JavaScript vibe codé vers Unity. Qu'est-ce qui pourrait mal tourner ?
Le prototype web de Cascade tournait. Les playtests étaient bons. Les joueurs souriaient, rejouaient, posaient des questions. On avait enfin un gameplay qui tenait debout.
Petit problème : c'était du JavaScript. Vibe codé. À moitié compris. Un château de cartes tenu par du scotch et de la bonne volonté.
Pour rappel, on venait de tuer Symphony of Cards. 8 mois de travail.
Environ 50 000 euros partis en fumée. Si vous avez raté cet épisode, on vous raconte tout ici 👇

L'expérience acquise n'a pas de prix, certes. Ce qui est sûr c'est que le compte en banque, lui, s'en souvient très bien.
Alors quand il a fallu passer à l'étape suivante, porter le prototype vers Unity pour construire le vrai jeu, on s'est dit qu'on allait faire les malins.
L'idée (stupide) du siècle
Notre raisonnement était simple : on a vibe codé le prototype JS avec l'IA. Pourquoi ne pas vibe coder le portage vers Unity ?
On lance Claude. On lui file le contexte. On lui explique le projet. On lui montre le code source.
« Porte-moi ça vers Unity. »
8 heures plus tard, on avait :
- Un projet qui ne compilait pas
- Des scripts qui référençaient des classes inexistantes
- Des cartes qu'on n'avait jamais créées (merci l'hallucination)
- Et la certitude qu'on aurait dû rester au lit ce matin-là
L'IA avait inventé des mécaniques. Créé des systèmes qu'on n'avait jamais demandés. Généré du code qui ressemblait à du C# mais qui n'en était pas vraiment. Le genre de truc qui compile dans un univers parallèle, peut-être.
On a fermé le laptop. On a regardé le plafond. On s'est demandé si on n'allait pas finalement rechanger de parcours pro une fois de plus.

Retour à la case départ (mais pas vraiment)
Le lendemain, café en main, on a fait ce qu'on aurait dû faire dès le départ : réfléchir.
Le problème n'était pas l'IA. Le problème, c'était nous. On lui avait balancé 10 000 lignes de JavaScript mal structuré en lui demandant de tout comprendre d'un coup. Évidemment que ça n'allait pas marcher.
Alors on a changé d'approche. Radicalement.
Le workflow qui a tout changé
On a posé les règles. Claires. Non négociables.
D'abord, un fichier CLAUDE.md. Notre bible. Dedans, tout ce que l'IA doit respecter :
- Porte feature par feature. Jamais plus d'une à la fois.
- N'invente rien. Si c'est pas dans le JS, ça n'existe pas.
- Réfère-toi toujours au code source. Toujours.
- Travaille en SOLID. Pas de classes de 800 lignes.
- Respecte le gitflow. Un commit = une feature = un message clair.
Ensuite, Claude Code. Pas l'interface web. Le vrai. Celui qui tourne en local, qui a accès au filesystem, qui peut itérer en boucle jusqu'à ce que ça marche.
Et enfin, la pièce maîtresse : un MCP qui contrôle Unity directement.

Pour ceux qui ne connaissent pas, c'est un pont entre Claude et l'éditeur Unity. L'IA peut créer des GameObjects, générer des scènes, vérifier que tout compile, lancer des tests. Sans qu'on touche à la souris.
La première fois qu'on a vu Claude créer un prefab tout seul, on s'est regardés. « OK. Là, on tient quelque chose. »
La méthode : lente, mais solide
On a commencé par la grille. La base de tout. Cette matrice où les joueurs posent leurs cartes pour déclencher des réactions en chaîne.
Claude lisait le code JS. Analysait la logique. Proposait une architecture C#. On validait. Il implémentait. On relisait. Ligne par ligne.
Oui, c'est long. Oui, c'est fastidieux. Mais chaque script qui sortait était propre. Testé. Fonctionnel.
Puis est venu le vrai morceau : l'Activation Engine.
Pour ceux qui ne connaissent pas Cascade, c'est un jeu où vous posez des cartes sur une grille. Quand vous exécutez, tout s'enchaîne. Les cartes s'activent, interagissent, se multiplient, et à la fin, un score tombe. Simple en apparence. Un cauchemar à coder.
Parce que l'Activation Engine, c'est le cerveau du jeu. C'est lui qui calcule tout : l'ordre d'activation, les combos, les effets qui se déclenchent, les multiplicateurs, le score final. Des dizaines de règles imbriquées. Des cas particuliers partout. Le genre de système où tu changes une ligne et tu casses trois mécaniques.
Dans le prototype JS, c'était un monstre de 1800 lignes à lui seul. Fonctionnel, mais opaque. Même nous, on n'était plus sûrs de comprendre certains passages.
Le porter proprement a pris un certain temps. On décortiquait chaque règle. On demandait à Claude de l'implémenter isolément. On testait. On cassait. On recommençait.
On a testé différents scénarios, comparé les résultats avec le prototype web. Et puis, un après-midi, les scores se sont alignés. Enfin.
Une semaine plus tard
Le core gameplay tourne dans Unity.
C'est brut. Il n'y a pas de feedback. Pas de juice. Pas d'animations satisfaisantes. Les cartes apparaissent comme des blocs. La grille est un quadrillage gris.
Et c'est exactement ce qu'on voulait.

Vous voulez comparer ? Le prototype web de Cascade est toujours jouable sur itch.io. (Faites péter le highscore)

Parce qu'on a retenu la leçon. Celle qui nous a coûté 50 000 euros et 8 mois de notre vie : pas de polish avant d'avoir le gameplay. Jamais.
Le prototype JS nous a prouvé que la mécanique était fun. Le port Unity, lui, pose les fondations solides. On travaille avec un développeur Unity freelance, et l'objectif était clair : lui fournir une base propre, lisible, sur laquelle il peut construire avec son expertise. Mission accomplie.
Ce qu'on a appris (pour de vrai cette fois)
L'IA ne remplace pas la réflexion. Elle l'amplifie.
Si tu lui donnes du chaos, elle te rend du chaos. Si tu lui donnes de la structure, elle te rend de la structure.
Claude Code est devenu notre meilleur outil. Pas parce qu'il code à notre place. Mais parce qu'il code avec nous. À condition qu'on lui donne les bonnes règles.
Et ces règles, on les a apprises à la dure. En échouant d'abord. En recommençant ensuite.
La suite ?
Maintenant, on s'attaque au prochain chantier : un système de gestion des cartes et d'équilibrage piloté depuis Google Sheets.
L'idée, c'est de pouvoir créer, modifier et ajuster chaque carte sans toucher au code. Sans rebuild. Sans relancer Unity. Juste un tableur, des valeurs, et un jeu qui se met à jour. Itérer sur l'équilibrage en quelques secondes. Tester une nouvelle carte le temps d'un café.
Cascade avance. Et on vous racontera la suite.
Sans filtre.

Comments ()