Generally Genius (GG) Bot Framework
Generals.io (GIO) is a fast-paced real-time strategy game with imperfect information within a 2D grid world. Players expand their land and battle with enemies in attempt to capture each others' generals. Capturing an opponent's general gives a player full control of their territory.
GIO presents an excellent testbed for AI agents through its simple set of action (up, down, left, right) in a complex state space. A gameplay supports up to 12 players, which makes it particularly challenging to select an appropriate strategy.
We present an agent development and data collection framework for GIO:
- highly modular framework using microservices architecture
- language agnostic - use anything with a Redis client
- supports rapid development and testing of AI agents
- uses Redis message broker for all communication
- enables real-time data collection and analysis of agent performance
- includes example notebooks (here and DeepNote) for interactive data analysis
Architecture
Components
Required
- Redis provides messaging backbone to allow all other components to communicate.
- SergeantSocket - IO module that relays data between game server and bot framework
- CommanderCortex - User Interface to control and monitor the bot
Bot Logic
The following components are language-agnostic reference implementations of the inner workings of the bot.
Python
- PyBot - simple examples for working with this framework
TypeScript
- ArmadaAssault - generate action recommendations
- StrategySentinel - selects appropriate action from ArmadaAssault's recommendations
Development Tools
- ReplayRanger - replay GIO game events on Redis for bot development
- Flobot - highly capable bot that serves as a baseline adversary for testing
Interactive Data Analysis
Framework Design
User Interface
Support
- Discord: generals.io -> #botting