Home About EIS →

Using StarCraft as a Game AI Testbed

StarCraft

StarCraft

I’ve been interested in developing AI for StarCraft for several years now. I recently came across the Broodwar API project, which provides hooks into StarCraft. It enables developers to query game state as well as issue orders to units. The Broodwar API makes it possible to write custom AI bots for StarCraft.

There are several benefits to using StarCraft as an environment for evaluating game AI. StarCraft is a robust, commercial RTS game that has been around for over 10 years. The game is more complex than current research systems due to its distinct races, deep tech trees and large map pool. Also, StarCraft has developed a large following of players, resulting in a huge number of game traces available for analysis.

The Broodwar API provides several features that make StarCraft a viable AI testbed. First, the API provides a flag for enabling or disabling perfect information.  When the flag is disabled, the “fog of war” is enforced. There is also a flag to enable or disable user interaction. Second, the API can be used when running single or multiplayer games. Therefore, bots can be configured to compete against a human, the standard StarCraft AI or another bot utilizing the Broodwar API.

StarCraft is launched using a 3rd party application, which injects the Broodwar API. The AI module communicates with the ProxyBot using sockets.

StarCraft is launched using a 3rd party application, which injects the Broodwar API. The AI module communicates with the ProxyBot using sockets.

My goal is to develop an AI system for StarCraft that integrates planning and data mining techniques. The target planning language is ABL, which compiles to Java code. In order to enable communication between StarCraft and ABL, I built the StarCraft ProxyBot, which uses socket communication.  The ProxyBot makes it possible to develop a Java-based StarCraft AI system.

The top image shows the player's view of a StarCraft game. The bottom image shows the proxy bot's view of the game state.

The top image shows the player's view of a StarCraft game. The bottom image shows the proxy bot's view of the game state.


About the author:  Ben Weber is a PhD student at UC Santa Cruz.

This entry was posted in Academics, Games and tagged , , , , , , , , , , , , , , , , . Bookmark the permalink. Both comments and trackbacks are currently closed.

2 Comments

  1. Posted November 1, 2009 at 1:24 PM | Permalink

    So basically the StarCraft AI sees the map without the fog of war? That’s why it was beating the crap out of me at first. Ok, with some strong C++ knowledge I should be able to study this in more detail. Thanks!

  2. mani
    Posted May 2, 2010 at 9:32 PM | Permalink

    may I know how many level of development in game AI, for example StarCraft?
    in how many level we can develop the AI? The one that i know of is technology tree level, what else are there?