-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Zappy is an Epitech network game where several teams of AI players compete on a tile-based world. The first team to have at least 6 players reach the maximum elevation (level 8) wins.
The project is split into three components:
| Component | Language | Status |
|---|---|---|
| Server | C++ | Done |
| AI | Python | Done |
| GUI | Godot / C++ | Done |
The world is called Trantor — a flat, toroidal map with no walls (exiting from the right wraps to the left, top wraps to bottom). Players walk around collecting food and six types of stones. They use stones to perform incantation rituals that raise their level. Winning requires getting 6 players to level 8.
| Resource | Map density |
|---|---|
| food | 0.5 |
| linemate | 0.3 |
| deraumere | 0.15 |
| sibur | 0.10 |
| mendiane | 0.10 |
| phiras | 0.08 |
| thystame | 0.05 |
On a 10×10 map that means 50 food and 5 thystame. The server repopulates resources at startup and every 20 ticks.
One unit of food keeps a Trantorian alive for 126 time units.
| Level | Players | linemate | deraumere | sibur | mendiane | phiras | thystame |
|---|---|---|---|---|---|---|---|
| 1→2 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
| 2→3 | 2 | 1 | 1 | 1 | 0 | 0 | 0 |
| 3→4 | 2 | 2 | 0 | 1 | 0 | 2 | 0 |
| 4→5 | 4 | 1 | 1 | 2 | 0 | 1 | 0 |
| 5→6 | 4 | 1 | 2 | 1 | 3 | 0 | 0 |
| 6→7 | 6 | 1 | 2 | 3 | 0 | 1 | 0 |
| 7→8 | 6 | 2 | 2 | 2 | 2 | 2 | 1 |
Players participating in an incantation are frozen until the ritual ends. All players present at the start and end of a successful incantation advance to the next level, regardless of team. Resources are consumed from the tile on success.
make # builds Server, Gui, and Ai; outputs zappy_server, zappy_gui, zappy_ai
make clean # removes object files
make fclean # removes all build artifacts and root-level binaries
make re # fclean + all- server:
# start the server
./zappy_server -p 4242 -x 10 -y 10 -n TeamA TeamB -c 7 -f 100- gui:
# start the GUI (connects via the in-game dialog)
./zappy_gui- AI:
./Ai/zappy_ai -p 4242 -n TeamA -h localhost 2>&1
./Ai/zappy_ai -p 4242 -n TeamB -h localhost 2>&1