Skip to content

SparCraft Artificial Intelligence

davechurchill edited this page Sep 12, 2014 · 1 revision

One of the main reasons for the release of this project was so that there could be a system for testing various AI algorithms for RTS combat. Many publications have presented work on RTS combat AI, however each one is implemented in a different system, and are often limited by simulation speed or by the time it takes to write a full simulation system.

Not only is SparCraft a full simulation system, but it also includes several AI algorithms we have developed for RTS combat.

Scripted Players

Many static scripted players come with SparCraft, they are:

AttackClosest
AttackDPS
AttackWeakest
Cluster
Kiter
KiterDPS
NOKDPS
Random

Alpha Beta

We have developed a version of Alpha Beta tree search called Alpha Beta Considering Durations (ABCD). This algorithm was introduced in the following 2012 AIIDE paper: Fast Heuristic Search for RTS Game Combat Scenarios.

The algorithm is implemented in SparCraft/source/AlphaBetaSearch.cpp

UCT Tree Search

UCT is another popular tree search algorithm, and we have modified it for use with RTS combat. It is available in SparCraft/source/UCTSearch.cpp

A paper detailing this UCT implementation is currently submitted to CIG2013 and will be posted here if accepted.

Portfolio Greedy Search

Our newest greedy search technique which loses to AB/UCT at small combat sizes, but easily defeats them at larger sizes. It is implemented in SparCraft/source/PortfolioGreedySearch.cpp

You can read the details about these methods in our 2013 CIG paper: Portfolio Greedy Search and Simulation for Large-Scale Combat in Starcraft