0.1.0-1-alpha.1
This commit is contained in:
@@ -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.
|
||||
|
||||
74
docs/architecture/010-RUNTIME_PROVENANCE.md
Normal file
74
docs/architecture/010-RUNTIME_PROVENANCE.md
Normal 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.
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user