IA & développement · Projet personnel
Galactic Reigns
Migrer un backend complet avec des agents IA
- Période
- Depuis août 2025
- Rôle
- Conception, développement et exploitation, seul
- Stack
- NestJS · TypeScript · Prisma · PostgreSQL · Vue 3 · Pinia · Phaser · Tailwind 4 · WebSockets (soketi) · MinIO (S3) · Docker
- Liens
- galactic-reigns.com
- 24
- domaines métier migrés
- ≈ 2 600
- cas de test
- 1 000+
- commits
Le projet
Galactic Reigns est un MMO de stratégie spatiale en temps réel, gratuit, que je développe seul depuis août 2025 (plus de 1 000 commits). Les joueurs revendiquent une planète, construisent une économie et envoient des flottes dans un univers généré procéduralement ; les trajets continuent même quand l'onglet est fermé.
Le jeu est en production, en bêta fermée sur invitation. Backend NestJS / TypeScript en clean architecture modulaire, Prisma et PostgreSQL ; front Vue 3, Pinia, Phaser et Tailwind 4 ; temps réel par WebSockets ; stockage objet S3.
Migrer le backend de Laravel vers NestJS avec des agents IA
La première version du backend était écrite en Laravel. Je l'ai migrée vers NestJS avec une chaîne d'agents IA, sous ma supervision, domaine métier par domaine métier.
-
01
Scout
Un agent lit le code PHP du domaine et en tire une spécification.
-
02
Port
Un agent porte le domaine en TypeScript, couche par couche, avec ses tests.
-
03
Verify
Typage, tests, règles d'architecture et conventions, avec une boucle de réparation bornée.
-
04
Revue adverse
Trois angles : comportement, frontières entre modules, fidélité à l'original.
-
05
Synthèse
Bilan, et les décisions de gameplay remontées à l'humain.
L'ancien code comme oracle
Des extracteurs lisent le code PHP et produisent des jeux de données de référence (golden master) : taxonomie des planètes, paramètres de partie, coûts des bâtiments, recherches… Le nouveau code est testé contre ces références, qui ne sont jamais générées par le code qu'elles vérifient.
La mécanique bat le prompt
Les consignes données aux agents (« n'invente pas », « écris des tests indépendants ») dérivent dès qu'aucune barrière ne les impose. Les barrières automatiques, elles, tiennent : typage, règles de dépendances entre couches, conventions interdisant les appels non déterministes hors des adaptateurs, golden master. Chaque erreur récurrente des agents a donc été transformée en contrôle automatique plutôt qu'en consigne.
La revue adverse reste indispensable : elle trouve en moyenne environ 8 divergences par domaine que les contrôles automatiques laissent passer. Et les décisions de gameplay restent humaines.
Résultat
La migration est terminée : les 24 domaines métier du jeu (flottes, combats, commerce, alliances, territoires…) tournent en production sur le nouveau backend, couverts par environ 2 600 cas de test.
« La mécanique bat le prompt. »