πŸ€– Zappy πŸ€–

Zappy

πŸ“– About

Zappy is a tribute to Zaphod Beeblebrox, a network game inspired by the world of Trantor. The goal of the game is to manage a world and its inhabitants, where teams confront each other on a tiles map containing resources. The winning team is the first one to have at least 6 players reach the maximum elevation.

The game world, Trantor, is geographically made up of zero-relief planes without craters, valleys, or mountains. It is represented as a world map, and if a player exits from one side of the board, they will reappear on the opposite side.

The environment is rich in resources, including both minerals and food. The resources include linemate, deraumere, sibur, mendiane, phiras, and thystame. The server spawns resources at the start and every 20 units of time, following specific rules for their distribution.

Trantor's inhabitants focus on two activities: feeding themselves and collecting stones. These activities determine their elevation in the Trantorian hierarchy.

The inhabitants of Trantor are bodiless, blurry, and take up the entire tile they are in. They are pacifists and interact peacefully with their fellow creatures. They can see within their visual capacities but cannot distinguish their direction when they encounter each other.

The goal of each player is to rise up in the Trantorian hierarchy. The elevation ritual requires gathering a certain number of stones and players with the same level on the same tile. Once initiated, the elevation increases the player's level. The prerequisites and levels are specified in the project description.

Players have a limited field of vision. With each elevation, their vision range increases. The client can use the "look" command to receive information about the objects and players on the surrounding tiles.

Sound can be transmitted in the game, allowing players to communicate without revealing their identities. The direction of sound is indicated by the tile number affected by the sound before reaching the player's tile.


πŸ“š Table of Contents


πŸ“¦ Installation

git clone git@github.com:X-VINCENT/Zappy.git
cd Zappy
make

πŸš€ Usage

βš™οΈ Launch Server

./zappy_server -p port -x width -y height -n name1 name2 ... -c clientsNb -f freq
  • port is the port number
  • width is the width of the world
  • height is the height of the world
  • nameX is the name of the team X
  • clientsNb is the number of authorized clients per team
  • freq is the reciprocal of time unit for execution of actions

If you need additional information about the server, you can use the -h or --help flag.

πŸ–ΌοΈ Launch GUI

./zappy_gui -p port -h machine
  • port is the port number ofthe server
  • machine is the name of the machine; localhost by default

πŸ€– Launch AI

./zappy_ai -p PORT -n NAME -h machine
  • port is the port number of the server
  • name is the name of the team the AI will join
  • machine is the name of the machine; localhost by default

πŸ“š Documentation

The full and technical documentation is available here.


😎 Contributors 😎

βš™οΈ Server Team

Xavier VINCENT profile picture
Xavier VINCENT


πŸ–ΌοΈ GUI Team

Alrick RUBIO profile picture
Alrick RUBIO

Johanna BUREAU profile picture
Johanna BUREAU

Jules TROLLE profile picture
Jules TROLLÉ

LΓ©andre GODET profile picture
LΓ©andre GODET


πŸ€– AI Team

Romain DELARUELLE profile picture
Romain DELARUELLE

Quentin CHARPENTIER profile picture
Quentin CHARPENTIER

Xavier VINCENT profile picture
Xavier VINCENT