0.1.0-1-alpha.1
This commit is contained in:
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.
|
||||
Reference in New Issue
Block a user