Lost in Production — documentation de conception
Jeu de gestion / serious game sur la fabrication d'un long métrage français. Le joueur est directeur·rice de production : il traverse pré-production, tournage et post-production, et doit transformer une enveloppe et un scénario en un film — pendant que tout se met à mal tourner.
État : brainstorming d'architecture. Rien n'est codé. Ces documents sont faits pour être relus, contestés et annotés. Chaque fiche se termine par ses questions ouvertes ; elles sont agrégées dans
08-open-questions.md.
Par où commencer
| Si vous voulez… | Lisez |
|---|---|
| comprendre le jeu en 5 minutes | 00-vision.md |
| la réponse à « event sourcing, bonne idée ? » | 02-event-sourcing.md |
| la réponse à « ai-je oublié une dimension du modèle ? » | 03-data-model.md §1 |
| savoir à quoi ressemble une partie | 04-game-loop.md |
| savoir quoi construire en premier | 07-roadmap.md |
| ce qui reste à décider | 08-open-questions.md |
Le plan
Cadre
| Doc | Contenu |
|---|---|
00-vision.md | le pitch, ce que le jeu enseigne, les trois ressources, la dette différée, ce que le jeu n'est pas, le cadrage retenu |
04-game-loop.md | la partie de bout en bout : 45 minutes, trois actes, la boucle quotidienne du tournage, l'escalade, les fins, le débrief causal, la rejouabilité |
06-ui-desktop-metaphor.md | l'interface : l'écran d'ordinateur, la vue bureau en zoom arrière, les canaux d'entrée et de sortie, le ton visuel |
09-collaborators.md | Dom (VFX) et Claire (production) : ce qu'on leur demande, comment on capte leur expertise, les premières questions |
Technique
| Doc | Contenu |
|---|---|
01-architecture.md | la pile, PocketBase utilisé comme document store (la question « plutôt du NoSQL ? » tranchée), le contenu versionné en git, le moteur pur et déterministe, le local-first, le déploiement |
02-event-sourcing.md | oui, et pourquoi : le débrief causal comme fonctionnalité de gameplay, le coût honnête, la forme minimale, procédural ≠ LLM |
05-backoffice-editor.md | l'éditeur comme moitié du produit : rôles, chaîne de contenu, écrans, validation statique, assistance LLM à sa place, boucle de relecture experte |
07-roadmap.md | l'ordre de fabrication, la verticale de 20 minutes en jalon 0, ce qu'il ne faut surtout pas faire en premier |
Modèle de données
| Doc | Contenu |
|---|---|
03-data-model.md | vue d'ensemble, la vérification poste par poste, les six entités manquantes (Deal, Day, Task, BudgetLine, Vision, capital relationnel), la carte générale |
data-model/README.md | les conventions communes : définition ≠ instance, unités, Rated (perçu vs réel), l'enum des postes, les chapitres de devis, i18n |
data-model/people.md | comédien·ne·s, équipe technique, agents ; les 6 stats, les traits, le Deal, le recrutement, les contraintes légales |
data-model/production-elements.md | matériel, décors, lieux, véhicules, animaux ; le système de facettes, les modes d'acquisition, la logistique |
data-model/scenes.md | la scène, le dépouillement modélisé, les besoins, les critères de qualité, l'importance narrative, le regroupement |
data-model/shots.md | le plan : le découpage, le modèle de résolution, le déterminisme, les prises, le cycle en post, l'agrégation vers le film |
data-model/events.md | GameEvent (fait) ≠ Incident (aléa écrit), la taxonomie des aléas, le langage de conditions et d'effets, les conséquences différées, le graphe nodal, le directeur d'aléas |
Les décisions déjà prises
Les points sur lesquels les documents s'accordent et qu'il faudrait rediscuter explicitement pour les changer :
- Event sourcing sur l'état de partie, CRUD versionné sur le contenu.
- PocketBase avec des colonnes JSON + schémas Zod, pas de base NoSQL supplémentaire.
- Git est la source de vérité du contenu, PocketBase la surface d'édition.
- Le moteur est un paquet TypeScript pur et déterministe — pas de React,
pas de réseau, pas de
Math.random, pas deDate.now. - Le LLM écrit le contenu, la graine choisit dedans. Rien de généré au runtime.
- Le modèle sépare partout définition (auteur) et instance (partie).
- Perçu vs réel (
Rated) sur tout stat qui peut mentir : c'est le support de la mécanique centrale. - Il faut une troisième ressource bidirectionnelle (confiance, moral, réputation) — sinon la partie n'est qu'une descente.
- Le format court (30–60 min) est une contrainte de conception, pas une limite : on montre chaque geste une fois, puis on résume.
- Tout est diégétique : aucune information qui ne puisse être portée par un objet crédible du bureau.
Comment commenter
En bas de chaque page, deux boutons — « Demander une modification » et
« Poser une question » — ouvrent un mail vers claude@gabvdl.xyz, pré-rempli
avec la page concernée, son fichier source et son URL. Ce mail déclenche une
conversation qui applique la demande et redéploie le site.
Les demandes venant de quelqu'un d'autre que Gabriel sont préparées puis
soumises à son accord avant d'être appliquées — voir
09-collaborators.md §4.c.
Convention de relecture
Ces documents sont faits pour être annotés. Marqueurs utilisés :
- ⚠️ à vérifier — une affirmation métier à confirmer auprès de Dom ou Claire ;
- 🔴🟠🟢 dans
08-open-questions.md— ce qui bloque quel jalon ; - « Décision de design. » — un choix assumé, avec sa justification, qu'on peut contester.