0.3.0-2-beta.2
This commit is contained in:
@@ -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`.
|
||||
|
||||
91
docs/architecture/018-V0_3_0_WEB_SNAKE_BASELINE.md
Normal file
91
docs/architecture/018-V0_3_0_WEB_SNAKE_BASELINE.md
Normal 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.
|
||||
Reference in New Issue
Block a user