Files
games/deltas/0.1.0/0-pre.10.md
2026-09-16 10:21:09 +02:00

3.2 KiB

Delta 0.1.0-0-pre.10

Base

Base validée : 0.1.0-0-pre.9.fix.1.

Objectif

Rendre le POC Reflex effectivement jouable avec le même gameplay Rust sur Desktop et Android.

Scène portable

engine-v1-common introduit :

RenderColor
NormalizedRect
RenderRect
EngineScene

EngineGame::scene() fournit un snapshot portable après chaque update.

Le backend SDL3 convertit les coordonnées normalisées vers la taille de sortie courante, donc le redimensionnement Desktop reste indépendant des coordonnées gameplay.

Gameplay Reflex

La cible est visible sous forme de rectangle jaune.

Le score augmente uniquement lorsqu'une impulsion Primary porte un pointeur situé à l'intérieur de la cible.

Après chaque succès, la cible se déplace selon une séquence déterministe de huit positions.

Input

Desktop :

  • clic gauche = impulsion Primary ;
  • déplacement souris avec bouton maintenu = mise à jour du pointeur ;
  • relâchement = pointeur inactif.

Android :

  • FingerDown = impulsion Primary ;
  • FingerMotion = mise à jour sans répétition du déclenchement ;
  • FingerUp/FingerCanceled = pointeur inactif.

Un contact maintenu ne peut donc plus compter comme un succès à chaque frame.

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-common --all-targets --all-features
cargo test -p engine-v1-sdl --all-targets --all-features
cargo test -p game-reflex-poc --all-targets --all-features

Smoke Desktop

cargo run -p game-reflex-poc-desktop

Critères :

  • cible jaune visible ;
  • clic hors cible : aucun déplacement ;
  • clic dans la cible : déplacement immédiat vers la position suivante ;
  • plusieurs succès consécutifs possibles ;
  • resize de fenêtre : la cible conserve ses coordonnées relatives ;
  • Escape et fermeture système restent propres.

Build Android

Le code natif a changé : reconstruire impérativement le cdylib Reflex.

python3 scripts/build_android_rust.py reflex

Puis :

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

Si un appareil ou émulateur est disponible :

adb install -r Android/game-reflex-poc/build/outputs/apk/debug/game-reflex-poc-debug.apk
adb shell am start -n com.sasedev.games.reflex/.ReflexActivity

Critères appareil :

  • surface SDL visible ;
  • cible jaune visible ;
  • tap hors cible sans succès ;
  • tap dans la cible déplace la cible ;
  • pas de crash JNI ou natif.

Si aucun device n'est disponible, le build natif + APK et le smoke Desktop suffisent pour valider techniquement le delta, avec smoke Android explicitement reporté.

Transition

Si les gates sont propres, passer automatiquement à 0.1.0-0-pre.11 pour rendre Snake jouable et vérifier la réutilisation du modèle de scène.

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