Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

923 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zappy

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.


C++ Python

Server CI GUI CI AI CI

Last commit Contributors Code size Top language

Contributors

📖 API docs: Server · GUI


Components

The project is split into three main components and one bonus tool, all communicating over TCP.

1. Server (zappy_server)

C++ • Manages game state, timing, and rules. Uses a single-threaded poll() loop to accept both GUI and AI connections.

2. Graphic Client (zappy_gui)

C++ / Raylib • A 3D spectator client that requests the map state and renders the world.

  • Feature: Run with --headless for text-only logs.

3. AI Client (zappy_ai)

Python • An autonomous player that survives, gathers resources, and incants to level up.

  • Strategies (-s): fsm (rule-based), uai (score-based) or queen.

Bonus: TUI Orchestrator (zappy_tui)

Python / Textual • A terminal dashboard to monitor games, manage profiles, attach clients, and track live logs.

Quick Start

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 100

2. Start the GUI:

./zappy_gui -p 4242 -h 127.0.0.1

3. Spawn an AI:

./zappy_ai -p 4242 -n TeamA -h 127.0.0.1 -s utility

Bonus - Orchestrator:

./zappy_tui

Documentation

For deep dives, check the component directories:

About

Autonomous multi-agent network game in C++/Python: TCP server orchestrating simultaneous clients, self-driving AI teams that explore, gather and evolve, and a real-time 3D GUI.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages