53 lines
2.7 KiB
Markdown
53 lines
2.7 KiB
Markdown
# Session 4 — Ranmasé (Phaser 4) et Pa touché
|
||||
|
|
|
|||
|
|
**Date :** 2026-07-27
|
|||
|
|
|
|||
|
|
## Porte de sortie
|
|||
|
|
|
|||
|
|
| Critère | Cible | Mesuré |
|
|||
|
|
|---|---|---|
|
|||
|
|
| Phaser dans le bundle initial | absent | **absent** du HTML prérendu de l'accueil ✅ |
|
|||
|
|
| Shell JS initial, Phaser exclu | ≤ 170 Ko gzip | **78 Ko** ✅ |
|
|||
|
|
| Bundle Phaser mesuré et consigné | fait | **348 Ko gzip**, inscrit dans l'ADR 0002 ✅ |
|
|||
|
|
| Miroir DOM de la scène | navigable | liste textuelle de ce qui tombe, canvas `aria-hidden` ✅ |
|
|||
|
|
| Écran de chargement designé | présent | flag chip + « Chargement du jaden… » ✅ |
|
|||
|
|
| Module Pa touché | aucun chrono, aucun score, aucune épreuve | ✅ |
|
|||
|
|
| `npm run check` | 0/0 | **266 fichiers, 0/0** ✅ |
|
|||
|
|
| fps sur Mali-G52 | ≥ 30 stables | **non mesuré** — demande un appareil réel |
|
|||
|
|
|
|||
|
|
## Pa touché — une consultation, pas un mode de jeu
|
|||
|
|
|
|||
|
|
Cinq plantes, triées du plus grave au moins grave, chacune dépliable. Aucun chrono, aucun
|
|||
|
|
score, aucun classement, rien à débloquer. Le brief est catégorique et il a raison :
|
|||
|
|
transformer ces fiches en quiz d'adresse ferait d'une consigne de survie un jeu de
|
|||
|
|
rapidité.
|
|||
|
|
|
|||
|
|
Le module affiche lui-même qu'il **n'a pas encore été relu** par une personne compétente,
|
|||
|
|
et dit qu'une telle relecture est la contribution la plus utile que le projet puisse
|
|||
|
|
recevoir. C'est dans le produit, pas seulement dans un fichier de développeur.
|
|||
|
|
|
|||
|
|
## Ranmasé — l'îlot Phaser
|
|||
|
|
|
|||
|
|
Import dynamique depuis la route, `game.destroy(true)` au démontage, communication par
|
|||
|
|
**événements** — la scène ne lit ni n'écrit aucun état Svelte, et n'émet que lorsqu'une
|
|||
|
|
valeur change, jamais soixante fois par seconde.
|
|||
|
|
|
|||
|
|
Trois choix de game design qui viennent de la pédagogie, pas du gameplay :
|
|||
|
|
|
|||
|
|
- **Laisser passer une plante dangereuse ne coûte rien.** C'est le bon geste : le jeu ne
|
|||
|
|
peut pas récompenser le fait d'attraper ce qu'on doit éviter.
|
|||
|
|
- **Ramasser le mauvais fruit coûte 2 points, pas une vie.** Il n'y a pas d'erreur à
|
|||
|
|
cueillir un fruit comestible ; il y a juste une consigne à mieux lire.
|
|||
|
|
- **Une plante dangereuse sur cinq.** Présente, jamais dominante.
|
|||
|
|
|
|||
|
|
Aucun asset externe : les objets sont des primitives graphiques dans la palette de la
|
|||
|
|
charte. Embarquer des textures avant que le pipeline n'ait produit quoi que ce soit de
|
|||
|
|
validé aurait été mettre la charrue avant les bœufs.
|
|||
|
|
|
|||
|
|
### Une prescription de l'ADR 0002 qui était fausse
|
|||
|
|
|
|||
|
|
L'ADR demandait un « DPR plafonné à 1,5 » via l'option `resolution`. **Elle n'existe pas
|
|||
|
|
dans Phaser 4.** Corrigé et documenté : le tampon de rendu est fixé à 480 × 640 et étiré
|
|||
|
|
en CSS par le mode `FIT`, ce qui donne un plafond dur là où `resolution` n'aurait donné
|
|||
|
|
qu'un plafond relatif. L'ADR a été mis à jour plutôt que contourné.
|