From cfa9a1ce21f14f70fa99944e1b1f5af9c47f9256 Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Sat, 19 Sep 2026 05:15:01 +0200 Subject: [PATCH] 0.2.0-0-pre.8 --- Android/game-reflex-poc/build.gradle | 4 +- Android/game-snake-poc/build.gradle | 4 +- CHANGELOG.md | 14 +- Cargo.toml | 4 +- README.md | 4 +- ROADMAP.md | 12 +- deltas/0.2.0/0-pre.8.md | 58 ++++++ docs/000-README.md | 3 +- .../016-V0_2_0_CONSOLIDATED_BASELINE.md | 70 +++++++ history/0.2.0/0-pre.7.md | 30 +++ prompts/002-V0_3_X_START_PROMPT.md | 181 ++++++++++++++++++ 11 files changed, 368 insertions(+), 16 deletions(-) create mode 100644 deltas/0.2.0/0-pre.8.md create mode 100644 docs/architecture/016-V0_2_0_CONSOLIDATED_BASELINE.md create mode 100644 history/0.2.0/0-pre.7.md create mode 100644 prompts/002-V0_3_X_START_PROMPT.md diff --git a/Android/game-reflex-poc/build.gradle b/Android/game-reflex-poc/build.gradle index bb31435..a444a4d 100644 --- a/Android/game-reflex-poc/build.gradle +++ b/Android/game-reflex-poc/build.gradle @@ -1,5 +1,5 @@ // file: Android/game-reflex-poc/build.gradle -// version: 41 +// version: 42 plugins { id 'com.android.application' @@ -18,7 +18,7 @@ android { minSdk 21 targetSdk 36 versionCode 2 - versionName '0.2.0-0-pre.7' + versionName '0.2.0-0-pre.8' } compileOptions { diff --git a/Android/game-snake-poc/build.gradle b/Android/game-snake-poc/build.gradle index 319ef88..de9e930 100644 --- a/Android/game-snake-poc/build.gradle +++ b/Android/game-snake-poc/build.gradle @@ -1,5 +1,5 @@ // file: Android/game-snake-poc/build.gradle -// version: 41 +// version: 42 plugins { id 'com.android.application' @@ -18,7 +18,7 @@ android { minSdk 21 targetSdk 36 versionCode 2 - versionName '0.2.0-0-pre.7' + versionName '0.2.0-0-pre.8' } compileOptions { diff --git a/CHANGELOG.md b/CHANGELOG.md index 780ba36..16b0d7a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,20 @@ - + # Changelog +## 0.2.0 — conception modulaire, POC et Uroburas + +- Gouvernance documentaire renforcée : catégories `ideas/studies/architecture/rules`, immutabilité des deltas, conventions de statuts et workflow de session/version. +- Architecture durable séparant engine kernel, technical capabilities, game-systems, games, platform adapters, providers, server services et tooling. +- Trajectoire POC `0.3.x` définie avec Snake comme jeu-sonde pour SDL, Web/WASM, Tauri et transports realtime. +- Architecture réseau de référence : Actix Web/Maud/Fluent/Lettre pour Web/API, WebSocket/tokio-tungstenite baseline, WebTransport/QUIC candidat, gRPC/Tonic conditionnel server-to-server. +- Asset delivery auto-hébergé, compatible HTTP/2 et HTTP/3 selon disponibilité, avec séparation logique puis physique progressive. +- Cible d'exploitation préférée : Debian Stable, actuellement Debian 13 `trixie`, sans dépendance métier à une version précise. +- Spécification fonctionnelle et architecture cible initiales de Uroburas, avec ordre Mode 1 Challenge → Mode 3 Persistent Battle Royale → Mode 2 PvP Battles. +- Classification des besoins Uroburas afin d'éviter une crate jeu monolithique. +- Première trajectoire Uroburas réservant grid/tilemap toroïdale, obstacles, stages, vies, score, caméra, assets téléchargeables, auth, rewarded ads, Hall of Fame et échanges client/serveur sécurisés/versionnés. + ## 0.1.0 — 2026-09-17 - validation de `0.1.0-3-rc.1.fix.1` avec gates Rust/audits complètes, builds et smokes Desktop release, Tauri/WASM, Android x86_64/API 36 et Android ARM64 réel ; diff --git a/Cargo.toml b/Cargo.toml index 4bba8ea..2705783 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ # file: Cargo.toml -# version: 53 +# version: 54 [workspace] resolver = "3" @@ -19,7 +19,7 @@ members = [ ] [workspace.package] -version = "0.2.0-0-pre.7" +version = "0.2.0-0-pre.8" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/games" diff --git a/README.md b/README.md index b124828..f87a872 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ - + # games.sasedev @@ -25,7 +25,7 @@ Workspace expérimental puis productif pour des jeux multiplateformes principale Version stable de référence : `0.1.0`. -Version candidate en cours de conception : `0.2.0-0-pre.7`. +Version candidate en cours de conception : `0.2.0-0-pre.8`. Les deux premiers jeux sont des POC structurels : `game-reflex-poc` et `game-snake-poc`. Ils existent d'abord pour valider les frontières du workspace, le moteur, les assets et le packaging multiplateforme. diff --git a/ROADMAP.md b/ROADMAP.md index 03bc9b5..709293f 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,5 +1,5 @@ - + # Roadmap @@ -25,12 +25,12 @@ Le détail historique des prereleases `0.1.0-*` reste dans `deltas/0.1.0/` et `h ## 0.2.0 — Conception du framework modulaire - (x) `0.2.0` — fixer la gouvernance documentaire, la nomenclature et le cycle de maturation des idées et décisions. -- ( ) `0.2.0` — inventorier et réserver les capabilities déjà justifiées sans les implémenter prématurément. +- (x) `0.2.0` — inventorier et réserver les capabilities déjà justifiées sans les implémenter prématurément. - ( ) `0.2.0` — définir les couches, les dépendances autorisées et la frontière entre kernel, capability, plateforme, provider, système de jeu et service. - ( ) `0.2.0` — établir la matrice plateformes et les archétypes de jeux utilisés pour challenger l'architecture. - ( ) `0.2.0` — définir le modèle de composition statique, le manifest produit/jeu et l'architecture cible des crates. - ( ) `0.2.0` — définir la trajectoire d'implémentation progressive des versions suivantes seulement après revue de la conception. -- ( ) `0.2.0` — consolider les études acceptées en architecture/règles durables, notamment ownership, réseau, Uroburas et POC, puis fermer les points encore candidats. -- ( ) `0.2.0` — formaliser la stratégie réseau : Actix Web pour le Web/API, asset delivery auto-hébergé H2/H3, WebSocket baseline et WebTransport/QUIC candidat. -- ( ) `0.2.0` — préparer une trajectoire `0.3.x` dédiée aux POC plateforme/réseau avec Snake comme jeu-sonde. -- ( ) `0.2.0` — préparer la trajectoire `0.4.x` Uroburas Mode 1 et le prompt de session associé après gel de la conception. +- (x) `0.2.0` — consolider les études acceptées en architecture/règles durables, notamment ownership, réseau, Uroburas et POC, puis fermer les points encore candidats. +- (x) `0.2.0` — formaliser la stratégie réseau : Actix Web pour le Web/API, asset delivery auto-hébergé H2/H3, WebSocket baseline et WebTransport/QUIC candidat. +- (x) `0.2.0` — préparer une trajectoire `0.3.x` dédiée aux POC plateforme/réseau avec Snake comme jeu-sonde. +- (x) `0.2.0` — préparer la trajectoire `0.4.x` Uroburas Mode 1 et le prompt de session associé après gel de la conception. diff --git a/deltas/0.2.0/0-pre.8.md b/deltas/0.2.0/0-pre.8.md new file mode 100644 index 0000000..1c2289c --- /dev/null +++ b/deltas/0.2.0/0-pre.8.md @@ -0,0 +1,58 @@ + + + +# Delta 0.2.0-0-pre.8 + +## Base + +Base déclarée : `0.2.0-0-pre.7`. + +`0-pre.7` a été validée par revue humaine et audits projet. + +## Objet + +Clore la phase de conception `0.2.0` avant RC. + +## Réconciliation finale + +Cette tranche : + +- ferme les lignes durables `0.2.0` du ROADMAP ; +- ajoute le résumé `CHANGELOG` de `0.2.0` ; +- ajoute une baseline architecturale consolidée ; +- enregistre l'historique validé de `0-pre.7` ; +- prépare le prompt de session `0.3.x`. + +## Prompt 0.3.x + +Le prompt fixe : + +- `pre.1` comme cadrage obligatoire ; +- Snake comme jeu-sonde ; +- POC Tauri Android/Web/Tauri Desktop/Android multi-ABI ; +- POC WebSocket vs WebTransport/QUIC ; +- builds via outils natifs ; +- utilisateur responsable des builds/tests/smoke ; +- Debian Stable comme cible opérationnelle préférée ; +- Uroburas réservé à `0.4.x`. + +## Gel + +Après validation de `0-pre.8`, le scope documentaire `0.2.0` est considéré complet. + +La RC suivante est une candidate de publication : + +- aucune nouvelle fonctionnalité ; +- aucune nouvelle orientation architecturale ; +- corrections seulement si nécessaires ; +- revue humaine finale. + +## Validation + +```bash +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 +python3 scripts/audit_distribution_layout.py +``` + +Aucune gate Cargo, Gradle ou smoke n'est requise : `0.2.0` reste documentaire hors métadonnées de version. diff --git a/docs/000-README.md b/docs/000-README.md index 77f98a8..d0db227 100644 --- a/docs/000-README.md +++ b/docs/000-README.md @@ -1,5 +1,5 @@ - + # Documentation games.sasedev @@ -26,6 +26,7 @@ - [`architecture/013-NETWORK_AND_SERVER_ARCHITECTURE.md`](architecture/013-NETWORK_AND_SERVER_ARCHITECTURE.md) — Web/API, realtime, transports, asset delivery auto-hébergé et frontières serveur. - [`architecture/014-UROBURAS_TARGET_ARCHITECTURE.md`](architecture/014-UROBURAS_TARGET_ARCHITECTURE.md) — ownership cible des besoins Uroburas et ordre Mode 1 → Mode 3 → Mode 2. - [`architecture/015-PLATFORM_POC_ARCHITECTURE.md`](architecture/015-PLATFORM_POC_ARCHITECTURE.md) — rôle des POC `0.3.x`, Snake comme sonde et critères d'extraction. +- [`architecture/016-V0_2_0_CONSOLIDATED_BASELINE.md`](architecture/016-V0_2_0_CONSOLIDATED_BASELINE.md) — synthèse de la baseline destinée au gel RC `0.2.0`. ## Jeux diff --git a/docs/architecture/016-V0_2_0_CONSOLIDATED_BASELINE.md b/docs/architecture/016-V0_2_0_CONSOLIDATED_BASELINE.md new file mode 100644 index 0000000..0739844 --- /dev/null +++ b/docs/architecture/016-V0_2_0_CONSOLIDATED_BASELINE.md @@ -0,0 +1,70 @@ + + + +# Baseline architecturale consolidée 0.2.0 + +## Statut + +Ce document synthétise la baseline documentaire destinée à être gelée par la RC `0.2.0`. + +## Framework + +Le projet retient une architecture modulaire distinguant : + +- engine kernel ; +- technical capabilities ; +- game-systems ; +- game-specific ; +- platform adapters ; +- providers ; +- server services ; +- tooling. + +## POC + +La série `0.3.x` valide les choix plateforme/réseau avec Snake comme jeu-sonde. + +## Uroburas + +La série `0.4.x` démarre le jeu réel Uroburas, d'abord Mode 1 Challenge. + +Ordre produit actuel : + +```text +Mode 1 +→ Mode 3 +→ Mode 2 +``` + +## Réseau + +- Actix Web pour Web/API ; +- Maud pour HTML server-side ; +- Fluent pour i18n ; +- Lettre pour email ; +- WebSocket/tokio-tungstenite baseline realtime ; +- WebTransport/QUIC candidat POC ; +- gRPC/Tonic conditionnel server-to-server ; +- asset delivery auto-hébergé H2/H3 selon disponibilité. + +## Exploitation + +Debian Stable est la cible opérationnelle préférée. + +Le code métier reste indépendant de la version de distribution. + +Les composants d'infrastructure spécifiques restent hors du domaine et seront choisis lors de POC/déploiements dédiés. + +## Workflow + +- `pre.1` cadre chaque version ; +- une version tient dans une session ; +- les tranches visent généralement 15–30 minutes ; +- les dernières tranches consolident documentation, ROADMAP, CHANGELOG et prompt suivant ; +- la stable reste mécanique. + +## Gel + +La RC suivante ne doit plus ajouter de nouveau scope. + +Toute découverte fonctionnelle majeure après gel est reportée vers `0.3.x`, `0.4.x` ou une version ultérieure selon sa nature. diff --git a/history/0.2.0/0-pre.7.md b/history/0.2.0/0-pre.7.md new file mode 100644 index 0000000..3b71bf7 --- /dev/null +++ b/history/0.2.0/0-pre.7.md @@ -0,0 +1,30 @@ + + + +# Historique 0.2.0-0-pre.7 + +## Statut + +Consolidation architecturale validée avant ouverture de `0.2.0-0-pre.8`. + +## Validation utilisateur + +Les audits suivants ont été exécutés et validés : + +```text +General Rust rule audit: clean +Rust export completeness audit: 0 candidate(s) +games.sasedev workspace audit: clean +Markdown table audit: clean (4 table(s), 156 file(s)) +Distribution layout audit: clean +``` + +## Contenu validé + +- architecture modulaire et ownership ; +- architecture réseau/serveur ; +- architecture cible Uroburas ; +- architecture POC plateforme/réseau ; +- règles de cadrage des sessions/prompts ; +- préférence d'auto-hébergement Debian Stable ; +- absence de gel prématuré d'un edge/reverse proxy HTTP/3. diff --git a/prompts/002-V0_3_X_START_PROMPT.md b/prompts/002-V0_3_X_START_PROMPT.md new file mode 100644 index 0000000..d5aaff7 --- /dev/null +++ b/prompts/002-V0_3_X_START_PROMPT.md @@ -0,0 +1,181 @@ + + + +# Prompt de démarrage — série 0.3.x POC plateforme et réseau + +## Base + +Partir du tag stable `v0.2.0` ou, avant publication, de la dernière candidate validée dont le contenu est strictement équivalent à la release. + +Lire en priorité : + +- `RULES.md` ; +- `ROADMAP.md` ; +- `CHANGELOG.md` ; +- `docs/000-README.md` ; +- `docs/rules/RULES_SESSION_PLANNING.md` ; +- `docs/rules/RULES_COMMANDS.md` ; +- `docs/rules/RULES_VALIDATION_MATRIX.md` ; +- `docs/architecture/012-MODULAR_LAYERING_AND_OWNERSHIP.md` ; +- `docs/architecture/013-NETWORK_AND_SERVER_ARCHITECTURE.md` ; +- `docs/architecture/014-UROBURAS_TARGET_ARCHITECTURE.md` ; +- `docs/architecture/015-PLATFORM_POC_ARCHITECTURE.md`. + +## Objectif de session + +La série `0.3.x` est consacrée aux POC plateforme et réseau. + +Elle ne développe pas encore Uroburas comme produit réel. + +Snake est le jeu-sonde principal. + +La session doit valider les frontières décidées en `0.2.0`, mesurer les duplications, identifier les adapters/capabilities manquants et décider quels chemins techniques sont conservés avant `0.4.x`. + +## Règle de cadrage + +Commencer impérativement par `0.3.0-0-pre.1`. + +Cette première tranche doit : + +- auditer la base stable ; +- vérifier les règles et scripts ; +- inventorier les POC réellement exécutables dans l'environnement courant ; +- dimensionner la série `0.3.x` ; +- proposer le découpage en versions/sessions ; +- identifier les dépendances et commandes de validation ; +- signaler immédiatement tout objectif trop gros pour tenir dans une session. + +Une version doit pouvoir être terminée dans une seule session. + +Les deltas `pre/alpha/beta/rc` visent normalement 15 à 30 minutes de travail effectif. + +## POC plateforme prioritaires + +Première vague : + +1. Tauri Android + Snake ; +2. Web navigateur direct + Snake ; +3. Tauri Desktop + Snake ; +4. build Android multi-ABI avec outils natifs. + +Plateformes supplémentaires seulement si l'environnement réel permet une validation : + +- Windows SDL natif ; +- macOS SDL natif ; +- iOS SDL natif. + +Ne pas simuler une validation plateforme avec un simple cross-build lorsque le smoke réel est requis. + +## POC réseau + +Préparer un POC comparatif avant gel long terme du transport realtime : + +- WebSocket / `tokio-tungstenite` ; +- WebTransport / QUIC ; +- fallback automatique ; +- même protocole métier au-dessus des transports ; +- charge concurrente ; +- mémoire/connexion ; +- CPU ; +- p50/p95/p99 ; +- backpressure ; +- reconnect/resync ; +- mobilité réseau ; +- snapshots/deltas ; +- broadcast/interest management. + +La simulation/game logic ne doit dépendre directement d'aucun type Tungstenite, QUIC ou WebTransport. + +## Web et assets + +Conserver : + +- Actix Web pour Web/API ; +- Maud pour HTML server-side ; +- Fluent/fluent-bundle pour localisation ; +- Lettre pour email ; +- auto-hébergement comme direction par défaut ; +- asset delivery séparé logiquement ; +- HTTP/2 baseline ; +- HTTP/3/QUIC à tester là où pertinent ; +- aucun CDN tiers obligatoire. + +Debian Stable reste la cible opérationnelle préférée. + +Ne pas figer HAProxy, nginx ou un autre edge avant POC/benchmark réel. + +## Build et validation + +Les builds utilisent les outils natifs appropriés : + +- Cargo ; +- Gradle ; +- Tauri CLI ; +- toolchains plateforme. + +Les scripts Python sont autorisés pour audits, validations complémentaires et contrôles statiques, mais pas pour piloter le build. + +L'utilisateur exécute les builds, tests unitaires, intégration et smoke tests demandés. + +Le delta doit toujours lister les commandes exactes à exécuter. + +## Architecture à préserver + +Ne pas transformer les POC en nouvelle architecture monolithique. + +Maintenir les frontières : + +```text +game-specific + ↓ +game-systems + ↓ +technical capabilities + ↓ +engine kernel +``` + +et composer adapters/providers au niveau app/product. + +Ne pas introduire une crate par concept sans frontière/API réellement justifiée. + +## Uroburas + +Uroburas est réservé à la série `0.4.x`. + +Les POC `0.3.x` doivent préparer ses fondations, notamment : + +- grid/tilemap ; +- input Desktop/Mobile ; +- Web/WASM ; +- Tauri ; +- Android ; +- networking ; +- assets/content ; +- realtime transport. + +Ils ne doivent pas implémenter les règles finales Uroburas sauf ce qui est strictement nécessaire à la sonde Snake. + +## Livraisons + +Chaque tranche livre un delta ZIP immutable : + +```text +games-sasedev--delta.zip +``` + +Les deltas précédents ne sont jamais enrichis sémantiquement. + +Une erreur dans une tranche livrée se corrige par `.fix.N`. + +## Condition de fin de session + +La session se termine lorsque la version ciblée par le sizing de `pre.1` est entièrement développée, validée et livrée, avec : + +- deltas ; +- validations ; +- documentation durable mise à jour ; +- ROADMAP/CHANGELOG selon le stade ; +- prompt suivant si la version clôt une session majeure. + +Ne pas interrompre volontairement une version au milieu de son scope.