Skip to content

alexishachemi/zappy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zappy



The Zappy is a game where several teams confront each others on a map with the goal of collecting ressources and evolve.

The goal of the game is to be the first team to have 6 player reach the highest level. This is done through collecting food to avoid dying and stones that are required for elevation, the ritual that allows players to increase their level.

The game is played through the network, each players connecting to the main server (zappy_server) of the game and choosing their team. The players themselves are not human-controlled, but instead controlled by an AI (zappy_ai).

Also controlled through the network, is a Graphical user interface (zappy_gui), that communicate with the server using a special set of commands.

AI

Our group made 2 AI instead of the required 1 to introduce multiple strategies:

  • Autonomous AI: More focused on itself with a peer-to-peer mentality (zappy_ai).
  • Hivemind AI: Uses a leadership system where one player manages the entire group (zappy_ai_hm).

GUI

To display the game, we offer a multitude of graphical modes that uses 2 graphicals libraries:

  • SFML Graphics: Includes Tile information and 4 different themes.
  • Raylib Graphics: Includes Tile information, camera movement and 2 rendering modes (2D and Isometric).

Dependencies

Building

You can build the 3 executables using the provided Makefile:

mmake

Additionally, you can build each executable separately using the appropriately named rules:

make zappy_server
make zappy_gui
make zappy_ai

Usage

Once built, each executable can be run using the following flags (use -help for more information on each mandatory/optional flags):

USAGE: ./zappy_server -p port -x width -y height -n name1 name2 ... -c clientsNb -f freq -d
USAGE: ./zappy_gui -p port -h machine -g graphics
UUSAGE: ./zappy_ai[_hm] -p port -n name -h machine -d

Development and docs

For developers who wish to implement their own AI/GUI the following documentation files explain in details how to implement each program and how to abide by their respective communication protocol:

While working on this project's source code (or any of its in-house libraries), you can launch its unit tests using the following makefile rule (requires Criterion):

make tests_run

Contributors

Server:

Autonomous AI:

Hivemind AI:

SFML Graphics:

Raylib Graphics:

About

The end-of-year project of my second year at EPITECH. A game where teams of automated players face off to be the first to evolve to the last level !

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors