Fiction interactive · Narration générée
Hard Choices
Un roman interactif à embranchements où chaque mort ouvre une autre histoire, écrit, vérifié et audité avec des agents IA.
Fiction interactive · Narration générée
HC
01 · Vue d'ensembledémo vidéo à venir
Fiction interactive · Narration générée
HC
02 · Sous le capotdémo vidéo à venir
Fiction interactive · Narration générée
HC
03 · Résultatdémo vidéo à venir
En bref
- Problème : produire avec des agents un roman à embranchements où chaque mort ouvre un spin-off jouable, sans perdre la cohérence.
- Ce que j'ai fait : un format par nœud, un moteur d'état, des contrôles qualité automatiques, un swarm d'écriture et d'audit, et un agent qui décide quoi écrire ensuite.
- Résultat : 331 nœuds, 100 parties simulées sur 100 menées jusqu'à une fin, et une prose nettoyée de ses tics d'IA.
Contexte
Hard Choices est une plateforme de fiction interactive. Son premier tome est un roman à embranchements : les choix du lecteur posent des marqueurs d’état qui changent le texte et les scènes en aval.
L’idée centrale : mourir n’est pas une fin. Quand un personnage meurt, le lecteur gagne une Soul Stone qui ouvre un spin-off jouable avec ce personnage, puis ramène au récit principal avec des conséquences.
L’outillage
- Un moteur qui résout les choix, gère l’état des personnages et le texte conditionnel (
[[if not x_dead]] … [[end]]), pour qu’une mort se répercute partout en aval. - Des contrôles qualité : lint de prose qui repère les tournures « écrites par une IA », liste noire de style partagée par tous les prompts, registre des marqueurs, simulations de parties aléatoires, bêta-lecteurs IA sur des parcours exportés.
- Un agent autonome, Wyrd, exécuté chaque jour : il lit l’activité des lecteurs (chemins dominants, culs-de-sac, zones peu explorées), planifie au plus cinq tâches dans un budget, écrit, valide contre le lore et ouvre une PR. Rien n’est mergé sans relecture.
Architecture
Méthode agentique
- Passes successives : audit, réécriture de la prose, structure, continuité du canon, fins. Puis un audit en swarm (UX, branches et dilemmes, et un agent lecteur qui joue réellement le site).
- Un humain qui tranche : chaque proposition est une PR, rien n’est mergé sans accord.
- Les erreurs deviennent des règles : chaque dérive d’agent repérée est corrigée puis écrite dans les consignes, pour ne pas se reproduire.
Décisions
Les choix qui structurent le projet, avec l'option écartée et la raison.
D1 Un nœud = un fichier YAML
- Choix
- Texte, choix, conditions et effets sur l'état dans un fichier par nœud, validé par schéma.
- Écarté
- Texte libre ou base de données éditée à la main.
- Pourquoi
- Diffable, relisible en PR, et vérifiable automatiquement.
D2 Fusion champ par champ
- Choix
- Les réécrivains ne touchent que le texte, l'agent de structure que les choix.
- Écarté
- Agents libres sur des fichiers entiers.
- Pourquoi
- Plusieurs agents travaillent en parallèle sans jamais se marcher dessus.
D3 Diverger puis se rejoindre
- Choix
- Branches complètes qui portent des conséquences puis se rejoignent à des goulots.
- Écarté
- Arbre libre qui explose combinatoirement.
- Pourquoi
- Une histoire finissable, et jamais de choix vers une route inachevée.
D4 Le bon modèle pour la bonne tâche
- Choix
- Le modèle le plus capable pour le design, les scènes clés et la critique ; des modèles légers pour les passes mécaniques.
- Écarté
- Un seul modèle partout.
- Pourquoi
- La qualité se joue sur quelques scènes ; le reste est du volume.
Résultats
| Mesure | Avant | Après |
|---|---|---|
| Lint de prose, score médian | 19,6 | 0,9 |
| Chargement par choix | 0,64 s | 5 ms |
| Parties aléatoires menées à une fin | · | 100 / 100 |
| Nœuds narratifs | · | 331 |
| Tests automatisés | · | 4 093 |
Limites et suite
- Un audit a montré que 87 % des nœuds du tronc n'offraient qu'un seul choix : les vraies branches sont en cours de prototypage.
- Lors d'une passe, des agents ont archivé des voies de mort « pour suivre le plan ». Repéré, corrigé, puis codifié en règle : toute restructuration doit préserver chaque chaîne mort → Soul Stone → spin-off.
- La qualité littéraire reste un jugement humain : les contrôles automatiques attrapent les défauts, pas le talent.
Ce que ce projet démontre
- Orchestrer un swarm d'écriture avec fusion sans conflit et revues croisées
- Industrialiser la qualité d'un contenu généré : lint, style, simulations, bêta-lecteurs IA
- Modéliser un état narratif complexe : marqueurs, conditions, cycle de vie des personnages
- Construire une boucle agentique continue : observer, planifier, écrire, valider, ouvrir une PR