Files
games/docs/architecture/010-RUNTIME_PROVENANCE.md
2026-09-16 23:13:26 +02:00

75 lines
2.5 KiB
Markdown

<!-- 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.