Pipeline d’assets
Cette page décrit comment les assets (graphismes, cartes, sons, vidéos) sont organisés et chargés par le jeu.
Elle s’appuie sur :
- le dossier
assets/; game/assets_loader.py;game/map.py(cartes.tmx).
Organisation du dossier assets/​
Le dossier assets/ contient les ressources utilisées par SnackAnarchy.
Graphismes​
Parmi les fichiers principaux :
background-menu.mp4: fond vidéo pour le menu principal ;client.png,client1.png,client2.png: sprites des clients ;player1.png,player1-left.png,player2.png,player2-left.png: sprites des joueurs (différentes directions ou variantes) ;door.png: sprite de porte ;facade_kebab.png,facade_tacos.png: façades de snack ;floor_kebab.png,floor_tacos.png: sprites de sol associés aux cartes ;sidewalk.png,street.png,wall.png: tuiles de décor (trottoir, rue, mur, etc.).
Cartes (.tmx)​
Les cartes sont créées avec Tiled et stockées dans des fichiers .tmx, par exemple :
floor_kebab.tmx;floor_tacos.tmx.
Ces fichiers définissent :
- la disposition des tuiles (sol, murs, trottoir, etc.) ;
- des calques d’objets pour :
- les collisions ;
- les positions d’équipements ;
- les points de spawn des clients, armes, etc.
Audio​
Les sons et musiques (par exemple music_ambient.wav) sont également rangés dans assets/, souvent dans un sous‑dossier dédié.
Chargement des assets (assets_loader.py)​
Le module game/assets_loader.py centralise le chargement des ressources :
- évite de recharger plusieurs fois les mêmes fichiers ;
- fournit des fonctions utilitaires pour récupérer une image, un son, une police, etc. ;
- gère les chemins relatifs depuis la racine du projet.
Schématiquement, le flux est :
- Au démarrage du jeu,
Gameappelle des fonctions deassets_loaderpour charger les ressources nécessaires. - Les modules
rendering/*conservent des références vers ces surfaces / sons pour les réutiliser. - En cas de changement de thème ou d’ajout d’assets, la plupart des modifications se font dans
assets/etassets_loader.py.
Cartes et rendu (map.py)​
Le module game/map.py est responsable de :
- charger les cartes
.tmxdepuisassets/; - interpréter les différents calques (tuiles, collisions, objets) ;
- exposer des structures de données que les renderers peuvent utiliser pour dessiner :
- le sol et les murs ;
- la rue, le trottoir ;
- les positions des équipements.
Si tu ajoutes une nouvelle carte :
- Crée le fichier
.tmxdansassets/(ou un sous‑dossier). - Assure‑toi que les tuiles référencées existent bien dans
assets/. - Adapte
map.py(et éventuellementconfig.py) pour charger et utiliser cette carte.
Bonnes pratiques pour ajouter des assets​
- Structure stable : évite de déplacer les sous‑dossiers une fois référencés dans le code (pour ne pas casser les chemins).
- Nommage cohérent :
- préfixer par type (
player_,client_,ui_, etc.) aide à s’y retrouver ; - garder les suffixes de direction (
-left,-right) explicites.
- préfixer par type (
- Crédits & licences :
- documenter l’origine des assets (auteur, licence) si nécessaire ;
- l’ajouter dans un fichier
CREDITS.mdou une section dédiée de la doc si le projet grossit.
- Optimisation :
- éviter les images inutilement lourdes ;
- mutualiser les spritesheets quand c’est pertinent.
Pour toute modification importante du pipeline d’assets (nouveaux formats, compression, etc.), commence par adapter assets_loader.py puis par faire évoluer progressivement les modules qui consomment ces ressources.