0.2.0-0-pre.7
This commit is contained in:
56
docs/architecture/012-MODULAR_LAYERING_AND_OWNERSHIP.md
Normal file
56
docs/architecture/012-MODULAR_LAYERING_AND_OWNERSHIP.md
Normal file
@@ -0,0 +1,56 @@
|
||||
<!-- file: docs/architecture/012-MODULAR_LAYERING_AND_OWNERSHIP.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Architecture modulaire et ownership
|
||||
|
||||
## Décision
|
||||
|
||||
Le framework est structuré par responsabilité et non par jeu ou plateforme unique.
|
||||
|
||||
```text
|
||||
game-specific
|
||||
↓
|
||||
game-systems
|
||||
↓
|
||||
technical capabilities
|
||||
↓
|
||||
engine kernel contracts
|
||||
```
|
||||
|
||||
La composition produit ajoute latéralement les platform adapters, providers, server contracts et tooling.
|
||||
|
||||
## Engine kernel
|
||||
|
||||
Le kernel contient uniquement les primitives nécessaires à tous les jeux consommateurs : lifecycle, update/render, temps, runtime events, provenance et contrats minimaux input/render.
|
||||
|
||||
Il ne contient pas de logique Snake, publicité, authentification, HTTP ou règles Uroburas.
|
||||
|
||||
## Technical capabilities
|
||||
|
||||
Les capabilities fournissent des mécanismes techniques réutilisables : input, rendu 2D, audio, assets/content, localisation, persistence, networking et logging/telemetry.
|
||||
|
||||
## Game-systems
|
||||
|
||||
Les game-systems portent des mécaniques réutilisables entre jeux lorsque leur API est réellement justifiée : grid/tilemap, collision, caméra gameplay, stages, score, vies/attempts, timed entities, pickups/inventory et status effects lorsque leur généralisation devient réelle.
|
||||
|
||||
## Game-specific
|
||||
|
||||
Une crate jeu conserve les règles propres au jeu, la composition des systèmes et les concepts qui n'ont pas encore de second consommateur crédible.
|
||||
|
||||
Une mécanique n'est pas extraite uniquement parce qu'elle pourrait théoriquement servir ailleurs.
|
||||
|
||||
## Adapters, providers et services
|
||||
|
||||
Les adapters traduisent un environnement local. Les providers encapsulent un service externe. Le gameplay ne dépend pas directement d'un adapter ou SDK provider concret.
|
||||
|
||||
Les services serveur possèdent leurs modèles métier et leurs contrats de transport dédiés. Actix, Tungstenite, Protobuf ou Maud ne remontent pas dans le gameplay.
|
||||
|
||||
## Tooling
|
||||
|
||||
Éditeurs, build tooling, audits et outils de publication restent séparés du runtime du jeu.
|
||||
|
||||
## Création de crates
|
||||
|
||||
Une nouvelle crate est justifiée par une frontière stable ou un besoin de réutilisation réel.
|
||||
|
||||
Le projet évite à la fois la crate jeu monolithique et l'explosion artificielle en une crate par concept minuscule.
|
||||
Reference in New Issue
Block a user