One C++ bot to rule both StarCrafts
A teaching-oriented AI bot that abstracts away the differences between Brood War and SC2 so you can focus on strategy, not API archaeology.

What it does CommandCenter is a StarCraft AI bot written in C++ that targets both StarCraft: Brood War (via BWAPI) and StarCraft II (via Blizzard’s official API) from the same codebase. It wraps the two incompatible APIs with common functions, so switching games is mostly a matter of recompiling for x86 (BW) or x64 (SC2). The bot handles the dull but essential stuff: worker management, base location analysis, enemy unit tracking, build-order execution from config files, and rudimentary squad-based combat.
The interesting bit The real product here is the architecture, not the AI. David Churchill—who runs the AIIDE StarCraft AI Competition—designed this as a successor to his earlier UAlbertaBot, explicitly stripping out hard-coded strategy so students and hobbyists can inject their own. The catch: most of the smarts are missing. There’s no build-order planner, no combat simulator, no tech upgrades or add-ons, and the bot will reportedly crash if you point it at anything other than a 1v1.
Key highlights
- Single source code targets both Brood War and SC2 via abstraction wrappers
- JSON-based config file (
BotConfig.txt) for build orders and runtime parameters - Online map analysis extracts base locations and expansions automatically
- Tracks enemy unit positions from last known sightings
- Generalized micro controllers work across all three races
- Buildable-location finder for construction placement
Caveats
- Several advertised config options (like
KiteWithRangedUnits) are noted as not yet implemented - Requires manual JSON validation; the bot silently fails on malformed config
- Linux/macOS support exists only for SC2; BW is Windows-only
- Churchill warns: “If the bot crashes or does other nasty things, please bear with me”
Verdict Grab this if you’re a student or researcher who wants a clean C++ skeleton for StarCraft AI experiments without wrestling two different APIs. Skip it if you want a competitive bot out of the box—this is scaffolding, not a finished competitor.