Files
games/deltas/0.1.0/0-pre.11.fix.4.md

3.5 KiB

Delta 0.1.0-0-pre.11.fix.4

Base

Base déclarée : 0.1.0-0-pre.11.fix.3, non validée.

Motifs

Deux points restent à corriger avant validation finale de 0-pre.*.

Audit RUST-TEST-001

Le module externe unit_tests/swipe.rs était déclaré avec :

mod swipe_tests;

alors que la règle workspace exige la forme canonique :

mod tests;

Le corps des tests reste bien hors de src/.

Sortie explicite

Le smoke Android a montré un gameplay fonctionnel et des swipes nettement meilleurs, mais aucun contrôle visuel de sortie n'était disponible dans le jeu plein écran.

Sortie Desktop

Escape continue de quitter directement la boucle SDL, sans nécessiter le bouton de fermeture de la fenêtre.

Sortie Android

Le backend SDL configure :

SDL_ANDROID_TRAP_BACK_BUTTON=1

et quitte la boucle sur Keycode::AcBack.

Un contrôle de fermeture rouge avec un X blanc est également rendu en haut à droite.

Zone normalisée :

x = 0.86 .. 0.99
y = 0.015 .. 0.105

Un MouseButtonDown ou FingerDown dans cette zone quitte la boucle avant toute transmission de l'input au jeu.

Aucun exit() n'est utilisé : SdlRuntime::run retourne normalement, puis l'entrypoint Android retourne à SDL/Java.

Tests

Le fichier externe unit_tests/swipe.rs vérifie désormais aussi le hit-test du contrôle de sortie.

Validation Rust

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

cargo run -p game-snake-poc-desktop

Critères supplémentaires :

  • Escape quitte sans cliquer sur le bouton de fenêtre ;
  • aucun contrôle Android n'est visible sur Desktop.

Smoke Android x86_64

python3 scripts/build_android_rust.py snake --abi x86_64

cd Android
gradle :game-snake-poc:assembleDebug
cd ..

Puis :

android emulator start sasedev_games_api36
adb devices

android run \
    --apks=Android/game-snake-poc/build/outputs/apk/debug/game-snake-poc-debug.apk \
    --device=emulator-5554

Critères supplémentaires :

  • contrôle de fermeture visible en haut à droite ;
  • tap dessus termine proprement l'Activity ;
  • Back système termine également proprement l'Activity ;
  • aucun input Snake n'est déclenché par le contrôle de fermeture.

Test physique Galaxy S9+

Activer les Options développeur et le Débogage USB, connecter le téléphone et accepter l'autorisation RSA.

Identifier son serial et son ABI :

adb devices
adb -s <serial> shell getprop ro.product.cpu.abi

Reconstruire ARM64 après ce fix :

python3 scripts/build_android_rust.py snake --abi arm64-v8a

cd Android
gradle :game-snake-poc:assembleDebug
cd ..

Déployer :

android run \
    --apks=Android/game-snake-poc/build/outputs/apk/debug/game-snake-poc-debug.apk \
    --device=<serial>

Le téléphone réel sert à juger la latence et la qualité tactile, pas seulement la compatibilité d'installation.

Transition

Si les gates et les smokes sont propres, 0.1.0-0-pre.11.fix.4 valide la fin de la phase 0-pre.*.

En cas d'échec imputable au projet, produire 0.1.0-0-pre.11.fix.5.