0.2.0-0-pre.5-fix.1

This commit is contained in:
2026-09-18 20:23:47 +02:00
parent 8bfeb4b9f8
commit 130150a751
10 changed files with 209 additions and 24 deletions

View File

@@ -1,5 +1,5 @@
// file: Android/game-reflex-poc/build.gradle
// version: 37
// version: 38
plugins {
id 'com.android.application'
@@ -18,7 +18,7 @@ android {
minSdk 21
targetSdk 36
versionCode 2
versionName '0.2.0-0-pre.5'
versionName '0.2.0-0-pre.5.fix.1'
}
compileOptions {

View File

@@ -1,5 +1,5 @@
// file: Android/game-snake-poc/build.gradle
// version: 37
// version: 38
plugins {
id 'com.android.application'
@@ -18,7 +18,7 @@ android {
minSdk 21
targetSdk 36
versionCode 2
versionName '0.2.0-0-pre.5'
versionName '0.2.0-0-pre.5.fix.1'
}
compileOptions {

View File

@@ -1,5 +1,5 @@
# file: Cargo.toml
# version: 49
# version: 50
[workspace]
resolver = "3"
@@ -19,7 +19,7 @@ members = [
]
[workspace.package]
version = "0.2.0-0-pre.5"
version = "0.2.0-0-pre.5.fix.1"
edition = "2024"
license = "MIT"
repository = "https://git.sasedev.com/Sasedev/games"

View File

@@ -1,5 +1,5 @@
<!-- file: README.md -->
<!-- version: 17 -->
<!-- version: 18 -->
# 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.5`.
Version candidate en cours de conception : `0.2.0-0-pre.5.fix.1`.
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

@@ -0,0 +1,103 @@
<!-- file: deltas/0.2.0/0-pre.5.fix.1.md -->
<!-- version: 1 -->
# Delta 0.2.0-0-pre.5.fix.1
## Base
Base déclarée : `0.2.0-0-pre.5`.
Le delta `0-pre.5.md` reste immuable.
## Objet
Préciser la spécification fonctionnelle de Uroburas avant la phase de classification architecturale.
## Contenu embarqué et téléchargé
Le jeu peut embarquer les premières maps solo et leurs assets.
Il doit également permettre le téléchargement et la mise à jour séparée de maps, skins, sons, textures/sprites, rulesets et autres assets.
## Anatomie minimale
Un serpent valide contient au minimum :
1. tête ;
2. cou ;
3. une unité de corps ;
4. queue.
Seul le corps est extensible.
Un effet de rétrécissement ne peut pas réduire un serpent sous quatre unités hors règle de mort explicite.
## Sprites et rotations
La spec précise :
- réutilisation des sprites par rotation lorsque possible ;
- variantes dédiées pour les virages gauche/droite du corps ;
- contrat de skin compatible avec cette géométrie ;
- éditeur Web de skins possible d'abord pour les administrateurs puis, ultérieurement, pour les utilisateurs avec contraintes/modération.
## Première version réelle Uroburas
La priorité fonctionnelle est désormais explicitement :
1. Mode 1 — Challenge ;
2. Mode 3 — Persistent Battle Royale ;
3. Mode 2 — PvP Battles.
La première version réelle se concentre sur les moteurs nécessaires au Mode 1 :
- grille/tilemap toroïdale ;
- obstacles ;
- items ;
- vies ;
- temps ;
- stages ;
- caméra ;
- contrôles ;
- site Web ;
- auth ;
- rewarded ads ;
- Hall of Fame initial ;
- échange client/serveur authentifié/versionné/validable ;
- téléchargement de contenu.
## Contrôles Mobile/Tablet
La première approche privilégie des boutons directionnels affichés à l'écran, équivalents fonctionnels des contrôles clavier Desktop, plutôt qu'un contrôle principal par swipe.
## Rewarded ads
Outre la continuation après perte de toutes les vies, une rewarded ad peut être proposée pendant la transition de stage pour appliquer un bonus volontaire, par exemple doubler les points gagnés sur le stage terminé.
## Combat avancé
Feu, glace, poison, téléporteurs et protections restent décrits comme direction fonctionnelle, mais sont explicitement hors scope de la première version réelle centrée sur le Mode 1.
## Fichiers modifiés
- `Cargo.toml` ;
- `Android/game-reflex-poc/build.gradle` ;
- `Android/game-snake-poc/build.gradle` ;
- `README.md` ;
- `docs/studies/013-UROBURAS_FUNCTIONAL_SPEC.md` ;
- `docs/studies/014-UROBURAS_MODES_AND_SESSION_RULES.md` ;
- `docs/studies/015-UROBURAS_MAP_ASSET_AND_UGC_SPEC.md` ;
- `docs/studies/016-UROBURAS_COMBAT_ITEM_EFFECT_SPEC.md` ;
- `docs/studies/017-UROBURAS_SCORE_RESPAWN_AND_HALL_OF_FAME.md`.
Tous les fichiers existants modifiés et possédant un en-tête `version` ont été incrémentés.
## 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 pour ce fix documentaire.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/studies/013-UROBURAS_FUNCTIONAL_SPEC.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Uroburas — spécification fonctionnelle initiale
@@ -29,14 +29,18 @@ Les cartes, assets et contenus associés peuvent être téléchargés séparéme
Le client ne doit pas supposer que toutes les maps ou tous les assets existent lors de l'installation.
## Serpent
## Anatomie minimale du serpent
Le serpent possède au minimum :
Un serpent valide possède au minimum quatre unités logiques :
- tête ;
- cou / première portion après la tête ;
- corps ;
- queue.
1. une tête ;
2. un cou ;
3. une unité de corps ;
4. une queue.
Seul le **corps** est extensible.
La longueur ne peut donc jamais devenir inférieure à quatre unités. Une attaque ou un effet de rétrécissement ne peut pas supprimer la tête, le cou, l'unité minimale de corps ou la queue en dehors d'une règle de mort explicite.
Les interactions peuvent produire des effets différents selon la zone touchée.
@@ -99,3 +103,47 @@ Le produit vise aussi :
- maps personnalisées ;
- skins personnalisables ;
- publication/modération éventuelles.
## Représentation graphique du serpent
La représentation doit pouvoir limiter le nombre d'assets nécessaires grâce aux rotations d'image.
Direction fonctionnelle envisagée :
- tête, cou, segments droits et queue peuvent réutiliser leurs sprites par rotation ;
- les virages du corps nécessitent au minimum deux variantes distinctes correspondant à une courbure vers la gauche et vers la droite relativement au mouvement ;
- ces variantes peuvent ensuite être réutilisées par rotation ;
- les skins doivent respecter le même contrat géométrique afin d'être interchangeables.
Le détail du format de skin sera défini séparément.
## Priorité de la première version Uroburas
La première version réelle de Uroburas se concentre sur le **Mode 1 — Challenge**.
Elle doit prioritairement permettre :
- moteur de grille/tilemap toroïdale ;
- obstacles et murs ;
- items ;
- vies ;
- temps ;
- stages ;
- caméra sur maps plus grandes que l'écran ;
- contrôles clavier Desktop ;
- contrôles tactiles par boutons directionnels affichés sur Mobile/Tablet ;
- site Web initial ;
- authentification ;
- rewarded ads ;
- Hall of Fame initial ;
- échanges client/serveur authentifiés, versionnés et validables ;
- maps/assets téléchargeables.
Les systèmes de combat avancés feu/glace/poison/téléporteurs restent décrits comme direction fonctionnelle, mais ne sont pas requis pour cette première version.
L'ordre de développement fonctionnel envisagé après stabilisation du Mode 1 est :
1. Mode 3 — Persistent Battle Royale ;
2. Mode 2 — PvP Battles.
Cet ordre peut être réévalué ultérieurement, mais sert de priorité actuelle.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/studies/014-UROBURAS_MODES_AND_SESSION_RULES.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Uroburas — modes et règles de session
@@ -31,6 +31,16 @@ Lorsqu'un joueur meurt :
À zéro vie, une rewarded ad peut éventuellement offrir une continuation si réseau et monétisation sont disponibles.
Pendant la transition entre deux stages, une rewarded ad peut aussi proposer une récompense optionnelle, par exemple doubler les points gagnés pour le stage terminé. La règle exacte et le multiplicateur restent configurables.
### Contrôles
Sur Desktop, le jeu peut utiliser des touches directionnelles physiques, notamment WASD et/ou les flèches selon configuration.
Sur Mobile/Tablet, la première approche privilégiée est un pavé directionnel affiché à l'écran, fonctionnellement équivalent à des touches directionnelles/WASD. Le joueur appuie sur les boutons plutôt que d'utiliser principalement des swipes.
Ce choix vise à conserver une logique de contrôle proche entre Desktop et Mobile/Tablet.
### Stage
Une map Challenge peut :
@@ -142,3 +152,13 @@ Les bots sont exécutés côté serveur, peuvent mourir, respawn après un déla
### Observation
Un utilisateur peut rester spectateur sans tentative active.
## Priorité de développement des modes
L'implémentation réelle doit d'abord stabiliser les moteurs et besoins du Mode 1.
Le Mode 3 vient ensuite afin d'ajouter progressivement le temps réel persistant, les bots serveur et les règles de monde longue durée sur une base de gameplay déjà stable.
Le Mode 2 vient ensuite afin de construire les parties PvP bornées, privées ou matchmaking, en réutilisant les mécanismes multijoueurs déjà éprouvés.
La présence de la spec des Modes 2 et 3 dans `0.2.0` n'implique pas leur implémentation dans la première version Uroburas.

View File

@@ -1,19 +1,23 @@
<!-- file: docs/studies/015-UROBURAS_MAP_ASSET_AND_UGC_SPEC.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Uroburas — maps, assets et UGC
## Téléchargement
## Contenu embarqué et téléchargement
Le client doit pouvoir télécharger :
Le package du jeu peut embarquer les maps solo initiales et les assets nécessaires à la première expérience.
- maps ;
Le client doit néanmoins pouvoir télécharger ou mettre à jour :
- maps supplémentaires ;
- skins ;
- textures/sprites ;
- sons ;
- metadata ;
- rulesets ;
- skins ;
- autres ressources propres à une map.
- autres ressources propres à une map ou à une saison/version.
Le téléchargement de contenu est donc une fonction normale du produit, pas uniquement une extension UGC.
## Package de map

View File

@@ -1,5 +1,5 @@
<!-- file: docs/studies/016-UROBURAS_COMBAT_ITEM_EFFECT_SPEC.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Uroburas — combat, items et effets
@@ -7,6 +7,8 @@
Une attaque peut produire un résultat différent selon tête, cou, corps ou queue. Une attaque peut parfois devenir indirectement bénéfique en raccourcissant le serpent.
Le serpent ne peut toutefois jamais être raccourci sous son anatomie minimale : tête + cou + une unité de corps + queue. Les effets qui devraient supprimer davantage de segments sont bornés à cette longueur minimale, sauf si l'impact constitue une mort explicite.
## Inventaire
Un serpent peut obtenir un ou plusieurs items et décider de les utiliser ou non. Capacité, stacking, puissance, durée, cooldown et combinaison sont configurables par ruleset.
@@ -70,3 +72,11 @@ Les téléporteurs peuvent fonctionner par paire ou groupe, utiliser un identifi
## Paramétrage
Les effets peuvent définir level, power, range, duration, spread, cooldown, zone, charges et interactions avec protections.
## Portée de la première version
Feu, glace, poison, téléporteurs et protections avancées restent dans la spécification afin de préserver la direction du game design.
Ils ne sont pas requis pour la première version réelle, centrée sur le Mode 1 et ses moteurs fondamentaux.
Leur modélisation détaillée pourra être revue avant l'implémentation des modes multijoueurs.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/studies/017-UROBURAS_SCORE_RESPAWN_AND_HALL_OF_FAME.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Uroburas — score, respawn et Hall of Fame