Satchel Hamilton
← Projects
Games

Tavern — AI companions for Warcraft 3

Free, offline local-LLM teammates and opponents for Warcraft 3: they chat, take voice commands, strategize over AMAI, and trash-talk — all on a LAN, no cloud.

Source ↗

Fill a 4v4 lobby without six more humans: AI players who listen to your voice, react to the map, strategize at the macro level, and talk trash — good-naturedly. The AI does the talking and the strategy; the existing AMAI mod handles unit micro it's already good at. Everything runs fully offline once installed.

What's technically interesting

The whole architecture falls out of one constraint: Warcraft 3's Lua/JASS sandbox can't open sockets, make HTTP requests, or touch the filesystem — so the LLM can't live inside the map. The fix is a host-side Companion Daemon (Python/asyncio, one persona per AI player, talking to a local model via Ollama) that communicates with the game through an indirect file-based bridge — a TypeScript-compiled-to-Lua layer baked into a modified melee map. Voice is a decoupled frontend: whisper.cpp in, Piper out.

Designing around a sandbox you can't change — and keeping it deterministic enough to test offline with a --fake-llm stub — is the kind of constraint problem the rest of the site is built around, here wearing a fun costume.