0.1.0-0-pre.11
This commit is contained in:
106
deltas/0.1.0/0-pre.11.md
Normal file
106
deltas/0.1.0/0-pre.11.md
Normal 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`.
|
||||
Reference in New Issue
Block a user