Zappy is a comprehensive network game developed as part of the Epitech curriculum. It features a world where multiple teams of autonomous agents (AI) compete for resources and survival. The project consists of three main components: a central server that manages the game world, a graphical client for real-time visualization, and AI clients that implement strategic behaviors to achieve victory.
The primary objective of the game is for a team to reach the maximum elevation level. To do this, players must:
- Collect food to prevent starvation.
- Gather various types of precious stones scattered across the map.
- Gather at the same location to perform incantation rituals.
- Reach level 8 to secure victory for their team.
- Server: A robust backend written in C that handles multiple TCP connections, resource spawning, and game logic orchestration.
- GUI: A graphical interface built with C++, SFML, and ImGui, providing a clear view of the map, players, and game events.
- AI: Autonomous clients written in C++ that use sophisticated strategies, communication protocols, and resource management to evolve.
- Protocol: A custom communication protocol ensuring seamless interaction between all components of the system.
- Scalability: Support for custom map sizes, multiple teams, and adjustable time scales.
- GCC compiler
- Standard C libraries
- Math library (lm)
- G++ compiler (C++20 support)
- SFML (Simple and Fast Multimedia Library)
- OpenGL
- ImGui (source files included in the project)
- G++ compiler (C++20 support)
- GNU Make
To compile the entire project, run the following command at the root of the repository:
makeThis will produce three binaries:
- zappy_server: The core game engine.
- zappy_gui: The graphical visualizer.
- zappy_ai: The autonomous client.
You can also build components individually by navigating to their respective directories and running make.
This project is licensed under the MIT License. For more details, please refer to the LICENSE.md file.
Contributions are welcome. Please refer to the CONTRIBUTING.md file for guidelines on how to participate in the development of this project.
For any inquiries or feedback, please contact the project maintainer at: mscotton.pro@gmail.com