0.1.0-0-pre.11

This commit is contained in:
2026-09-16 11:32:07 +02:00
parent fa098943bf
commit ab9403384f
14 changed files with 465 additions and 44 deletions

106
deltas/0.1.0/0-pre.11.md Normal file
View File

@@ -0,0 +1,106 @@
<!-- 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`.