3.2 KiB
Baseline consolidée 0.3.0 — Snake Web direct
Statut
Ce document consolide les résultats effectivement validés du premier POC plateforme de la série 0.3.x. Il prépare le gel RC de 0.3.0 et sert de baseline au second host Snake prévu en 0.3.1.
Chaîne validée
Le chemin Web direct retenu est :
game-snake-poc
↓
game-snake-poc-wasm
↓ wasm-bindgen --target web
Web/game-snake-poc
↓
Vite / TypeScript / Bootstrap 5 / Canvas
game-snake-poc reste indépendant de SDL3, DOM, Canvas, Tauri et des APIs plateforme. game-snake-poc-wasm adapte la scène et les entrées au host Web et porte la provenance runtime ; le frontend gère DOM, lifecycle navigateur, rendu Canvas et shell UI.
Input et cadence
Les entrées navigateur sont converties vers les quatre actions Snake Left, Right, Up, Down. Une entrée ne fait pas avancer directement la simulation : la direction est mise en attente puis consommée au prochain tick() WASM.
Le host valide clavier, contrôles pointer/tactiles, resize et pause/reprise sans rattrapage massif après masquage d'onglet.
Shell Web
Le frontend reprend les conventions utiles des applications Desk KSP sans dépendre de Tauri :
- Vite + TypeScript ;
- Bootstrap 5 / Bootswatch Pulse ;
- Font Awesome ;
- Sass ;
- SimpleBar et
resize-observer-polyfill; - header/footer fixes et zone centrale scrollable ;
- Canvas conservant le ratio logique Snake
12 × 20.
Le frontend reste un host : il ne contient aucune règle de gameplay.
Assets
Les assets sources restent hors des crates sous assets/. Le build Web conserve les namespaces logiques :
assets/common/data/runtime.json → /common/data/runtime.json
assets/game-snake-poc/data/game.json → /game/data/game.json
Les mêmes routes sont valides en développement Vite et dans le bundle production.
Provenance runtime
La session Web conserve RuntimeProvenance dans l'adapter WASM. Les dimensions fixes sont Web / Browser / Wasm; la classe d'appareil et le profil d'entrée sont renseignés à partir de l'environnement et des entrées réellement observées.
Le smoke validé expose notamment :
web / browser / wasm / desktop / keyboard-mouse
Build
Le chemin Web direct ne dépend d'aucun orchestrateur Python :
Cargo
→ wasm-bindgen
→ Vite/npm
Les artefacts générés restent hors dépôt sous ../builds/sasedev-games/.
Résultat de l'extraction
0.3.0 ne justifie pas encore une abstraction WASM commune entre Reflex et Snake. Les deux adapters spécifiques restent préférables à une factorisation spéculative.
Le prochain host Snake doit réutiliser cette baseline et fournir un second cas réel avant extraction d'une couche commune WebView/WASM.
Témoin Desktop
Le runner game-snake-poc-desktop reste le témoin SDL3 natif. La beta 0.3.0-2-beta.1 a validé son build release et son smoke sans modification de gameplay ni de runtime SDL3.
Suite
0.3.1 doit éprouver Tauri Android + Snake. 0.3.2 peut ensuite tester Tauri Desktop et décider, sur deux consommateurs réels, si une factorisation WebView/frontend est justifiée.