-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to our project's wiki page !
This page serves as a central entry point for all essential information regarding the GameProject.
GameProject is a Pygame game where you explore a vast world from a top-down view.
Our goal is to deliver an immersive and engaging experience where every interaction and challenge brings you closer to victory.
Game development is simplified thanks to the integration of a dedicated map editor (conceptor.py).
Information on project files and directory structure
GameProject/
├── Assets/
├── Files/
├── image_pou_gitlab/
├── Saves/
├── .gitignore
├── CHANGELOG
├── conceptor.py
├── game.log
├── requirement.txt
├── LICENSE
├── main.py
└── README.md
-
main.py : The main game file, contains the game loop with the menu, game, etc. scenes.
-
conceptor.py : Developer tool to modify the game map.
-
LICENSE : Legal document defining what others can do with the code.
-
CHANGELOG : Document that lists major changes chronologically.
-
requirement.txt : Essential text file that lists all external software dependencies.
-
Files/ : Directory containing all python files.
-
Files/game_mechanics.py : Handles everything related to
gameplay(dash, etc...). -
Files/map_loader.py : Reads and modifies the JSON file.
-
Files/plant_manager.py : Plant management (planting and harvesting).
-
Files/settings.py : Configuration file for screen dimensions, title, etc.
-
Files/procedural_generation.py : File allowing, as its name suggests, to generate a map (mainly Cellular Automata).
-
Files/sound_manager.py : Handles sound effects and music.
-
Files/texture_manager.py : Manages loading and scaling of textures, as well as preparing the grid and collision data.
-
Assets/ : Contains all game assets (images, sounds, piskel, etc.)
-
Saves/ : Contains all game maps (JSON files).
-
Saves/LastSave : Manages the last loaded map and the last positions
-
.gitignore : Specifies the files and directories that Git should ignore and not track, to prevent them from being accidentally added to commits. (Ex: .log files)
-
game.log : Logs activity in the game, conceptor, and important game functions to help with debugging.
- Z,Q,S,D and the arrow keys : to move
- SHIFT + Z/Q/S/D/ arrow keys : to move faster
- R : To plant or harvest.
- F : To extinguish fire.
- P : To pause the game.
-
H : Remove 10 health points (
test_viemode). -
J : Add 10 health points (
test_viemode). -
K : Add 10 score points (
mod_test_scoremode). - Echap : Return to menu or quit
Goal:
To ensure rapid and efficient development
The GameProject includes a custom-built map editor, named conceptor. This internal tool was designed specifically to facilitate world layout.
Rather than manually coding every map element or having a completely procedural map, ̀conceptor.py` offers an interface to quickly visualize, place, and organize the various components of the game world.
Editor Controls:
- Z,Q,S,D: to move the map
- clic Gauche: to place textures (can be held down)
- M: wall texture mode
- C: floor texture mode
- L-Ctrl: change texture mode
- F3/+: add columns/rows
- F4/-: remove columns/rows
- molette: zoom
To clone the project, install dependencies, and run the game locally:
Clone this repository in bash:
git clone https://github.com/MathysFernandez/GameProject.gitinstall dependencies:
- Python (the latest version)
- Pygame width the command
pip install pygame
Launch the game with:
main.py
Launch the editor mode with::
concepetor.py
-
pygame:
Provides the tools to handle graphics, sounds, and inputs (keyboard, mouse) to create a game. -
logging:
This is the logging module. It allows you to record error, warning, or information messages in a file -
math:
This module provides access to common mathematical functions. It includes things like trigonometric functions (sin, cos) and square root (sqrt) -
json:
This module is used to handle the JSON data format (JavaScript Object Notation). It is a very popular format for storing and exchanging structured data. -
os:
The os (Operating System) module allows you to interact with the operating system. -
sys:
This module provides variables and functions to interact with the Python interpreter. It is used to cleanly exit the program

| |
Name : Fernandez Mathys GitHub : mon profil |
|---|
| |
Name : Soilihi Timeo GitLab : mon profil |
|---|
| |
Name : Lamoureux Robin GitLab : mon profil |
|---|
| |
Name : Pinet Theo GitLab : mon profil |
|---|