Skip to content

JsuisSayker/Zappy

Repository files navigation

🎮 • Zappy

Zappy is Epitech's second-year final project.

This project aimed at developing a network game where multiple AI teams compete on a field to gather resources.

The winning team is the one that manages to have at least 6 players reaching the maximum level.

Table of Contents

  1. General Info
  2. Project Components
  3. Installation
  4. Usage
  5. Trailer

General Info

Players, represented by AIs, move around a field to gather necessary resources to evolve.

Each player starts at level 1 and must collect specific resources to reach higher levels. The ultimate goal is to have at least 6 team members reaching the maximum level.

Teams need to devise strategies to optimize resource collection and hinder other teams' progress. Communication and coordination among AIs within the same team are crucial to achieving this goal.

Project Components

Server

   C

  • Features:
    • Manages communication between GUI and AIs
    • Manages resources and field state
    • Synchronizes and manages AI and GUI actions

Artificial Intelligences (AIs)

   PythonNumpy

  • Features:
    • Resource gathering strategy
    • Autonomous decision-making to reach the maximum level
    • Coordination with other team members

Graphical Client (GUI)

   C++Vulkan

  • Features:
    • Real-time visualization of the field and AI actions
    • User interface to monitor team progress
    • Debug and performance monitoring tools

Installation

To install gui dependencies, do this once:

./InstallGuiDependencies.sh

To install AI dependencies, do this once:

pip install numpy

To make the project:

make

Usage

After installation, here's how to launch the project

./zappy_server -p [PORT] -x [WIDTH] -y [HEIGHT] -n [TEAMS] -c [NB_CLIENTS] -f [FREQ]
      -p:           Connection port to the server.
      -x & h:       Dimensions of the game map.
      -n:           Names of all the teams.
      -c:           Maximum number of players per team.
      -f:           Execution frequency of the server.

AIs Launch

./zappy_ai -p [PORT] -n [TEAM NAME] -h [SERVER HOSTNAME] -i [ID]
      -p:           Connection port to the server.
      -n:           Team name of this AI.
      -h:           IP address for server connection.
      -i:           Client ID. (optional)

GUI Launch

./zappy_gui -p [PORT] -h [SERVER HOSTNAME]
      -p:           Connection port to the server.
      -h:           IP address for server connection.

Trailer

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published