The number of game states in games like Chess and Go is usually compared to the number of atoms in the universe. However, this complexity is nowhere to be compared to the complexity of Real-Time Strategy Games. These game lack the luxury of a discrete world where actions and moves are taken in order. To add to that, they also have to deal with the harsh requirements of per frame calculations.
David Churchill and Michael Buro
Real-time strategy (RTS) games are known to be one of the most complex game genres for humans to play, as well as one of the most difficult games for computer AI agents to play well. To tackle the task of applying AI to RTS games, recent techniques have focused on a divide-and-conquer approach, splitting the game into strategic components, and developing separate systems to solve each. This trend gives rise to a new problem: how to tie these systems together into a functional real-time strategy game playing agent. In this paper we discuss the architecture of UAlbertaBot, our entry into the 2011/2012 StarCraft AI competitions, and the techniques used to include heuristic search based AI systems for the intelligent automation of both build order planning and unit control for combat scenarios.
In this paper, the architecture of UAlbertaBot (A StarCraft agent developed by Alberta University) is explained, along with the rationale behind its design decisions. As a Software Engineer, I couldn’t stop my self from enjoying learning about how modular and elegant their architecture is. One good thing about is the fact that you can easily replace components of the agents that were hardcoded by AI algorithms.
The paper also briefly talks about how can you take a divide and conquer approach to attempt solving RTS Games. From Build Orders to Micro Management, every problem is attempted individually, and using the architecture like UAlbertaBot a grand solution is formed.
Since StarCraft is a closed source game, the researchers used a reverse-engineered API in C++ that allows issuing direct commands to the game called: BWAPI. It’s great that such APIs exist, but it makes me wonder why don’t Blizzard develop native APIs for researchers instead, especially with the increased focus on StarCraft as the de jure of RTS research.
UPDATE: They did so.
The paper doesn’t fail in teasing other papers by the same researchers that go deeper into each problem in RTS such as Build Orders, and Micro Management, which makes me look forward to reading them.
The paper can be accessed here: http://www.cs.mun.ca/~dchurchill/pdf/aiide12ws-search.pdf