feat(session-4): module Pa touché et scène arcade Ranmasé en Phaser 4
Pa touché est une consultation, pas un mode de jeu : cinq plantes triées par gravité, dépliables, sans chrono, sans score, sans épreuve. Le module affiche lui-même qu'il n'a pas encore été relu par une personne compétente et dit que cette relecture est la contribution la plus utile au projet. Ranmasé : import dynamique, game.destroy(true) au démontage, communication par événements — la scène ne touche aucun état Svelte et n'émet que sur changement, jamais par frame. Miroir DOM sémantique, canvas aria-hidden, jouable au clavier. Écran de chargement designé. Game design guidé par la pédagogie : laisser passer une plante dangereuse ne coûte rien (c'est le bon geste), ramasser le mauvais fruit coûte 2 points et pas une vie (il n'y a pas d'erreur à cueillir), une plante dangereuse sur cinq. Budgets mesurés et consignés dans l'ADR 0002 - shell hors Phaser : 78 Ko gzip (budget 170) - Phaser seul : 348 Ko gzip, sous le seuil de réexamen de 450 - absent du chemin critique de l'accueil, vérifié sur le HTML prérendu - build total 1,4 Mo Une prescription de l'ADR 0002 était fausse : l'option `resolution` n'existe pas dans Phaser 4 (pixelRatio y est en lecture seule). Le plafonnement passe par un tampon de rendu fixe 480×640 étiré en CSS — plafond dur plutôt que relatif. L'ADR est corrigé, pas contourné. Reste non mesuré : les 30 fps sur Mali-G52, qui demandent un appareil réel. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -48,12 +48,29 @@ au budget JS, borné par quatre conditions :
|
||||
|
||||
### Mesures — à compléter en session 4
|
||||
|
||||
| Mesure | Cible | Relevé |
|
||||
| Mesure | Cible | Relevé (2026-07-27) |
|
||||
|---|---|---|
|
||||
| Shell JS initial (gzip) | ≤ 170 Ko | _à mesurer_ |
|
||||
| Bundle Phaser seul (gzip) | information | _à mesurer_ |
|
||||
| fps scène Ranmasé sur Mali-G52 | ≥ 30 stables | _à mesurer_ |
|
||||
| Poids total de l'accueil | ≤ 2 Mo | _à mesurer_ |
|
||||
| Shell JS initial, Phaser exclu (gzip) | ≤ 170 Ko | **78 Ko** ✅ |
|
||||
| Bundle Phaser seul (gzip) | information | **348 Ko** — sous le seuil de réexamen de 450 Ko |
|
||||
| Phaser dans le chemin critique de l'accueil | absent | **absent**, vérifié sur le HTML prérendu ✅ |
|
||||
| Poids total du build | ≤ 2 Mo | **1,4 Mo** ✅ |
|
||||
| fps scène Ranmasé sur Mali-G52 | ≥ 30 stables | **non mesuré** — demande un appareil réel |
|
||||
|
||||
Le total JS du site atteint 426 Ko gzip, mais 348 Ko ne sont téléchargés qu'à l'entrée dans
|
||||
`/je/ranmase/`. Un visiteur de l'encyclopédie ne les voit jamais.
|
||||
|
||||
### Correction apportée à cet ADR par la mise en œuvre
|
||||
|
||||
Cet ADR prescrivait un « DPR plafonné à 1,5 » via l'option `resolution`. **Cette option
|
||||
n'existe pas dans Phaser 4** : `pixelRatio` y est une information matérielle en lecture
|
||||
seule, et `resolution` avait déjà été neutralisée en Phaser 3.
|
||||
|
||||
L'objectif est atteint autrement, et mieux : le tampon de rendu est fixé à **480 × 640**,
|
||||
étiré en CSS par le mode `FIT`. Le GPU dessine donc toujours 480 × 640 pixels, quel que
|
||||
soit le DPR de l'appareil — c'est-à-dire un plafond dur, là où `resolution` n'aurait donné
|
||||
qu'un plafond relatif.
|
||||
|
||||
`powerPreference: 'low-power'` existe bien, sous la clé `render`.
|
||||
|
||||
## Condition de réexamen
|
||||
|
||||
|
||||
Reference in New Issue
Block a user