Welcome to Zappy.
A network game where teams compete on a resource-rich map.
- Language: C, C++, Python
- Libraries: SFML
- Compilation: Via Makefile, including
re,clean, andfcleanrules. - Binary Names:
zappy_server,zappy_ai,zappy_gui
Zappy is a multiplayer game set on the planet Trantor, featuring resource gathering and team-based competition.
Teams aim to elevate their players by performing rituals with gathered resources.
- Geography: A flat world with wrap-around edges.
- Resources: Includes food and six types of stones, each with different densities and spawning rules.
- Activities: Focus on gathering food and stones for survival and elevation rituals.
- Elevation Ritual: A key mechanism where players gather specific stone combinations to level up.
- Vision and Sound: Players have limited vision and can hear broadcasts without knowing the source.
Zappy uses a specialized communication protocol between the server and AI clients:
- Commands:
msz: Request or provide map size.bct: Request or provide content of a tile.mct: Request or provide content of the entire map.tna: Request or provide names of all teams.pnw: Notify connection of a new player.ppo: Request or provide a player's position.plv: Request or provide a player's level.pin: Request or provide a player's inventory.pex: Notify a player's expulsion.pbc: Broadcast a message.pic: Notify start of an incantation.pie: Notify end of an incantation.pfk: Notify egg laying by a player.pdr: Notify resource dropping.pgt: Notify resource collecting.pdi: Notify death of a player.enw: Notify an egg laid by a player.eht: Notify egg hatching.ebo: Notify player connection for an egg.edi: Notify death of a hatched egg.sgt: Request or set time unit.sst: Modify time unit.seg: Notify end of the game.smg: Send a message from the server.suc: Indicate an unknown command.sbp: Indicate a command parameter.
- Server (
zappy_server): Generates the world and manages game logic. - Graphical Client (
zappy_gui): Visualizes the game world. - AI Client (
zappy_ai): Controls a player autonomously.
- Compile the Project:
- Run
makein the project's root directory.
- Run
- Running the Server:
- Execute
./zappy_serverwith appropriate flags.
- Execute
- Connecting Clients:
- Launch
zappy_aiandzappy_guito interact with the game world.
- Launch
For detailed guidelines and command references, refer to zappy.pdf and zappyProtocole.pdf.
This project is released under the MIT License. See LICENSE for more details.

