Quake Live Interface

Build AI agents for Quake Live. Real-time game state streaming at 60Hz with Gymnasium/RL compatibility. Train bots with reinforcement learning.

Python 60Hz Streaming Gymnasium Ready Docker
60Hz
Update Rate
~25ms
Decision Time
4
Game Modes
Parallel Servers

Features

📡

Real-Time Streaming

Position, velocity, health, armor, weapons - all at 60Hz via Redis Pub/Sub.

🤖

Gymnasium Compatible

Ready-to-use environment wrapper for Stable Baselines3 and other RL frameworks.

🎮

Bidirectional Control

Read game state and send movement, aiming, and attack commands back.

📦

Entity Introspection

C-level access via get_entity_info() for item tracking and world state.

🐳

Docker Deploy

Complete stack with one command. Parallel training across multiple servers.

🗺️

2D Visualizer

Built-in map viewer for debugging agent behavior and spatial reasoning.

Supported Game Modes

⚔️
Free For All
🎯
Duel (1v1)
👥
Team Deathmatch
🚩
Capture The Flag

Quick Start

Setup
# Clone and install
git clone https://github.com/cainky/QuakeLiveInterface.git
cd QuakeLiveInterface
poetry install

# Start the server stack
docker-compose up -d

# Connect to localhost:27960 in Quake Live
train_agent.py
from stable_baselines3 import PPO
from ql_interface import QuakeLiveEnv

# Create Gymnasium environment
env = QuakeLiveEnv(
    redis_host="localhost",
    game_mode="ffa"
)

# Train with PPO
model = PPO("MlpPolicy", env, verbose=1)
model.learn(total_timesteps=100000)

# Save trained agent
model.save("quake_agent")