0.3.0-2-beta.2

This commit is contained in:
2026-09-20 14:30:55 +02:00
parent ff1ec09d68
commit fca477eb23
13 changed files with 354 additions and 22 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/architecture/015-PLATFORM_POC_ARCHITECTURE.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Architecture des POC plateforme et réseau
@@ -11,12 +11,12 @@ Snake est le jeu-sonde principal.
## POC plateforme prioritaires
Première vague :
Première vague, réordonnée à partir du résultat réel de `0.3.0` :
- Tauri Android + Snake ;
- Web navigateur direct + Snake ;
- Tauri Desktop + Snake ;
- build Android multi-ABI avec outils natifs.
- Web navigateur direct + Snake — validé par `0.3.0` ;
- Tauri Android + Snake — prochain host prévu par `0.3.1` ;
- Tauri Desktop + Snake — prévu ensuite pour éprouver la factorisation WebView ;
- build Android multi-ABI avec outils natifs — tranche dédiée après les POC WebView.
Plateformes supplémentaires lorsque l'environnement existe : Windows SDL natif, macOS SDL natif et iOS SDL natif.
@@ -38,6 +38,8 @@ Un POC sert à identifier duplication, adapters manquants, capability réellemen
Une abstraction n'est pas extraite avant observation d'un besoin concret.
Le POC Web direct `0.3.0` n'a pas justifié d'extraire prématurément un adapter WASM commun entre Reflex et Snake : les deux adapters spécifiques restent acceptés. Le second host Snake doit d'abord fournir un second besoin réel avant toute factorisation.
## Relation avec Uroburas
Les résultats des POC `0.3.x` déterminent les choix techniques conservés pour la trajectoire Uroburas `0.4.x`.

View File

@@ -0,0 +1,91 @@
<!-- file: docs/architecture/018-V0_3_0_WEB_SNAKE_BASELINE.md -->
<!-- version: 1 -->
# 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 :
```text
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 :
```text
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 :
```text
web / browser / wasm / desktop / keyboard-mouse
```
## Build
Le chemin Web direct ne dépend d'aucun orchestrateur Python :
```text
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.