Aller au contenu principal

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 :

  1. Au démarrage du jeu, Game appelle des fonctions de assets_loader pour charger les ressources nécessaires.
  2. Les modules rendering/* conservent des références vers ces surfaces / sons pour les réutiliser.
  3. En cas de changement de thème ou d’ajout d’assets, la plupart des modifications se font dans assets/ et assets_loader.py.

Cartes et rendu (map.py)​

Le module game/map.py est responsable de :

  • charger les cartes .tmx depuis assets/ ;
  • 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 :

  1. Crée le fichier .tmx dans assets/ (ou un sous‑dossier).
  2. Assure‑toi que les tuiles référencées existent bien dans assets/.
  3. Adapte map.py (et éventuellement config.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.
  • CrĂ©dits & licences :
    • documenter l’origine des assets (auteur, licence) si nĂ©cessaire ;
    • l’ajouter dans un fichier CREDITS.md ou 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.