PERFORMANCE_BUDGET.md

Budgets de performance — Slot Factory Engine. Appliqués par la validation automatique du Factory (bloquant = ❌, warning = ⚠). Basés sur les standards observés (payload jouable < 10 Mo, 60 fps mobile) et notre vécu (TNF = 123 Mo assumés pour un jeu vidéo-heavy : c'est l'EXCEPTION du style « personnage vidéo », pas la règle des slots reels).


1. Poids (par jeu buildé, après compression build — brotli/gzip servis par le CDN Stake)

Catégorie Budget ❌ (bloquant) Cible ⚠ Notes
Payload initial jouable (P0 : html+js+css + assets premier écran) ≤ 10 Mo ≤ 5 Mo first playable < 8 s en 4G
JS moteur (min+gz) ≤ 900 Ko ≤ 600 Ko Pixi ~450 Ko gz inclus
Textures P0+P1 (atlas premier spin) ≤ 6 Mo ≤ 4 Mo WebP q80–90, atlas ≤ 2048²
Audio total ≤ 4 Mo ≤ 2,5 Mo MP3 128–192 kbps ; bgm ≤ 1,2 Mo/piste
Vidéos (toutes, lazy P2) ≤ 20 Mo ≤ 12 Mo H.264 CRF 19–23 ; 1 cinématique ≤ 4 Mo
Clips personnage (module character-actor, opt-in) ≤ 40 Mo ≤ 25 Mo budget SÉPARÉ, assumé, affiché au créateur
Fonts ≤ 200 Ko ≤ 120 Ko WOFF2, sous-ensembles latin
Total bundle slot reels (sans character-actor) ≤ 30 Mo ≤ 18 Mo
Total bundle avec character-actor ≤ 70 Mo ≤ 45 Mo à la TNF, gaté en P2

2. Runtime

Métrique Budget ❌ Cible ⚠
FPS desktop (spin + win presentation) ≥ 55 60
FPS mobile milieu de gamme (throttle CPU ×4 Playwright) ≥ 30 ≥ 50
First playable (4G simulé, cache froid) ≤ 10 s ≤ 6 s
Interaction → spin start ≤ 120 ms ≤ 60 ms
Mémoire GPU textures résidentes ≤ 256 Mo ≤ 160 Mo
Fuites : delta heap après 200 spins auto ≤ 10 % ~0 %
Long tasks (> 50 ms) pendant le spin 0 0

3. Techniques imposées par le moteur

4. Mesure (harnais factory/qa/perf)