Autonomous AI teams race to evolve on a flat, wrap-around tile world (Trantor).
The first team to push six players to the top elevation (level 8) wins.
The project is split into three main components and one bonus tool, all communicating over TCP.
C++ • Manages game state, timing, and rules. Uses a single-threaded poll() loop to accept both GUI and AI connections.
C++ / Raylib • A 3D spectator client that requests the map state and renders the world.
- Feature: Run with
--headlessfor text-only logs.
Python • An autonomous player that survives, gathers resources, and incants to level up.
- Strategies (
-s):fsm(rule-based),uai(score-based) orqueen.
Python / Textual • A terminal dashboard to monitor games, manage profiles, attach clients, and track live logs.
Compile the project and run the binaries in separate terminals.
1. Start the Server:
./zappy_server -p 4242 -x 20 -y 20 -n TeamA TeamB -c 5 -f 1002. Start the GUI:
./zappy_gui -p 4242 -h 127.0.0.13. Spawn an AI:
./zappy_ai -p 4242 -n TeamA -h 127.0.0.1 -s utilityBonus - Orchestrator:
./zappy_tuiFor deep dives, check the component directories: