0.1.0-0-pre.9
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/000-README.md -->
|
||||
<!-- version: 10 -->
|
||||
<!-- version: 11 -->
|
||||
|
||||
# Documentation games.sasedev
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/architecture/001-WORKSPACE_ARCHITECTURE.md -->
|
||||
<!-- version: 2 -->
|
||||
<!-- version: 3 -->
|
||||
|
||||
# Architecture du workspace
|
||||
|
||||
@@ -8,6 +8,9 @@
|
||||
```text
|
||||
games.sasedev/
|
||||
├── crates/
|
||||
│ ├── common/
|
||||
│ │ ├── game-assets-lib/
|
||||
│ │ └── game-logging-lib/
|
||||
│ ├── engines/
|
||||
│ │ ├── engine-v1-common/
|
||||
│ │ ├── engine-v1-platform-api/
|
||||
@@ -36,7 +39,9 @@ games.sasedev/
|
||||
|
||||
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à :
|
||||
Les capacités transverses réutilisables sont séparées des générations moteur. `game-assets-lib` porte la résolution logique des assets et `game-logging-lib` le tracing commun.
|
||||
|
||||
Les subdivisions moteur 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 ;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/architecture/005-ASSET_ARCHITECTURE.md -->
|
||||
<!-- version: 1 -->
|
||||
<!-- version: 2 -->
|
||||
|
||||
# Architecture des assets
|
||||
|
||||
@@ -47,3 +47,48 @@ Desktop, Android et Web peuvent utiliser des mécanismes de packaging différent
|
||||
## Évolution
|
||||
|
||||
Un AssetManager commun pourra ultérieurement prendre en charge cache, loaders, textures, audio, fonts, données, erreurs, hot-reload de développement et éventuellement bundles. Ces capacités ne doivent être ajoutées qu'au rythme des besoins réels des jeux.
|
||||
|
||||
## Contrat V1 concret
|
||||
|
||||
À partir de `0.1.0-0-pre.9`, les URI logiques canoniques sont :
|
||||
|
||||
```text
|
||||
common://<relative-path>
|
||||
game://<relative-path>
|
||||
```
|
||||
|
||||
`game-assets-lib` valide ces URI et les résout à partir de deux racines physiques explicites. Il interdit les chemins absolus, les traversées `..` et les séparateurs Windows injectés dans une URI logique.
|
||||
|
||||
Le layout runtime généré est identique sur toutes les plateformes :
|
||||
|
||||
```text
|
||||
common/<relative-path>
|
||||
game/<relative-path>
|
||||
```
|
||||
|
||||
## Desktop
|
||||
|
||||
Le script `scripts/stage_game_assets.py` compose un package généré hors des sources.
|
||||
|
||||
Par défaut :
|
||||
|
||||
```text
|
||||
../builds/sasedev-games/assets/<game>/
|
||||
├── common/
|
||||
└── game/
|
||||
```
|
||||
|
||||
Le développement peut aussi résoudre directement les deux racines source sans staging.
|
||||
|
||||
## Android
|
||||
|
||||
Une tâche Gradle `stageSasedevAssets` compose les assets sous `build/generated/` avant `preBuild`.
|
||||
|
||||
Le contenu final de l'APK conserve les namespaces :
|
||||
|
||||
```text
|
||||
assets/common/...
|
||||
assets/game/...
|
||||
```
|
||||
|
||||
Les répertoires `build/generated/` restent des artefacts jetables.
|
||||
|
||||
Reference in New Issue
Block a user