0.1.0-1-alpha.1

This commit is contained in:
2026-09-16 23:13:26 +02:00
parent 9197758184
commit 2ad0c5a379
14 changed files with 402 additions and 16 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/000-README.md -->
<!-- version: 12 -->
<!-- version: 13 -->
# Documentation games.sasedev
@@ -14,6 +14,8 @@
- [`architecture/003-SDL3_PLATFORM_ABSTRACTION.md`](architecture/003-SDL3_PLATFORM_ABSTRACTION.md) — frontière SDL3 entre Desktop, Android et Web.
- [`architecture/004-INPUT_AND_CONTROLS.md`](architecture/004-INPUT_AND_CONTROLS.md) — abstraction clavier, souris, gamepad, tactile, gestes et capteurs.
- [`architecture/005-ASSET_ARCHITECTURE.md`](architecture/005-ASSET_ARCHITECTURE.md) — assets communs/spécifiques hors crates et packaging.
- [`architecture/009-ENGINE_V1_RENDER_SCENE.md`](architecture/009-ENGINE_V1_RENDER_SCENE.md) — scène 2D portable, rectangles normalisés et backend SDL3.
- [`architecture/010-RUNTIME_PROVENANCE.md`](architecture/010-RUNTIME_PROVENANCE.md) — provenance plateforme/device/runtime/input pour sessions, scores et analytics.
## Jeux
@@ -57,4 +59,3 @@ Voir [`../RULES.md`](../RULES.md), notamment [`rules/RULES_COMMANDS.md`](rules/R
- [`../history/README.md`](../history/README.md) — convention et navigation de l'historique transitoire immuable des jalons validés.
- [`architecture/009-ENGINE_V1_RENDER_SCENE.md`](architecture/009-ENGINE_V1_RENDER_SCENE.md) — scène 2D portable, rectangles normalisés et backend SDL3.

View File

@@ -0,0 +1,74 @@
<!-- file: docs/architecture/010-RUNTIME_PROVENANCE.md -->
<!-- version: 1 -->
# Provenance d'environnement d'exécution
## Objectif
Une session de jeu doit pouvoir décrire son environnement sans en déduire automatiquement une règle de classement.
Cette provenance servira notamment aux futurs leaderboards, Hall of Fame, analytics, replays et diagnostics.
## Dimensions V1
`engine-v1-platform-api` expose cinq dimensions indépendantes.
`PlatformFamily` décrit la famille de plateforme : Android, Desktop ou Web.
`DeviceClass` décrit la forme physique pertinente pour l'interaction : Phone, Tablet, Desktop ou Unknown.
`ExecutionModel` distingue le code natif du WebAssembly.
`RuntimeHost` distingue un processus natif, un navigateur et une WebView Tauri.
`InputProfile` décrit le mode de contrôle principal : Touch, KeyboardMouse, Gamepad, Mixed ou Unknown.
## Exemples
Un Galaxy S9+ exécutant l'APK actuel peut être décrit comme :
```text
PlatformFamily = Android
DeviceClass = Phone
ExecutionModel = Native
RuntimeHost = Native
InputProfile = Touch
```
Un runner SDL Desktop natif :
```text
PlatformFamily = Desktop
DeviceClass = Desktop
ExecutionModel = Native
RuntimeHost = Native
InputProfile = KeyboardMouse
```
Le futur POC Tauri/WASM :
```text
PlatformFamily = Desktop
DeviceClass = Desktop
ExecutionModel = Wasm
RuntimeHost = TauriWebView
InputProfile = KeyboardMouse
```
Une version Web dans un navigateur de téléphone pourra au contraire être `PlatformFamily = Web`, `DeviceClass = Phone`, `ExecutionModel = Wasm`, `RuntimeHost = Browser`, `InputProfile = Touch`.
## Classements et équité
La provenance ne contient aucune méthode du type `is_fair`, `difficulty` ou `comparable_with`.
La difficulté relative des contrôles dépend du jeu. Un jeu de réflexe, un Snake, un puzzle et un jeu au gamepad peuvent produire des conclusions différentes.
Le futur backend de score pourra donc conserver une provenance complète et appliquer une politique par jeu : classement commun, classement séparé par profil d'entrée, filtres par plateforme, ou catégories multiples.
L'identité joueur reste orthogonale. Un score pourra appartenir à un utilisateur authentifié ou anonyme tout en conservant exactement la même provenance runtime.
## Données et vie privée
La provenance V1 décrit des catégories techniques générales. Elle ne requiert ni modèle précis de téléphone, ni identifiant matériel, ni adresse réseau.
Un besoin futur de diagnostic plus fin devra être ajouté explicitement plutôt que d'élargir silencieusement cette structure.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/services/001-ONLINE_AND_VIRAL_SERVICES.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Services en ligne, compétition et viralité
@@ -9,6 +9,10 @@ Un classement peut être local, propre à une plateforme ou cross-platform via u
Un backend cross-platform peut recevoir Android, Desktop et Web via HTTP et/ou WebSocket puis stocker les résultats dans une base commune.
Chaque score pourra conserver une provenance d'exécution structurée : famille de plateforme, classe de device, exécution native/WASM, hôte runtime et profil d'entrée. Cette information permet de filtrer ou segmenter un classement sans présumer qu'une plateforme est toujours plus facile qu'une autre.
L'identité reste indépendante de cette provenance : un joueur authentifié comme un joueur anonyme peut produire un score portant les mêmes métadonnées d'environnement.
## Challenges quotidiens
Un seed quotidien peut fournir les mêmes conditions à tous les joueurs. Ce mécanisme combine contenu peu coûteux, compétition, rétention et partage.