0.1.0-0-pre.9

This commit is contained in:
2026-09-16 10:01:13 +02:00
parent 00808ea5a6
commit 4fcbdf316d
22 changed files with 507 additions and 18 deletions

View File

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