The Zappy project is developed as part of our curriculum at Epitech. It is a multiplayer network game where several teams of artificial intelligences compete for dominance in a virtual world. The project consists of three main parts: the server, the graphical user interface (GUI), and the artificial intelligence (AI).
- Server: Manages the virtual world and handles communications between different entities (AI and GUI).
- Graphical User Interface (GUI): Provides real-time visualization of the virtual world and AI actions.
- Artificial Intelligence (AI): Develops strategies and behaviors of automated players in the virtual world.
To successfully complete this project, we divided our group into three sub-teams, each responsible for a specific part of the project.
-
AI Team:
-
GUI Team:
-
Server Team:
Each part of the project has its own documentation. For detailed understanding of each component, please refer to the specific documentation:
The AI component is responsible for developing the strategies and behaviors of the automated players in the virtual world. This includes:
- Vision: How the AI perceives the virtual environment.
- Decision Making: The logic behind the AI's actions.
- Communication: Interaction between AI players.
The GUI component provides a real-time visualization of the virtual world and the actions of the AIs. This includes:
- Rendering: Visual representation of the game state.
- User Interaction: Controls and feedback for the user.
The server component manages the virtual world and handles communications between different entities. This includes:
- World Management: Keeping track of game state and environment.
- Networking: Ensuring smooth communication between the server, AI clients, and GUI clients.
To build the project, please follow these steps:
-
Clone the Repository:
git clone https://github.com/EpitechPromo2027/B-YEP-400-STG-4-1-zappy-augustin.grosnon.git cd B-YEP-400-STG-4-1-zappy-augustin.grosnon
-
Install Dependencies:
- GUI: Ensure you have Raylib installed.
-
Build the Project:
make
-
Run the Project: For example, you can run each binary as follows:
-
Start the server:
./zappy_server -p 1234 -x 42 -y 42 -n team1 team2 team3 -c 10 -f 200
-
Start the GUI:
./zappy_gui -h 0.0.0.0 -p 1234
-
Run the AI:
./zappy_ai -p 1234 -n team1
This document provides an overview of the Zappy project and directs to the specific documentation for each component. Each team has worked independently on their part while ensuring seamless integration for the overall functionality of the project. For any further questions or information, please refer to the respective GitHub repositories or contact the team members.