Structure du projet

Cet article explique la structure du projet, comment organiser les dossiers, les fichiers et le contenu des cartes.

  • Exploration

Structure des dossiers et fichiers

La structure générale du projet se présente comme suit:

  • src: contient le programme du jeu en Python
  • assets: contient les éléments graphiques et audio du jeu
    • maps: contient les maps créées à l'aide de Tiled Editor
      • nom_de_la_map
        • nom_de_la_map.tmx: la map créée à l'aide de Tiled Map Editor
        • nom_de_la_map.py: le code Python spécifique à la map
        • nom_de_la_map.mp3: la musique à utiliser pour l'ambiance sonore
      • map2
      • map3
      • ...
    • tilesets: contient les jeux de tuiles
      • custom: jeux de tuiles personnalisés
      • exteriors: jeux de tuiles du set "Modern Exteriors"
      • interiors: jeux de tuiles du set "Modern Interiors" -
      • office: jeux de tuiles du set "Modern Office"
    • sprites: les images des personnages (jouables ou pas)
    • items: objets interactifs

(* ne pas mettre les [] dans les noms)

Pour tous les noms que vous utilisez (dossiers, fichiers, calques, objets...), respectez les mêmes conventions que pour les noms de variables en python:

  • lettres minuscules et chiffres
  • kebap case (tiret du bas)

Chemins d'accès

Vérifiez bien que les chemins d'accès aux fichiers des jeux de tuiles sont relatifs et corrects: ../../tilesets/[collection]/jeu_de_tuile.tsx.

Les maps (cartes)

Les cartes doivent être éditées dans Tiled Map Editor.

Pour créer vos maps, utilisez de préférence les jeux de tuiles fournis (collection "Modern ....").

Les cartes "officielles" du jeu actuellement sont:

Map Team Class File
Basic Fit Martim + Simon 4ttr jodoigne_basic_fit
McDo Old School Dylan Louis 4ttr jodoigne_mcdo_bis
Cinéma Yannis Gwen Mehdi 4ttr jodoigne_cinema_etoile
Place Victoire Jan Ethan 4ttr jodoigne_place_victoire
C36 Matéo Mathieu 4ttr cepes_tir_c36
C33 Wyatt Cyril 4ttr cepes_tir_c33_bis
gymnase Loïc 4ttr cepes_tir_gymnase + cepes_tir_gymnase_balcon
Fritapapa Ryan Arthur 3ttr jodoigne_fritapapa
C33 Julien Clément 3ttr cepes_tir_c33
Grand Hall Rafael Jakub 3ttr cepes_tir_grand_hall
King of Kebab Liyam V Sacha 3ttr jodoigne_king_of_kebap
Salle étude Tom Mathis 3ttr cepes_tir_salle_etude
Gare bus Noa Téo 3ttr jodoigne_gare_bus
Réfectoire Sam 3ttr cepes_tir_refectoire
Salle de sports Gatean 3ttr cepes_tir_salle_sports
Parc Jodoigne Gordon Adrien 3ttr jodoigne_parc
Bureau Directrice Aline Céline 3ttr cepes_tir_bureau_dir
Chaussée Tirlemont Dawid 3ttr cepes_tir
Lyam 3ttr
Lucas 3ttr
Terrain de foot Adams Manoah 4tq jodoigne_terrain_foot
Jodoigne Oleks 4tq jodoigne_ville
Misk 4tq
Xtreme Fitness Christian AdrienF 4tq jodoigne_xtreme
Commissariat Gabriel Mathieu 4tq jodoigne_police
Pharmacie Alejandro 4tq jodoigne_pharmacie
Carrefour AdrienB 4tq jodoigne_carrefour
Mc Do Nico Seb 4tq jodoigne_mcdo
Skate Park Bruce 4tq jodoigne_skate_park

Conventions de nommage

Utilisez le nom de fichier tel que défini dans cette liste.

Chaque carte doit se trouver dans son propre dossier qui porte le même nom que le fichier map (ex: "jodoigne_police").

Si votre carte doit avoir une musique de fond spécifique, ajoutez ce fichier au format mp3 et utilisez le nom de la map comme nom de fichier.

Listes de objets

Par convention, le jeu supportera les types d'objets suivants:

Type Forme Nombre Description
collisions rectangle 1..+sieurs zones qui empêchent le joueur de se rendre dans une zone de la carte
spawn point 1..+sieurs points d'apparation du joueUr
portal rectangle 1..+sieurs permet au joueur de se téléporter vers une autre map.
item point 0..+sieurs éléments du jeu avec lequel le joueur pourra interagir
hint rectangle 0..+sieurs zones illuminées par le jeu quand la carte est affichée (indices d'interaction)
pnj point 0..+sieurs permet d'ajouter des PNJ à voter map
position rectangle 0..+sieurs permet de modifier le sprite utilisé pour afficher votre personnage (par exemple: assis)

Ces objets sont/seront expliqués ci-dessous.

Collisions

Les collisions sont des "zones" où le personnage ne peut pas se déplacer. Votre carte doit être entourée de zones de collision afin d'empêcher le joueur de sortir de la map à l'écran.

  • Calque: Collisions
  • Forme: rectangles (pour des raisons de facilité de programmation)
  • Classe: collision

Spawn points

Les points de spawn sont les endroits où le joueur peut apparaître quand il entre sur une carte. Il y a un point de spawn par entrée possible.

Votre carte doit avoir au moins un point de spawn qui s'appelle "main" (c'est le point principal).

  • Calque: Objects
  • Classe: spawn
  • Forme: point

Donnez un nom explicite pour votre point (main ou autre). Le nom du point de spawn doit correspondre à celui spécifié dans le portal qui y mène.

Portals

Un portal est une zone qui permet au joueur de se déplacer vers une autre map.

Une carte doit toujours avoir au moins un portal (celui qui permet de retourner d'où on vient).

  • Calque: Objects
  • Classe: "portal".
  • Forme: rectangle
  • Nom: doit correspondre exactement au nom de la map correspondante
  • Propriétés:
    • spawn: nom du point de spawn si vous avez plusieurs portals qui mènent à la même carte

Items

Les items sont des objets avec lesquels le joueur pourra interagir. Les types d'interactions possibles sont, actuellement:

  • Ramasser l'objet: quand le joueur passe sur un item, celui dernier est placé dans l'inventaire et disparaît de la map.

Le jeu mettra les items en évidence pour aider le joueur à les identifier facilement.

C'est le jeu qui gère l'affichage des items. Ils ne doivent donc pas être dessinés dans votre carte.

  • Calque: Objects
  • Classe: "item".
  • Forme: point
  • Nom: doit correspondre exactement au nom de fichier de l'image correspondante (exemple: 'lampe')

L'image de l'item doit se trouver dans le dossier assets/items au format png (exemple: 'lampe.png')

Vous pouvez ajouter un son spécifique au format mp3 qui sera joué quand le joueur ramasse l'item (exemple: 'lampe.mp3'). Sinon, le jeu jouera un son prédéfini.

Hint

Les hints ("indices") permettent de guider votre joueur. Par exemple: montrer le chemin à suivre, une porte à ouvrir...

  • Calque: Objects
  • Classe: "hint".
  • Forme: point ou rectangle
  • Nom:
    • arrow_up: flèche vers le haut
    • arrow_down: flèche vers le haut
    • arrow_left: flèche vers la gauche
    • arrow_right: flèche vers la droite

PNJ

Les PNJ sont des personnages non jouables. Soit ils sont passifs (ils servent de décoration), soit le joueur peut interagir avec eux (dialogue simple ou recevoir quelque chose).

  • Calque: Objects
  • Classe: "pnj".
  • Forme: point
  • Nom: nom du sprite utilisé
  • Propriétés":
    • pseudo: pseudo du pnj. Ex: 'Mme la Directrice'...

position

Une zone de type "position" permet de changer l'apparence du joueur (assis...). Quand le joueur arrive sur cette zone, le jeu change le sprite utilisé (exemple: assis)

  • Calque: Objects
  • Classe: "position".
  • Forme: rectangme
  • Nom: nom du sprite à utiliser (ex: "sit")

Jeux de tuiles

Priviligégiez l'utilisation des fichiers "intermédiaires" ("Theme Sorter") qui contiennet les tuiles thématiques. Evitez d'utiliser les fichiers individuels ou les GROS fichiers qui contiennent TOUS les sprites du jeu de tuile (pour des raisons de performances).

Utilisez uniquement des tuiles de 32x32 pixels.

Utilisez le nom du jeu de tuiles d'origine (ne changez pas les noms...).

L'image et le fichier TSX doivent se trouver dans le même dossier.

Les personnages

Les images des personnages doivent se trouver dans le dossier "sprites".

Tous ce qui bouge peut être considéré comme un personnage: le joueur, PNJS,animaux, véhicules...

Utilisez un dossier par personnage.

Pour aller plus loin