Aller au contenu principal

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 minutes00-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 partie04-game-loop.md
savoir quoi construire en premier07-roadmap.md
ce qui reste à décider08-open-questions.md

Le plan

Cadre

DocContenu
00-vision.mdle 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.mdla 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.mdl'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.mdDom (VFX) et Claire (production) : ce qu'on leur demande, comment on capte leur expertise, les premières questions

Technique

DocContenu
01-architecture.mdla 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.mdoui, et pourquoi : le débrief causal comme fonctionnalité de gameplay, le coût honnête, la forme minimale, procédural ≠ LLM
05-backoffice-editor.mdl'éditeur comme moitié du produit : rôles, chaîne de contenu, écrans, validation statique, assistance LLM à sa place, boucle de relecture experte
07-roadmap.mdl'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

DocContenu
03-data-model.mdvue 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.mdles 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.mdcomédien·ne·s, équipe technique, agents ; les 6 stats, les traits, le Deal, le recrutement, les contraintes légales
data-model/production-elements.mdmatériel, décors, lieux, véhicules, animaux ; le système de facettes, les modes d'acquisition, la logistique
data-model/scenes.mdla scène, le dépouillement modélisé, les besoins, les critères de qualité, l'importance narrative, le regroupement
data-model/shots.mdle 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.mdGameEvent (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 :

  1. Event sourcing sur l'état de partie, CRUD versionné sur le contenu.
  2. PocketBase avec des colonnes JSON + schémas Zod, pas de base NoSQL supplémentaire.
  3. Git est la source de vérité du contenu, PocketBase la surface d'édition.
  4. Le moteur est un paquet TypeScript pur et déterministe — pas de React, pas de réseau, pas de Math.random, pas de Date.now.
  5. Le LLM écrit le contenu, la graine choisit dedans. Rien de généré au runtime.
  6. Le modèle sépare partout définition (auteur) et instance (partie).
  7. Perçu vs réel (Rated) sur tout stat qui peut mentir : c'est le support de la mécanique centrale.
  8. Il faut une troisième ressource bidirectionnelle (confiance, moral, réputation) — sinon la partie n'est qu'une descente.
  9. Le format court (30–60 min) est une contrainte de conception, pas une limite : on montre chaque geste une fois, puis on résume.
  10. 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.