1.4 KiB
Architecture des assets
Séparation physique
Les assets ne résident jamais dans les crates Rust. La racine assets/ contient :
assets/
├── common/
├── game-reflex-poc/
├── game-snake-poc/
└── <future-game>/
assets/common/ ne contient que les ressources dont la mutualisation est réelle : fonts, UI générique, sons communs, icônes, particules ou shaders selon les besoins.
Chaque jeu possède son propre répertoire pour textures, audio, données, niveaux et autres ressources spécifiques.
Espace logique
Le runtime doit éviter les collisions silencieuses. Une résolution logique peut distinguer :
common://ui/button.png
game://textures/player.png
ou préserver des préfixes équivalents dans le package final.
Packaging
Chaque plateforme assemble les deux sources sans créer de copie source durable dans la crate :
assets/common/
+
assets/<game>/
=
package runtime du jeu
Desktop, Android et Web peuvent utiliser des mécanismes de packaging différents tout en conservant les mêmes noms logiques.
É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.