Table of Contents


Starcraft Screen Shot

The SPAR AI Agent is a StarCraft-playing agent implementing architecture concepts and AI algorithms.

The agent is intended to be used as a testbed for intelligent decision making in adversarial domains such as RTS games. In particular, it is the backbone for our game AI that we submitted to the AIIDE StarCraft AI 2011 and 2012 competition. The intelligent decision making capabilities we are currently focusing on are:

We are approaching the agent design challenge from theoretical and practical standpoints; we want our algorithms to be grounded as much as possible in theories that explain the rationale behind their working, but we also want them to work efficiently in real-world RTS games. As such, we favour algorithmic solutions that can be easily adapted to work in other adversarial domains similar to RTS games, such as defence and security applications, intelligent training simulators (sometimes known as serious games) and so on.

Software Architecture


The various techniques necessary to design the SPAR agent need to be coordinated within an architectural model. We designed the architectural model with the intent of providing various levels of abstraction to help designing of different paced sensing and decision making processes.

Sensing Modules

The sensing modules analyze the game state in order to provide meaningful information to the decision making modules. Their aim is to achieve situation awareness at various levels of abstraction. The lowest level is provided by the game state directly, while higher levels utilize this information to recognize the opponent's strategy and predict his future actions. At the moment in the source code, all sensing processes are directly incorporated into the perceptual state. The high-level sensing processes should thus be considered as objectives, not actual functionality.

Decision Making Modules

The decision making modules are responsible for controlling the overall behaviour of the agent at various levels of abstraction. Lower levels individually control units and groups of units, while higher levels are concerned with achieving long-term goals and objectives. The different layers' input and output are not set in stone yet.

  • Strategic decisions: figures out the mid- and long-term army compositions and buildings which seem appropriate, for example, favour getting anti-air defence if an enemy Spire has been spotted.
  • Tactical decisions: computes short-term abstract actions to execute, like attacking, defending, building something, etc.
  • Actions implementation: implements the abstract actions by instantiating behaviors in charge of sending BWAPI commands and handling the contingencies inherent with the actions.
  • Reactions: associates reactions to environment events using Behaviours, which are represented as FSMs (Finite State Machines) made up of states and transitions between these states.


This is a video of our agent controlling Reaver and Shuttle units to perform a Reaver Drop around a Zerg base.

More videos coming soon!


SSCAI 2012

SSCAI 2012

The SPAR agent took part in the SSCAI 2012 competition and finished 6th out of 49 (most of the participants being individual students).

AIIDE 2012 StarCraft AI Competition

AIIDE 2012

The SPAR agent took part in the AIIDE 2012 StarCraft AI Competition and finished 7th out of 10. The 2012 version was essentially equivalent to the 2011 version, but had path-planning and multi-threading capabilities as well.

AIIDE 2011 StarCraft AI Competition

AIIDE 2011

The SPAR agent took part in the AIIDE 2011 StarCraft AI Competition, which pitted 13 participants against each other in full-scale games. It finished 6th (losing quite a lot of games due to crashes which are now fixed) but will most probably fare much better next year!

AIIDE 2010 StarCraft AI Competition

AIIDE 2010

In 2010, a team of undergraduate students (Anthony Jo Quinto, Frédéric St-Onge and Steve Tousignant) worked on a project to create an artificial player (named the Sherbrooke Agent) for StarCraft. They were supervised by graduate student at the PLANIART lab. The agent was submitted to the 2010 AIIDE StarCraft competition.


The agent was a first draft for a more complex and complete artificial player. The team used FSMs to encode the behaviours of the units. They also used a simple plan recognition algorithm to try to infer the opponent's build order. The solution was mostly ad hoc and hard-coded.


The agent offered a good performance in the micromanagement challenges, taking the second place in the first one. The objective of this challenge was to control a set of units and win a fight against the same units controlled by the opponent. It won against two other AI agents but was defeated in the finale.

The second challenge was similar to the first one with the addition of interesting terrain features into the maps. The agent lost to the only other opponent in the category, the same that defeated it in the first challenge's finale.

The third challenge in which the agent participated was a tech-limited game with control over production and construction. The agent was defeated early in the challenge managing to win once and be defeated twice.


This is a video of the first challenge's finale. The Sherbrooke Agent is the one in blue.

This is a video of the Sherbrooke Agent controlling Zealots as the red player.

Development Team

The team developing the SPAR AI agent is constituted of members of the PLANIART lab. The team is under the supervision of Prof. Froduald Kabanza. The members are Simon Chamberland, Francis Bisson, Julien Filion, and Mathieu Poisson.