Files
games/docs/architecture/018-V0_3_0_WEB_SNAKE_BASELINE.md
2026-09-20 14:30:55 +02:00

3.2 KiB
Raw Blame History

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.