Files
games/docs/architecture/001-WORKSPACE_ARCHITECTURE.md
2026-09-15 23:26:37 +02:00

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.