Skip to content
Fernandez Mathys edited this page Jul 20, 2026 · 13 revisions

Accueil du Projet

Bienvenue sur la page wiki de notre projet !

Cette page sert de point d'entrée central pour toutes les informations essentielles concernant le projet GameProject.


Aperçu du Projet

GameProject est un jeu Pygame où vous explorez un vaste monde depuis une vue aérienne.
Notre objectif est de livrer une expérience immersive et engageante où chaque interaction et chaque défi vous rapprochent de la victoire.
Le développement du jeu est simplifié grâce à l'intégration d'un éditeur de carte dédié (conceptor.py).


📈 Architecture du Projet

Information sur les fichiers et l'arborescence du projet

[!tip] Structure GameProject/
├── Assets/
├── Files/
├── image_pou_gitlab/
├── Saves/
├── .gitignore
├── CHANGELOG
├── conceptor.py
├── game.log
├── requirement.txt
├── LICENSE
├── main.py
└── README.md

[!important] Contenue

  • main.py : Le fichier principal du jeu, contient la boucle de jeu avec les scènes menu, jeu, etc...

  • conceptor.py : Programme pour les développeur permettant de modifier la carte du jeu.

  • LICENSE : Document légal définissant ce que les autres peuvent faire avec le code.

  • CHANGELOG : Document qui liste chronologiquement les changements majeurs.

  • requirement.txt : Fichier texte essentiel qui liste toutes les dépendances logicielles externes.

  • Files/ : Répertoire contenant l'ensemble des fichiers python.

  • Files/game_mechanics.py : S'occupe de tout ce qui est gameplay (dash, etc...).

  • Files/map_loader.py : Permet de lire et modifier le fichier JSON.

  • Files/plant_manager.py : Gestion des plantes (plantation et récolte).

  • Files/settings.py : Fichier de configuration pour les dimensions de l'écran, le titre, etc.

  • Files/procedural_generation.py : Fichier permettant comme son nom l'indique de généré une carte (principalement Automate Cellular)

  • Files/sound_manager.py : Permet les effets sonnore et musique.

  • Files/texture_manager.py : Gère le chargement et la mise à l'échelle des textures, ainsi que la préparation de la grille et des données de collision.

  • Assets/ : Contient toutes les ressources du jeu (images, sons, piskel, etc.)

  • Saves/ : Contient L'ensemble des cartes du jeu (fichiers JSON).

  • Saves/LastSave : Gère la dernière carte chargé et les dernières positions

  • .gitignore : Spécifie les fichiers et répertoires que Git doit ignorer et ne pas suivre, afin d'éviter qu'ils ne soient accidentellement ajoutés aux commits. (Ex: les .log)

  • game.log : Journalise l'activité sur le jeu, conceptor et fonctions importante du jeu pour aider au débug.


🕹️ Les commandes du jeu:

  • Z,Q,S,D et les flèches directionnelles : pour ce déplacer
  • SHIFT + Z/Q/S/D/flèches directionnelles : pour ce déplacer + vite
  • R : Pour planter ou récolter.
  • F : Pour éteindre feu.
  • P : Pour mettre en pause le jeu.
  • H : Retirer 10 points de vie (mode test_vie).
  • J : Ajouter 10 points de vie (mode test_vie).
  • K : Ajouter 10 points de socre (mode mod_test_score).
  • Echap : Retour au menu ou quitter.

:map: La Création de Monde

[!note] Objectif:

Pour garantir un développement rapide et efficace

Le projet GameProject est doté d'un éditeur de carte sur mesure, nommé conceptor. Cet outil interne a été conçu spécifiquement pour faciliter l'agencement du monde.
Plutôt que de coder manuellement chaque élément de la carte ou d'avoir une carte entièrement procédurale, conceptor.py offre une interface permettant de visualiser, de placer et d'organiser rapidement les différents composants du monde de jeu.

[!TIP] Les commandes de l'éditeur:

  • Z,Q,S,D: pour déplacer la carte
  • clic Gauche: pour placer les textures (peu être maintenue)
  • M: mode de texture mur
  • C: mode de texture sol
  • L-Ctrl: change mode de texture
  • F3/+: ajouter colonnes/lignes
  • F4/-: retirer colonnes/lignes
  • molette: zoom

▶️ Démarrage Rapide

Important

Pour cloner le projet, installer les dépendances et lancer le jeu en local :

Cloner ce dépôt en bash:

git clone https://gitlab.univ-lr.fr/projets-l2-2025/eco.io/gameproject.git

installer les dépendances:

Lancez le jeu avec:
main.py

Lancez le mode éditeur avec:
concepetor.py


📚 Explication de nos importations

  • pygame:
    Il donne les outils pour gérer les graphismes, les sons et les entrées (clavier, souris) pour créer un jeu.
  • logging:
    C'est le module de journalisation.
    Il permet d'enregistrer des messages d'erreurs, d'avertissements ou d'informations dans un fichier
  • math:
    Ce module donne accès à des fonctions mathématiques courantes.
    On y trouvera des choses comme les fonctions trigonométriques (sin, cos) et la racine carrée (sqrt)
  • json:
    Ce module sert à gérer le format de données JSON (JavaScript Object Notation).
    C'est un format très populaire pour stocker et échanger des données structurées.
  • os:
    Le module os (Operating System) permet d'interagir avec le système d'exploitation.
  • sys:
    Ce module fournit des variables et des fonctions pour interagir avec l'interpréteur Python.
    Il est utilisé pour quitter proprement le programme

🔗 Ressources Utiles

Web - Documentation Pygame
Web - Documentation Markdown pour la documentation gitlab
Livre - Pygame - Initiez-vous au développement de jeux vidéo en python
Web - Keep a Changelog
YT - I Optimised My Game Engine Up To 12000 FPS
YT - What I Did To Optimize My Game's Grass
YT - When Your Game Is Bad But Your Optimisation Is Genius
YT - Python: Creating a Grid With Pygame
YT - Scrolling Backgrounds in Pygame


:frame_photo: Visuels

exemple_generation{width="100%"}


👤 Auteurs

Nom : Fernandez Mathys
GitLab : mon profil
Nom : Soilihi Timeo
GitLab : mon profil
Nom : Lamoureux Robin
GitLab : mon profil
Nom : Pinet Theo
GitLab : mon profil

Clone this wiki locally