← all repositories
davechurchill/commandcenter

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.

540 stars C++ AgentsDomain Apps
commandcenter
Velocity · 7d
+0.2
★ / day
Trend
steady
star history

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.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.