Skip to content

mallory-scotton/zappy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

412 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zappy

Overview

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.

Objectives

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.

Features

  • 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.

Dependencies

Server

  • GCC compiler
  • Standard C libraries
  • Math library (lm)

GUI

  • G++ compiler (C++20 support)
  • SFML (Simple and Fast Multimedia Library)
  • OpenGL
  • ImGui (source files included in the project)

AI

  • G++ compiler (C++20 support)

General

  • GNU Make

Build Instructions

To compile the entire project, run the following command at the root of the repository:

make

This 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.

License

This project is licensed under the MIT License. For more details, please refer to the LICENSE.md file.

Contributing

Contributions are welcome. Please refer to the CONTRIBUTING.md file for guidelines on how to participate in the development of this project.

Contact

For any inquiries or feedback, please contact the project maintainer at: mscotton.pro@gmail.com

About

⚡ Multiplayer AI-driven network game with server and GUI, inspired by Zaphod Beeblebrox. Built in C & C++.

Topics

Resources

License

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages