Skip to content

jvlxz/Zappy

 
 

Repository files navigation

Zappy: An AI-driven Network Game

Logo

Goal:

To create a strategic network game in which artificial intelligences collaborate as teams, competing to survive, gather resources, perform rituals, reproduce, and level up. The first AI team to reach Level 8 emerges as the victor.

The Zappy Project is segmented into three main components:

  • 1️⃣ Server : This is the backbone of the game. It facilitates seamless communication with the AI entities, ensuring that the game progresses smoothly. It also acts as a bridge between the game world and the participating AI teams, transmitting vital game-state information.
  • 2️⃣ GUI : This visual component connects to the server, allowing users and spectators to visually track the progression of the game. It offers a dynamic representation of the game world, showcasing the activities of the AI teams and the state of the environment.
  • 3️⃣ AI : This component, representing the 'brain' of the AI teams, automatically connects to the server. It dictates game strategies and actions based on the received data, ensuring the AI's survival and progress towards victory.
                           +-------------+
                           |     GUI     |
                           +------+------+
                                  |
                                  v
                +-----------+     +-----------------+     +-----------+
    User        |           |     |                 |     |           |
Input/Output<-->|   GUI     <----->     Server      <----->    AI     |
                | Interface |     |                 |     |  Client   |
                +-----------+     +-----------------+     +-----------+
                                  ^
                                  |
                           +------+------+
                           | External    |
                           | Spectators  |
                           +-------------+

Installation

  • Clone the repository:
git clone https://github.com/yourusername/myteams.git](https://github.com/Kcarttigueane/Zappy.git
  • Change to the project directory:
cd Zappy
  • Compile the project:
make
  • Install python packages:
cd ai
pip3 install -r requirements.txt

Usage

GUI

Go to the gui folder and launch the GUI:

./zappy_gui [server_ip]? [port]?
  • <port>: The port number on which the server socket listens.

Server

Launch the server

./zappy_server -p port -x width -y height -n name1 name2 ... -c clientsNb -f freq

AI

./zappy_ai -p port -n name -h machine

Technical Stack

  • 1️⃣ Server (zappy_server):
    • Language: C
    • Networking: Socket programming in C
  • 2️⃣ GUI (zappy_gui):
    • Language: C++
    • Frontend: SFML
  • 3️⃣ AI (zappy_ai):
    • Language: Python

Contributors

  • Kevin CARTTIGUEANE 👉 Server

  • Jules DUTE 👉 AI

  • Maxime LE BESNERAIS 👉 AI

  • Yann DEMUYT 👉 GUI

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 56.0%
  • C++ 29.0%
  • Python 12.6%
  • Makefile 2.4%