Files
games/deltas/0.1.0/0-pre.11.md
2026-09-16 11:32:07 +02:00

107 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- file: deltas/0.1.0/0-pre.11.md -->
<!-- version: 1 -->
# Delta 0.1.0-0-pre.11
## Base
Base validée : `0.1.0-0-pre.10.fix.1`.
## Objectifs
- rendre Snake réellement jouable ;
- valider la réutilisation de `EngineScene` et du backend input SDL3 ;
- figer le NDK au niveau projet sans variable globale ;
- permettre un smoke natif x86_64 sur l'AVD Linux.
## Snake
Le POC utilise une grille 12 × 20, un serpent initial de trois segments, un déplacement automatique, quatre directions, une nourriture déterministe, croissance/score et reset sur collision mur/corps.
Le rendu réutilise exclusivement `EngineScene` et `RenderRect`.
## Input
Desktop : flèches clavier.
Souris/tactile : le clic/tap produit aussi une direction selon l'axe dominant depuis le centre de l'écran. Reflex ignore ces directions ; Snake les consomme.
## NDK
La propriété unique :
```text
androidNdkVersion=28.2.13676358
```
est lue par Gradle et `scripts/build_android_rust.py`.
Le script définit `ANDROID_NDK_HOME` uniquement dans l'environnement du sous-processus `cargo ndk`.
## Validation
```bash
cargo fmt --all
cargo fmt --all -- --check
python3 scripts/audit_rust_workspace_rules.py
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates Android deltas history
cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test -p engine-v1-sdl --all-targets --all-features
cargo test -p game-snake-poc --all-targets --all-features
```
Smoke Desktop :
```bash
cargo run -p game-snake-poc-desktop
```
Critères : serpent/nourriture visibles, déplacement automatique, flèches fonctionnelles, demi-tour refusé, croissance sur nourriture, reset sur collision, fermeture propre.
Android ARM64 :
```bash
python3 scripts/build_android_rust.py snake --abi arm64-v8a
```
Android x86_64 pour l'AVD :
```bash
rustup target add x86_64-linux-android
python3 scripts/build_android_rust.py snake --abi x86_64
```
Puis :
```bash
cd Android
gradle :game-snake-poc:assembleDebug
cd ..
```
Vérifier :
```bash
unzip -l Android/game-snake-poc/build/outputs/apk/debug/game-snake-poc-debug.apk | grep 'lib/arm64-v8a/libgame_android_entrypoint.so'
unzip -l Android/game-snake-poc/build/outputs/apk/debug/game-snake-poc-debug.apk | grep 'lib/x86_64/libgame_android_entrypoint.so'
```
Smoke AVD :
```bash
adb devices
adb shell getprop ro.product.cpu.abi
adb install -r Android/game-snake-poc/build/outputs/apk/debug/game-snake-poc-debug.apk
adb shell am start -n com.sasedev.games.snake/.SnakeActivity
```
## Transition
Si ces gates sont propres, `0.1.0-0-pre.11` termine la phase `0-pre.*` prévue et permet de passer à `0.1.0-1-alpha.1`.
En cas d'échec imputable au projet, produire `0.1.0-0-pre.11.fix.1`.