0.3.0-0-pre.3
This commit is contained in:
53
docs/development/009-SNAKE_WEB_WASM_BUILD.md
Normal file
53
docs/development/009-SNAKE_WEB_WASM_BUILD.md
Normal file
@@ -0,0 +1,53 @@
|
||||
<!-- file: docs/development/009-SNAKE_WEB_WASM_BUILD.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Build WASM du POC Snake Web direct
|
||||
|
||||
## Objectif
|
||||
|
||||
`game-snake-poc-wasm` fournit le bridge Rust/WASM du premier host navigateur direct. Cette tranche valide uniquement la production du module WebAssembly et de ses bindings JavaScript ; le frontend Vite/TypeScript et le shell Bootstrap 5 appartiennent à `0-pre.4`.
|
||||
|
||||
## Prérequis
|
||||
|
||||
À installer une fois si nécessaire :
|
||||
|
||||
```bash
|
||||
rustup target add wasm32-unknown-unknown
|
||||
cargo install wasm-bindgen-cli --locked
|
||||
```
|
||||
|
||||
Le CLI `wasm-bindgen` utilisé doit rester compatible avec la version de la crate `wasm-bindgen` résolue par Cargo.
|
||||
|
||||
## Build Rust
|
||||
|
||||
Depuis la racine du dépôt :
|
||||
|
||||
```bash
|
||||
cargo build -p game-snake-poc-wasm --target wasm32-unknown-unknown
|
||||
```
|
||||
|
||||
La configuration Cargo racine place l'artefact sous :
|
||||
|
||||
```text
|
||||
../builds/sasedev-games/target/wasm32-unknown-unknown/debug/game_snake_poc_wasm.wasm
|
||||
```
|
||||
|
||||
## Génération des bindings navigateur
|
||||
|
||||
Créer les bindings avec l'outil natif, sans orchestrateur Python :
|
||||
|
||||
```bash
|
||||
wasm-bindgen \
|
||||
../builds/sasedev-games/target/wasm32-unknown-unknown/debug/game_snake_poc_wasm.wasm \
|
||||
--target web \
|
||||
--out-dir ../builds/sasedev-games/game-snake-poc-web/wasm \
|
||||
--out-name game_snake_poc_wasm
|
||||
```
|
||||
|
||||
Les fichiers générés restent intégralement hors du dépôt sous `../builds/sasedev-games/`. Ils ne sont ni commités ni copiés dans `crates/` par cette tranche.
|
||||
|
||||
## Frontière avec `0-pre.4`
|
||||
|
||||
`0-pre.3` s'arrête au module WASM et à ses bindings générés. `0-pre.4` ajoutera le frontend Vite/TypeScript qui les consomme, le document HTML Bootstrap 5, le Canvas, le clavier et les contrôles tactiles.
|
||||
|
||||
Le frontend reste responsable de la cadence d'appel à `tick()` et de la traduction des événements navigateur vers `left()`, `right()`, `up()` et `down()`.
|
||||
Reference in New Issue
Block a user