0.3.1-0-pre.3

This commit is contained in:
2026-09-21 01:13:37 +02:00
parent e4b657d0d3
commit 4f677dbc77
19 changed files with 1001 additions and 98 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/architecture/015-PLATFORM_POC_ARCHITECTURE.md -->
<!-- version: 2 -->
<!-- version: 3 -->
# Architecture des POC plateforme et réseau
@@ -14,12 +14,20 @@ Snake est le jeu-sonde principal.
Première vague, réordonnée à partir du résultat réel de `0.3.0` :
- Web navigateur direct + Snake — validé par `0.3.0` ;
- Tauri Android + Snake — prochain host prévu par `0.3.1` ;
- Tauri Desktop + Snake — prévu ensuite pour éprouver la factorisation WebView ;
- Tauri Android + Snake — POC de référence terminé par `0.3.1`, conservé pour comparaison mais non retenu comme voie de production Android par défaut ;
- Tauri Desktop + Snake — évaluation conditionnelle seulement si la WebView apporte un bénéfice produit explicite, notamment une voie de monétisation publicitaire viable ;
- build Android multi-ABI avec outils natifs — tranche dédiée après les POC WebView.
Plateformes supplémentaires lorsque l'environnement existe : Windows SDL natif, macOS SDL natif et iOS SDL natif.
## Positionnement Tauri Android après `0.3.1`
Le host Tauri Android reste pertinent comme preuve de portabilité du gameplay Rust/WASM et comme banc dessai WebView. Il nest pas retenu comme distribution Android de jeu par défaut.
La baseline Android productive reste SDL3 natif avec wrapper Java/JNI : elle fournit déjà le rendu et les contrôles nécessaires avec moins de couches doutillage. Tauri Android ne doit être rouvert pour un produit que lorsquun besoin concret apporte une valeur supérieure à ce coût, par exemple si les tests futurs démontrent un avantage net de la WebView pour une saisie texte ou une capacité UI difficile à obtenir proprement via SDL.
Cette décision ninterdit pas Tauri Desktop. Le Desktop reste une distribution distincte et optionnelle ; sa valeur doit être démontrée séparément, notamment au regard des possibilités de monétisation dans une WebView Desktop.
## POC réseau
Avant le Mode 3, comparer au minimum WebSocket/tokio-tungstenite, WebTransport/QUIC, fallback automatique, charge, reconnect/resync, backpressure, snapshots/deltas et mobilité réseau.
@@ -38,7 +46,7 @@ Un POC sert à identifier duplication, adapters manquants, capability réellemen
Une abstraction n'est pas extraite avant observation d'un besoin concret.
Le POC Web direct `0.3.0` n'a pas justifié d'extraire prématurément un adapter WASM commun entre Reflex et Snake : les deux adapters spécifiques restent acceptés. Le second host Snake doit d'abord fournir un second besoin réel avant toute factorisation.
Le POC Web direct `0.3.0` n'a pas justifié d'extraire prématurément un adapter WASM commun entre Reflex et Snake : les deux adapters spécifiques restent acceptés. Le second host Snake fournit un second consommateur technique, mais son statut de POC Tauri Android de référence réduit encore l'intérêt d'une factorisation durable : une extraction n'est retenue que si elle reste utile à au moins deux hosts réellement conservés.
## Relation avec Uroburas

View File

@@ -1,11 +1,11 @@
<!-- file: docs/plans/002-V0_3_1_TAURI_ANDROID_SNAKE_PLAN.md -->
<!-- version: 5 -->
<!-- version: 6 -->
# Plan v0.3.1 — second host Snake Tauri Android
## But de la version
`0.3.1` doit ajouter un second host Snake réellement exécutable sous Tauri Android en réutilisant la baseline Web/WASM validée par `0.3.0`.
`0.3.1` doit terminer un second host Snake réellement exécutable sous Tauri Android en réutilisant la baseline Web/WASM validée par `0.3.0`, puis conserver ce host comme POC de référence plutôt que comme voie de production des jeux Android.
La version ne doit ni déplacer le gameplay hors de `game-snake-poc`, ni créer un second adapter Snake, ni transformer immédiatement les similitudes Web/Tauri en framework générique.
@@ -16,7 +16,7 @@ Cadrage : [`../studies/024-V0_3_1_TAURI_ANDROID_SNAKE_AUDIT.md`](../studies/024-
## Décisions acquises
- la nouvelle crate sera `crates/apps/game-snake-poc-tauri` ;
- `0.3.1` valide uniquement sa cible Android ;
- `0.3.1` valide uniquement sa cible Android et en fait un POC de référence, pas une distribution jeu Android de production ;
- `game-snake-poc` reste inchangé sauf défaut réellement découvert ;
- `game-snake-poc-wasm` reste l'unique adapter Snake WASM et recevra seulement la généralisation de provenance nécessaire au second host ;
- le frontend Tauri part du comportement réellement validé dans `Web/game-snake-poc`, avec adaptation de lifecycle et logging ;
@@ -26,7 +26,10 @@ Cadrage : [`../studies/024-V0_3_1_TAURI_ANDROID_SNAKE_AUDIT.md`](../studies/024-
- aucun nouveau chemin de build n'est piloté par Python ;
- `README.md` et `USAGE.md` seront créés avec l'app : architecture pour le premier, prérequis/commandes/smokes pour le second ;
- `cargo tauri android init/dev/build` sont les commandes mobiles de référence ;
- SimpleBar et `resize-observer-polyfill` ne sont pas ajoutés au host Tauri sans besoin démontré.
- SimpleBar et `resize-observer-polyfill` ne sont pas ajoutés au host Tauri sans besoin démontré ;
- la voie Android de production reste le host natif SDL3/Java/JNI tant quun besoin fonctionnel démontré ne justifie pas Tauri ;
- Tauri Android peut rester utile comme référence comparative, notamment pour évaluer plus tard les saisies texte/WebView, mais ce besoin nest pas considéré comme acquis ;
- une future variante Tauri Desktop reste conditionnée à un avantage explicite, notamment une monétisation WebView/publicitaire techniquement et contractuellement viable.
## Scope
@@ -45,7 +48,22 @@ La version couvre :
- build/package et smoke sur AVD/appareil disponible aux jalons prévus ;
- comparaison du code Web direct/Tauri après fonctionnement réel afin de décider s'il existe une extraction commune justifiée.
Hors scope : Tauri Desktop Snake comme cible validée, iOS, Android SDL3 multi-ABI additionnel, réseau realtime, Uroburas, ads, billing, auth et leaderboard.
Hors scope : Tauri Desktop Snake comme cible validée, iOS, Android SDL3 multi-ABI additionnel, réseau realtime, Uroburas, intégration ads effective, billing, auth et leaderboard.
## Positionnement produit après validation du host minimal
Le smoke `0-pre.2.fix.3` a confirmé que Tauri Android fonctionne techniquement, mais aussi que son outillage ajoute une couche de complexité propre au host : combinaison JDK/Gradle imposée par la version Tauri, projet Android généré et chaîne WebView/WASM supplémentaire alors que le POC Android natif SDL3 fonctionne déjà.
Décision de `0-pre.3` :
- terminer `0.3.1` afin dobtenir un POC Tauri Android jouable et documenté ;
- conserver `game-snake-poc-tauri` comme POC de référence et banc de comparaison ;
- ne pas utiliser Tauri Android comme template de nouvelles applications de jeu ;
- privilégier SDL3 natif pour Android ;
- ne rouvrir la question Tauri Android que pour un besoin concret que SDL3 ne couvre pas proprement, par exemple une saisie texte complexe après test réel des possibilités SDL ;
- évaluer séparément Tauri Desktop seulement si la WebView apporte un avantage produit mesurable, notamment une voie publicitaire exploitable.
Cette décision ne réduit pas le critère de qualité de `0.3.1` : le POC de référence doit rester jouable, reproductible et suffisamment complet pour permettre une comparaison technique utile.
## Prévision souple
@@ -103,11 +121,11 @@ Stabiliser :
- sorties applicatives conformes à `EngineGame::quit_requested` sans détourner le Back système Android ;
- smokes AVD et, si disponible, appareil réel.
Cette tranche doit rendre le second host fonctionnel de bout en bout.
Cette tranche doit rendre le second host fonctionnel de bout en bout et suffisamment stable pour être conservé comme POC de référence.
### `0-pre.5` — extraction conditionnelle
Créer uniquement si l'état `0-pre.4` montre une duplication réellement durable entre `Web/game-snake-poc` et le frontend Tauri.
Créer uniquement si l'état `0-pre.4` montre une duplication réellement durable entre `Web/game-snake-poc` et le frontend Tauri **et** si l'extraction garde une valeur au-delà du seul POC Android de référence.
Une extraction possible doit rester bornée à une responsabilité clairement partagée, par exemple projection/rendu Canvas, mapping input Web ou helpers d'assets. Lifecycle et logging restent host-specific s'ils divergent réellement.
@@ -124,7 +142,8 @@ Prévoir :
- suite workspace complète à ce jalon planifié ;
- build WASM release et bindings ;
- `cargo tauri android build` ;
- APK/AAB selon le livrable de validation ;
- APK de validation du POC de référence ;
- AAB uniquement si une valeur de validation supplémentaire est démontrée, pas par automatisme de distribution ;
- install/smoke AVD ;
- install/smoke appareil ARM64 réel si disponible ;
- vérification que les outputs restent hors racine du dépôt lorsqu'ils sont configurables par le projet.
@@ -168,7 +187,7 @@ La gate `0-pre.1` validée le 2026-09-20 a confirmé Rust `1.94.1`, Tauri CLI `2
La version peut entrer en RC lorsque :
- Snake est jouable dans le WebView Tauri Android sans gameplay dupliqué ;
- Snake est jouable dans le WebView Tauri Android sans gameplay dupliqué et le host est explicitement positionné comme POC de référence ;
- le même adapter WASM sert Web direct et Tauri Android avec provenance exacte ;
- lifecycle/input/assets/tracing/Back ont un comportement explicite et validé ;
- le chemin de build ne dépend d'aucun orchestrateur Python ;
@@ -179,4 +198,4 @@ La version peut entrer en RC lorsque :
## Version suivante
`0.3.2` reste réservée à Tauri Desktop + Snake et à une éventuelle factorisation WebView seulement après deux consommateurs réels.
`0.3.2` devient une évaluation conditionnelle de Tauri Desktop + Snake. Elle nest ouverte que si la WebView Desktop apporte un bénéfice explicite, notamment une piste de monétisation publicitaire viable ; la factorisation WebView reste interdite sans deux consommateurs réellement retenus.