1.7 KiB
1.7 KiB
Architecture du workspace
Vue générale
games.sasedev/
├── crates/
│ ├── engines/
│ │ ├── engine-v1-common/
│ │ ├── engine-v1-platform-api/
│ │ └── engine-v1-sdl/
│ └── games/
│ ├── game-reflex-poc/
│ └── game-snake-poc/
├── assets/
│ ├── common/
│ ├── game-reflex-poc/
│ └── game-snake-poc/
├── Android/
│ ├── common/
│ ├── game-reflex-poc/
│ └── game-snake-poc/
├── docs/
├── deltas/
├── prompts/
└── scripts/
Générations du moteur
Une génération engine-vN est une ligne de compatibilité. Un jeu peut rester sur engine-v1 pendant qu'un nouveau jeu expérimente engine-v2. Les anciens jeux sont ensuite migrés individuellement.
Les subdivisions sont exprimées par crates afin de ne pas forcer un jeu à dépendre de capacités inutiles. La baseline sépare déjà :
engine-v1-common: types et comportements génériques indépendants des plateformes ;engine-v1-platform-api: contrats abstraits des services plateforme ;engine-v1-sdl: frontière d'intégration SDL3, volontairement minimale dans la baseline.
Jeux
Chaque jeu est une crate indépendante sous crates/games/. Un jeu ne duplique pas une crate moteur. Il sélectionne explicitement la génération qu'il consomme.
Assets
Les assets sont extérieurs aux crates. Le packaging compose :
assets/common/
+
assets/<game>/
Le runtime devra conserver une distinction logique entre ressources communes et ressources spécifiques afin d'éviter les collisions silencieuses.