03 — Modèle de données : vue d'ensemble
Les cinq entités listées au départ sont bien les bonnes briques. Ce document répond à la question posée — « est-ce suffisant pour couvrir tous les corps de métier, ou ai-je oublié une dimension ? » — et donne la carte générale.
Les fiches détaillées sont dans data-model/, qui porte
aussi les conventions communes (unités, Rated, enum des postes, nommage des
événements).
1. Réponse courte
Pour couvrir les corps de métier : oui, People + Éléments suffit. J'ai passé
en revue tous les postes d'un long métrage français (cf. §2) — chacun se ramène
à « des gens » et/ou « des choses », plus une étiquette poste.
Mais il manque une dimension, et ce n'est pas une dimension de métier : ce sont les dimensions de liaison. Les cinq entités décrivent des choses qui existent. Le jeu, lui, porte sur les engagements qui les relient :
Ce n'est pas « le chef op » qui coûte cher et fait mal. C'est le contrat qu'on a signé avec lui, pour ces dates-là, sur cette ligne de budget-là, au service d'une intention que le réalisateur n'a jamais complètement dite.
Quatre liaisons manquent, plus deux entités qui n'entrent dans aucune des cinq :
| # | Manquant | Nature | Sans elle… |
|---|---|---|---|
| 1 | Deal (contrat / engagement) | liaison personne↔production | pas de négociation, pas de dette différée, pas de clause qui explose |
| 2 | Day (journée du plan de travail) | liaison temps↔tout le reste | le plan de travail — l'objet central du métier — n'existe pas |
| 3 | Task / Chantier (travaux de préparation) | liaison gens↔éléments dans le temps | les décors et les costumes apparaissent par magie |
| 4 | BudgetLine + Financement | liaison argent↔postes | l'argent est un seul nombre, donc il n'y a pas d'arbitrage |
| 5 | Vision (le film idéal du réalisateur) | le barème | on ne sait pas ce que « le film idéal » veut dire, donc on ne peut pas noter |
| 6 | Capital relationnel | 3ᵉ ressource, bidirectionnelle | la partie n'est qu'une courbe descendante |
Détail et justification en §3.
2. Vérification : chaque poste se ramène-t-il à People + Éléments ?
| Poste | Gens | Éléments | Manque-t-il quelque chose ? |
|---|---|---|---|
| Réalisation (réal, 1er/2e assistant, scripte) | ✅ | — | non — mais le réalisateur est aussi porteur de la Vision (§3.5) |
| Production, administration, compta | ✅ | — | non |
| Casting (comédiens, figuration, doublures) | ✅ | — | c'est le Deal qui fait mal, pas la personne (§3.1) |
| Image (chef op, cadre, 1er AC, DIT) | ✅ | caméra, optiques, moniteurs | non |
| Machinerie | ✅ | travellings, grue, dolly | non |
| Électro | ✅ | projecteurs, groupe, câbles | non |
| Son | ✅ | perche, HF, enregistreur | non |
| Déco | ✅ chef déco, ensemblier, accessoiriste, construction | décors, accessoires, mobilier | ⚠️ oui : un décor se construit — ça prend des semaines et des gens. Il faut un Chantier (§3.3) |
| Costumes | ✅ | costumes | ⚠️ idem : essayages, fabrication, retouches = chantier |
| HMC | ✅ | perruques, prothèses, maquillage FX | ⚠️ une prothèse se fabrique avant, et se pose le matin (2 h de maquillage = 2 h de tournage en moins) → chantier + contrainte de journée |
| Cascades | ✅ coordinateur, cascadeurs | protections, câbles, véhicules | non, mais très réglementé (facette sur l'élément) |
| SFX plateau | ✅ | pluie, fumée, feu, armurerie | non |
| VFX | ✅ superviseur (plateau) + studio (post) | plaques, tracking markers, shots | ⚠️ oui : un plan VFX est un travail sur un plan déjà tourné, avec des itérations et des allers-retours. Ni People, ni Élément, ni Plan tel quel → chantier de post (§3.3) |
| Animaux | ✅ dresseur | l'animal | non (l'animal = élément à facettes Périssable+Réglementé) |
| Enfants | ✅ coach | — | contrainte horaire → porte sur la Journée (§3.2) |
| Régie | ✅ | véhicules, cantine, base-vie | non |
| Post (montage, mixage, étalonnage, musique) | ✅ | salles, studios, licences | ⚠️ oui : la post ne produit pas des plans, elle produit des versions du film par itérations. Chantier + livrables |
| Juridique, assurances | ✅ | contrats, autorisations, polices | l'autorisation est un élément Réglementé ; le reste c'est du Deal |
Conclusion. Tous les postes tiennent dans People + Éléments. Ce qui coince systématiquement, c'est le temps de fabrication (déco, costumes, HMC, VFX, post) : ces départements ne fournissent pas, ils fabriquent. D'où l'entité manquante n°3.
3. Les six manquants, en détail
3.1 Deal — le contrat, pas la personne
L'énoncé du jeu le dit lui-même : « le joueur pourra choisir d'engager telle personne au salaire bradé, mais finira par en payer le prix plus tard ». Cette phrase ne parle pas d'une personne, elle parle d'un accord.
Une même personne peut avoir plusieurs deals possibles (3 semaines à plein tarif ? 6 jours groupés ? un forfait ?), et c'est le deal qui porte : le cachet négocié, les jours garantis (payés même si non tournés — piège classique), l'exclusivité, les défraiements, les clauses (loge, chauffeur, coach, doublure, montage final), les pénalités, le dédit.
C'est aussi le deal qui porte la dette : tarif_negocie / tarif_marche = 0.6
est la condition qui armera l'incident dans trois semaines.
→ détaillé dans data-model/people.md.
3.2 Day — la journée du plan de travail
C'est l'oubli le plus important, parce que c'est l'objet quotidien du métier.
L'énoncé dit : « les éléments d'entrée doivent être coordonnés autour des contraintes de temps de chacun ». Cette coordination n'est pas une propriété diffuse : c'est le plan de travail, un document, et le premier livrable du directeur de production.
Une journée est une entité de plein droit :
type DayPlan = {
dayIndex: number
date: string
location: ElementRef // un seul décor principal — c'est la règle
effect: 'jour' | 'nuit' | 'aube' | 'crepuscule'
scenes: SceneRef[] // ce qu'on espère tourner
shots: ShotRef[] // ce qu'on espère couvrir
calledPeople: DealRef[] // qui est convoqué (= qui est payé)
calledElements: ElementRef[] // ce qui doit être livré
callTime: string // PLT — la feuille de service
wrapTarget: string
constraints: DayConstraint[] // enfants, amplitude 12h, repos 11h, nuit
}
Ce qu'elle apporte au jeu :
- Le regroupement (tourner par décor, grouper les jours d'un comédien) — la compétence n°1 du métier, et impossible à enseigner sans cette entité.
- Le coût réel : une journée, c'est l'équipe entière payée, qu'on tourne 12 plans ou 3. Le joueur doit sentir qu'un jour de tournage a un prix fixe énorme.
- Les contraintes légales (amplitude, repos, enfants, nuit) s'appliquent à une journée, pas à une personne.
- Le rythme du jeu : une journée = un tour. Cf.
04-game-loop.md. - Le report : la mécanique de catastrophe la plus lisible est « la scène 34 n'a pas été tournée, elle glisse » — il faut une journée pour qu'elle glisse.
En pré-production le joueur construit le plan de travail ; au tournage il le répare tous les matins. C'est le jeu.
3.3 Task / Chantier — la fabrication
Ce qui se passe entre l'achat et le tournage. Un chantier consomme des gens d'un poste pendant une durée, et produit ou améliore un élément (ou un plan, en post).
type Task = {
kind: 'construction' | 'costume' | 'prothese' | 'repérage'
| 'essai' | 'casting' | 'vfx' | 'montage' | 'mixage' | 'etalonnage'
poste: Poste
produces: ElementRef | ShotRef | DeliverableRef
workRequired: number // en jours-hommes
assignedDeals: DealRef[]
deadlineTick: Tick // la date à laquelle il faut que ce soit prêt
quality: Rated // le résultat, connu tard
iterations?: number // VFX, montage : on refait
}
Pourquoi c'est indispensable :
- Sinon la pré-production n'est qu'une boutique, alors que c'est 80 % du métier : on y fabrique, on y essaie, on y répète.
- Ça donne un vrai coût au temps en préparation : réduire la préparation de deux semaines, c'est livrer un décor bâclé — la leçon la plus utile du jeu.
- Ça modélise la post-production sans entité nouvelle : le montage, le mixage et les VFX sont des chantiers itératifs sur des plans déjà tournés.
- Ça donne un rôle au VFX supervisor (cf. les collaborateurs du projet) : les décisions VFX se prennent avant le tournage — plaque, tracking, fond vert vs décor réel — et se payent en post.
3.4 BudgetLine + Financement — l'argent n'est pas un nombre
Un seul compteur d'argent supprime tout l'intérêt. Il faut :
- Des chapitres de devis (cf.
data-model/README.md§6) avec chacun son enveloppe. Le drame « il reste de l'argent, mais pas sur la bonne ligne » est une vraie situation de production. - Un engagé vs un dépensé. On engage une dépense (bon de commande, contrat) bien avant de la payer. Le joueur doit apprendre que l'argent est parti au moment de la signature, pas au moment du virement.
- La trésorerie, distincte du budget : les financements arrivent par tranches (à la signature, au premier jour de tournage, à la livraison). On peut être « dans le budget » et incapable de payer la cantine vendredi.
- Les sources de financement : producteur, CNC, préachat chaîne, région, coproduction, crédit d'impôt, SOFICA — chacune avec ses conditions. C'est le seul mécanisme qui permet à l'argent de remonter, et il doit rester narratif : « si Marion V. signe, la chaîne remet 300 k€ » est un excellent ressort dramatique.
- La marge d'imprévus (~10 %) comme ligne visible qui fond.
3.5 Vision — le barème du réalisateur
Le jeu dit : « aboutir au film idéal du réalisateur ». Il faut donc que « le film idéal » soit une donnée, sinon la note finale est arbitraire.
type Vision = {
weights: Record<Criterion, number> // ce qui compte pour lui
nonNegotiables: SceneRef[] // les scènes auxquelles il tient
redLines: string[] // « je ne tourne pas en studio »
hiddenPreferences: Rated[] // ce qu'il n'a pas dit, et qu'on découvre
}
Deux choix de design qui découlent directement :
- La vision est partiellement cachée. Le joueur la découvre en discutant, en se trompant, en observant. Elle se révèle par événements. C'est ce qui fait qu'on travaille avec quelqu'un plutôt qu'on optimise une fonction.
- L'utilité réelle d'une scène ≠ l'attachement du réalisateur à cette scène. Le désaccord entre les deux est exactement le « choix cornélien » décrit dans l'énoncé : la scène chère, magnifique, inutile au film — et à laquelle il tient.
3.6 Le capital relationnel — la troisième ressource
Le temps descend, l'argent descend. S'il n'y a que ça, la partie est une courbe monotone et le joueur ne connaît jamais l'élan.
Il faut au moins une jauge qui remonte :
| Jauge | Monte quand | Descend quand | Sert à |
|---|---|---|---|
| Confiance du réalisateur | on protège ses scènes, on trouve des solutions | on coupe, on refuse, on ment | il accepte des concessions, il tourne plus vite |
| Patience du producteur | on tient le devis, on communique | dépassement, mauvaise nouvelle tardive | il débloque, ou il impose |
| Moral de l'équipe | bonnes conditions, respect des horaires, cantine | heures sup, chaos, injustice | vitesse, fiabilité, taux d'aléa |
| Réputation du joueur | ce que la partie laisse en héritage | méta-progression, fin de partie |
Ces jauges sont ce qui permet de se rattraper : on ne récupère jamais un jour perdu, mais on peut regagner une équipe.
4. Carte générale
┌──────────────┐
│ VISION │ ce que le réal veut (partiellement caché)
└──────┬───────┘
│ définit les pondérations
▼
SCENE ──dépouillement──► REQUIREMENTS ──────┐
│ │
│ importance narrative │ il faut, pour chaque poste :
▼ │
FILM ◄── SHOTS ◄──── résolution ◄────────────┤
▲ │
│ ▼
DAY ◄──── PEOPLE (via DEAL) + ELEMENTS (via TASK)
│ │ │
│ └── BUDGET LINE ┘
│ │
▼ ▼
EVENTS ◄──────────── conditions sur tout l'état
│
└──► effets ──► nouveaux GameEvents ──► état
Lecture : la scène dit ce qu'il faut, les deals et les chantiers fournissent, la journée coordonne, la résolution produit des plans, les plans font le film, la vision le note, et les événements sabotent tout le trajet.
5. Inventaire des entités
| Entité | Type | Fiche |
|---|---|---|
Person | contenu | data-model/people.md |
Element | contenu | data-model/production-elements.md |
Scene | contenu | data-model/scenes.md |
Shot | contenu (prévu) + runtime (produit) | data-model/shots.md |
IncidentDef / GameEvent | contenu / runtime | data-model/events.md |
Deal | runtime (négocié en jeu) | people.md §6 |
DayPlan | runtime (construit par le joueur) | §3.2 ci-dessus — fiche à écrire |
Task | runtime | §3.3 — fiche à écrire |
BudgetLine / FundingSource | contenu (barème) + runtime | §3.4 — fiche à écrire |
Vision | contenu | §3.5 — fiche à écrire |
Reputation / jauges | runtime | §3.6 |
6. Deux contraintes transverses décidées après coup
Les fiches détaillées ont été rédigées avant ces deux réponses ; elles doivent être relues à cette lumière.
a. Une partie dure 30 à 60 minutes
C'est la contrainte de cadrage, et elle est violente. Elle interdit de simuler un long métrage entier scène par scène. Conséquences sur le modèle :
- 10 à 15 scènes dans le scénario jouable, pas 90. Les autres existent en toile de fond, agrégées (« le bloc des scènes d'appartement »).
- 12 à 20 tours au total, tous actes confondus.
- 8 à 12 recrutements décisifs ; le reste de l'équipe est engagé en bloc par poste (« l'équipe machinerie, standard, 3 personnes »).
- Le dépouillement se fait sur 2 ou 3 scènes seulement, en détail — les autres sont dépouillées automatiquement. On enseigne le geste, on ne le fait pas répéter 90 fois.
- Une granularité de tour = une journée, pas une demi-journée (à corriger
dans
data-model/README.md§3 si confirmé).
Le modèle de données ne change pas ; c'est le volume de contenu instancié qui change. Le moteur doit savoir traiter une scène « détaillée » et une scène « agrégée » avec le même type.
b. i18n dès le modèle
FR d'abord, EN ensuite. Donc aucune chaîne affichable ne doit être un string
nu dans le contenu :
type LocalizedText = { fr: string; en?: string }
À appliquer sur : name, summary, tous les textes d'incident, les options, le
texte des scènes, les libellés de traits. Les slug, id, tag et clés
d'énumération restent en français technique non traduit (c'est du vocabulaire
métier, il fait partie du produit). C'est cinq minutes maintenant, une semaine
plus tard.
7. Ce qui reste à trancher
Repris dans 08-open-questions.md.
- Le
Dealest-il négociable en continu (renégociation en cours de tournage) ou figé à la signature ? - Le joueur construit-il le plan de travail lui-même, ou valide-t-il celui que propose le 1er assistant réalisateur (plus réaliste, et bien plus jouable en 45 minutes) ?
- Les chantiers sont-ils visibles individuellement, ou agrégés en une barre de progression par poste ?
- Combien de chapitres de devis exposer au joueur — les 10 réels, ou 4 ou 5 regroupés ? (« réaliste simplifié » plaide pour 5 avec les vrais noms)
- La réputation persiste-t-elle entre les parties (méta-progression) ?