0.2.0-0-pre.8

This commit is contained in:
2026-09-19 05:15:01 +02:00
parent 090cc67c06
commit cfa9a1ce21
11 changed files with 368 additions and 16 deletions

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -1,8 +1,20 @@
<!-- file: CHANGELOG.md -->
<!-- version: 9 -->
<!-- version: 10 -->
# 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 ;

View File

@@ -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"

View File

@@ -1,5 +1,5 @@
<!-- file: README.md -->
<!-- version: 21 -->
<!-- version: 22 -->
# 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.

View File

@@ -1,5 +1,5 @@
<!-- file: ROADMAP.md -->
<!-- version: 18 -->
<!-- version: 19 -->
# 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.

58
deltas/0.2.0/0-pre.8.md Normal file
View File

@@ -0,0 +1,58 @@
<!-- file: deltas/0.2.0/0-pre.8.md -->
<!-- version: 1 -->
# 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.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/000-README.md -->
<!-- version: 19 -->
<!-- version: 20 -->
# 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

View File

@@ -0,0 +1,70 @@
<!-- file: docs/architecture/016-V0_2_0_CONSOLIDATED_BASELINE.md -->
<!-- version: 1 -->
# 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 1530 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.

30
history/0.2.0/0-pre.7.md Normal file
View File

@@ -0,0 +1,30 @@
<!-- file: history/0.2.0/0-pre.7.md -->
<!-- version: 1 -->
# 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.

View File

@@ -0,0 +1,181 @@
<!-- file: prompts/002-V0_3_X_START_PROMPT.md -->
<!-- version: 1 -->
# 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-<semver>-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.