A Dataset for StarCraft AI & an Example of Armies Clustering
Gabriel Synnaeve and Pierre BessièreCollège de France, CNRS, Grenoble University, LIG
gabriel.synnaeve@gmail.com and pierre.bessiere@imag.fr

Abstract
This paper advocates the exploration of the full state ofrecorded real-time strategy (RTS) games, by human or
robotic players, to discover how to reason about tactics andstrategy. We present a dataset of StarCraft1 games encompassing the most of the games’ state (not only player’s orders). We explain one of the possible usages of this dataset
by clustering armies on their compositions. This reduction ofarmies compositions to mixtures of Gaussian allow for strategic reasoning at the level of the components. We evaluatedthis clustering method by predicting the outcomes of battles
based on armies compositions’ mixtures components.

Introduction
Real-time strategy (RTS) games AI is not yet at a level highenough to compete with trained/skilled human players. Particularly, adaptation to different strategies (of which army
composition) and to tactics (army moves) are strong indicators of human-played games (Hagelbäck and Johansson
2010). So, while micro-management (low level units control) has known tremendous improvements in recent years,
the broadest high-level strategic reasoning is not yet an exemplary feature neither of commercial games nor of StarCraft AI competitions’ entries. At best, StarCraft bots havean estimation of the available technology of their opponents
and use rules encoding players’ knowledge to adapt theirstrategy. We believe that better strategic reasoning is a matter of abstracting and combining the low level states at an
expressive higher level of reasoning. Our approach will be
to learn unsupervised representations of low-level features.
We worked on StarCraft: Brood War, which is a canonical RTS game, as Chess is to board games. It had beenaround since 1998, has sold 10 millions licenses and was
the best competitive RTS for more than a decade. There are
3 factions (Protoss, Terran and Zerg) that are totally different in terms of units, build trees / tech trees (directed acyclic
graphs of the buildings and technologies) and thus gameplay styles. StarCraft and most RTS games provide a tool torecord game logs into replays that can be re-simulated by
Copyright c 2012, Association for the Advancement of Artificial
Intelligence (www.aaai.org). All rights reserved.
1
StarCraft and its expansion StarCraft: Brood War are trademarks of Blizzard EntertainmentTM

the game engine. That is this trace mechanism that we used
to download and simulate games of professional gamers andhighly skilled international competitors.
This paper is separated in two parts. The first part explains
what is in the dataset of StarCraft games that we put together. The second part showcases army composition reduction to a mixture of Gaussian distributions, and give someevaluation of this clustering.

Related Work
There are several ways to produce strategic abstractions:from using high-level gamers’ vocabulary, and the game
rules (build/tech trees), to salient low-level (shallow) features. Other ways include combining low-level and higherlevel strategic representation and/or interdependencies between states and sequences.
Case-based reasoning (CBR) approaches often use extensions of build trees as state lattices (and sets of tactics
for each state) as for (Aha, Molineaux, and Ponsen 2005;
Ponsen and Spronck 2004) in Wargus. Ontañón et al. (2007)
base their real-time case-based planning (CBP) system ona plan dependency graph which is learned from humandemonstration in Wargus. In (Mishra, Ontañón, and Ram2008), they use “situation assessment for plan retrieval”
from annotated replays, which recognizes distance to behaviors (a goal and a plan), and selected only the low-level features with the higher information gain. Hsieh and Sun (2008)
based their work on (Aha, Molineaux, and Ponsen 2005) andused StarCraft replays to construct states and building sequences. Strategies are choices of building construction order in their model.
Schadd, Bakkes, and Spronck (2007) describe opponent
modeling through hierarchically structured models of the
opponent behavior and they applied their work to the Spring
RTS game (Total Annihilation open source clone). Ballaand Fern (2009) applied upper confidence bounds on trees(UCT: a Monte-Carlo planning algorithm) to tactical assault
planning in Wargus, their tactical abstraction combines units
hit points and locations. In (Synnaeve and Bessière 2011b),they predict the build trees of the opponent a few buildings before they are built. Another approach is to use thegamers’ vocabulary of strategies (and openings) to abstracteven more what strategies represent (a set of states, of sequences and of intentions) as in (Weber and Mateas 2009;Synnaeve and Bessière 2011a). Dereszynski et al. (2011)used an hidden Markov model (HMM) whose states are extracted from (unsupervised) maximum likelihood on a StarCraft dataset. The HMM parameters are learned from unit
counts (both buildings and military units) every 30 seconds and “strategies” are the most frequent sequences of the
HMM states according to observations.
Few models have incorporated army compositions in theirstrategy abstractions, except sparsely as an aggregate orboolean existence of unit types. Most strategy abstractions
are based on build trees (or tech trees), although a given
set of buildings can produce different armies. What we will
present here is complementary to these strategic abstractions
and should help the military situation assessment.

fallen units for each player, the attack type and of course theattacker and the defender. Algorithm 1 shows how we detectattacks.
We annotated attacks by four types (but researchers canalso produce their own annotations given the state available):• ground attacks, which may use all types of units (and soform the large majority of attacks).
• air raids, air attacks, which can use only flying units.
• invisible (ground) attacks, which can use only a few specific units in each race (Protoss Dark Templars, TerranGhosts, Zerg Lurkers).
• drop attacks, which need a transport unit (Protoss Shuttle,
Terran Dropship, Zerg Overlord with upgrade).

DatasetWe downloaded more than 8000 replays to keep 7649 uncorrupted, 1 vs. 1 replays from professional gamers leagues
and international tournaments of StarCraft, from specialized websites234 . We then ran them using Brood War API5
and dumped: units’ positions, regions’ positions, pathfinding distance between regions, resources (every 25 frames),
all players’ orders, vision events (when units are seen) andattacks (types, positions, outcomes). Basically, we recorded
every BWAPI event, plus interesting states and attacks. The
dataset is freely available6 , the source code and a documentation are also provided7

Regions
Forbus, Mahoney, and Dill (2002) have shown the importance of qualitative spatial reasoning, and it would be too
space-consuming to dump the ground distance of every position to any other position. For these reasons, we discretized
StarCraft maps in two types of regions:• Brood War Terrain Analyzer8 produced regions from apruned Voronoi diagram on walkable terrain (Perkins
2010). Chokes are the boundaries of such regions.
• As battles often happens at chokes, we also produced
choke-dependent regions (CDR), which are created by doing an additional (distance limited) Voronoi tessellation
spawned at chokes. This regions set is
CDR = (regions \ chokes) ∪ chokes

Attacks
We trigger an attack tracking heuristic when one unit diesand there are at least two military units around. We then update this attack until it ends, recording every unit which took
part in the fight. We log the position, participating units andAlgorithm 1 Simplified attack tracking heuristic for extraction from games. The heuristics to determine the attack type
and the attack radius and position are not described here.
They look at the proportions of units types, which units are
firing and the last actions of the players.
list tracked attacks
function UNIT DEATH EVENT(unit)
tmp ← tracked attacks.which contains(unit)
if tmp 6= ∅ thentmp.update(unit). ⇔ update(tmp, unit)
else
tracked attacks.push(attack(unit))
end ifend function
function ATTACK(unit). new attack constructor. self ⇔ thisself.convex hull ← def ault hull(unit)
self.type ← attack type(update(self, unit))
return self
end function
function UPDATE(attack, unit)
attack.update hull(unit) . takes units ranges into
accountc ← get context(attack.convex hull)
self.units involved.update(c)self.tick ← def ault timeout()
return cend function
function TICK UPDATE
self.tick ← self.tick − 1
if self.tick < 0 thenself.destruct()end ifend function2

http://www.teamliquid.net
http://www.gosugamers.net
4
http://www.iccup.com
5
BWAPI http://code.google.com/p/bwapi/
6
http://emotion.inrialpes.fr/people/
synnaeve/TLGGICCUP_gosu_data.7z
7
http://snippyhollow.github.com/bwrepdump/
8
BWTA http://code.google.com/p/bwta/
3

Information in the dataset
Table 1 shows some metrics about the dataset. Note thatthe numbers of attacks for a given race have to be dividedby (approximatively) two in a given non-mirror match-up.
So, there are 7072 Protoss attacks in PvP and there are not
70,089 attacks by Protoss in PvT but about half that.

match-up
number of games
number of attacks
mean attacks/gamemean time (frames) / gamemean time (minutes) / gameactions issued (game engine) / gamemean regions / gamemean CDR / gamemean ground distance9 region ↔ region
mean ground distance10 CDR ↔ CDR

PvP
445
7072
15.89
32342
22.46
24584
19.59
41.58
2569
2397

PvT
2408
70089
29.11
37772
26.23
33209
19.88
41.61
2608
2405

PvZ
2027
40121
19.79
39137
27.18
31344
19.69
41.57
2607
2411

TvT
461
16446
35.67
37717
26.19
26998
19.83
41.44
2629
2443

TvZ
2107
42175
20.02
35740
24.82
29869
20.21
42.10
2604
2396

ZvZ
199
2162
10.86
23898
16.60
21868
19.31
40.70
2596
2401

Table 1: Detailed numbers about our dataset. XvY means race X vs race Y matches and is an abbreviation of the match-up: PvP
stands for Protoss versus Protoss.
By running the recorded games (replay) through StarCraft, we were able to recreate the full state of the game.
Time is always expressed in game frames (24 frames per
second). We recorded three types of files:• general data (*.rgd files): records the players’ names,
the map’s name, and all information about events likecreation (along with morph), destruction, discovery (forone player), change of ownership (special spell/ability),
for each units. It also shows attack events (detected by aheuristic, see below) and dumps the current economical
situation every 25 frames: mineral, gas, supply (count andtotal: maxsupply).
• order data (*.rod files): records all the orders which are
given to the units (individually) like move, harvest, attack
unit, the orders positions and their issue time.
• location data (*.rld files): records positions of mobile
units every 100 frames, and their position in regions andchoke-dependent regions if they changed since last measurement. It also stores ground distances (pathfindingwise) matrices between regions and choke-dependent regions in the header.
From this data, one can recreate most of the state of thegame: the map key characteristics (or load the map separately), the economy of all players, their tech (all researches
and upgrades), all the buildings and units, along with theirorders and their positions.

Armies composition
We will consider units engaged in these attacks as armies
and will seek a compact description of armies compositions.

Because a hard clustering is not an optimal solution,
we used a Gaussian mixture model (GMM), which assumes that an army is a mixture (i.e. weighted sum) of
several (Gaussian) components. We present the model inthe Bayesian programming framework (Diard, Bessière, andMazer 2003): we first describe the variables, the decomposition (independence assumptions) and the forms of the distribution. Then, we explain how we identified (learned) the
parameters and lay out the question that we will ask thismodel in the following parts.
Variables• C ∈ Jc1 . . . cK K, our army clusters/components (C).
There are K units clusters and K depends on the race(the mixture components are not the same for Protoss/Terran/Zerg).
• U ∈ ([0, 1] . . . [0, 1]) (length N ), our N dimensional unit
types (U ) proportions, i.e. U ∈ [0, 1]N . N is dependent on
the race and is the total number of unit types. For instance,
an army with equal numbers of Zealots and Dragoons(and nothing else) is represented as {UZealot =
0.5, UDragoon = 0.5, ∀ut 6= Zealot|Dragoon Uut =0.0}, i.e. U = (0.5, 0.5, 0, . . . , 0) if Zealots andDragoons
are the first two components of the U vector.
P
So i Ui = 1 whatever the composition of the army.
Decomposition: For the M battles, the armies compositions are independent across battles, and the unit types proportions vector (army composition) is generated by a mixture of Gaussian components and thus Ui depends on Ci .
P(U1...M , C1...M ) =M
Y

P(Ui |Ci )P(Ci )i=1Armies clustering
The idea behind armies clustering is to give one “composition” label for each army depending on its composing ratioof the different unit types. Giving a “hard” (unique) label foreach army does not work well because armies contain different components of unit types combinations. For instance, aProtoss army can have only a “Zealots+Dragoons” component, but it will often just be one of the components (sometimes the backbone) of the army composition, augmented
for instance with “High Templars+Archons”.

Forms• P(Ui |Ci ) mixture of Gaussian distributions:
P(Ui |Ci = c) = N (µc , σc2 )• P(Ci ) = Categorical(K, pC ):(P(Ci = ck ) = pk
PK
k=1 pk = 1

Identification (learning): We learned the Gaussian mixture models (GMM) parameters with the expectationmaximization (EM) algorithm on 5 to 15 mixtures withspherical, tied, diagonal and full co-variance matrices, using
scikit-learn (Pedregosa et al. 2011). We kept the best scoring models (by varying the number of mixtures) according
to the Bayesian information criterion (BIC) (Schwarz 1978).
2
Let θ = (µ1:K , σ1:K), being respectively the K different2
N -dimensional means (µ1:K ) and the variances (σ1:K) ofthe normal distributions. Initialize θ randomly, and letL(θ; U ) = P(U |θ) =

M X
K
Y

P(Ui |θ, Ci = ck )P(Ci = ck )i=1 k=1

Iterate until convergence (of θ):
1. E-step: Q(θ|θ(t) ) = E[log L(θ; u, C)]
M X
K
Y


= E logP(ui |Ci = ck , θ)P(Ci = ck )i=1 k=1

2. M-step: θ(t+1) = argmaxθ Q(θ|θ(t) )Question: For the ith battle (one army with units u):P(Ci |Ui = u) = P(Ci )P(Ui = u|Ci )Counter compositions
In a battle, there are two armies (one for each players), we
can thus apply this clustering to both the armies. If we have
K clusters and N unit types, the opponent has K 0 clusters
and N 0 unit types. We introduce EU and EC, respectively
with the same semantics as U and C but for the enemy. Ina given battle, we observe u and eu, respectively our army
composition and the enemy’s army composition. We can ask
P(C|U = u) and P(EC|EU = eu).
As StarCraft unit types have strengths and weaknesses
against other types, we can learn which clusters should beatother clusters (at equivalent investment) as a probability table. We use Laplace’s law of succession (“add-one smoothing”) by counting and weighting according to battles results(c > ec means “c beats ec”, i.e. we won against the enemy):P(C = c|EC = ec) =the percentage of each of the unit types. These lines (armies)
are colored with their most probable mixture component,
which are shown in the rightmost axis. We have 8 clusters(Gaussian mixtures components): this is not related to the
8 unit types used as the number of mixtures was chosen by
BIC score. Expert StarCraft players will directly recognize
the clusters of typical armies, here are some of them:• Light blue corresponds to the “Reaver Drop” tacticalsquads, which aims are to transport (with the flying Shuttle) the slow Reaver (zone damage artillery) inside the opponent’s base to cause massive economical damages.
• Red corresponds to the “Nony” typical army that is playedin PvP (lots of Dragoons, supported by Reaver and Shuttle).
• Green corresponds to a High Templar and Archon-heavy
army: the gas invested in such high tech units makes itthat there are less Dragoons, completed by more Zealots(which cost no gas).
• Purple corresponds to Dark Templar (“sneaky”, as Dark
Templars are invisible) special tactics (and opening).
Figure 2 showcases the dynamics of clusters components:
P(EC t |EC t+1 , for Zerg (vs Protoss) for ∆t of 2 minutes.
The diagonal components correspond to those which do notchange between t and t + 1 (⇔ t + 2minutes), and so it isnormal that they are very high. The other components show
the shift between clusters. For instance, the first line seventh column (in (0,6)) square shows a brutal transition fromthe first component (0) to the seventh (6). This may be theproduction of Mutalisks11 from a previously very low-techarmy (Zerglings).

1 + P(c)P(ec)countbattles (c > ec)
K + P(ec)countbattles with (ec)Results
We used the dataset presented in this paper to learn all theparameters and perform the benchmarks (by setting 100 test
matches aside and learning on the remaining of the dataset).
First, we analyze the posteriors of clustering only one army
and then we evaluated the clustering as a mean to predict
outcomes of battles.
Posterior analysis: Figure 1 shows a parallel plot of army
compositions. We removed the less frequent unit types tokeep only the 8 most important unit types of the PvP matchup, and we display a 8 dimensional representation of thearmy composition, each vertical axis represents one dimension. Each line (trajectory in this 8 dimensional space) represents an army composition (engaged in a battle) and gives

Figure 2: Dynamics of clusters: P(EC t |EC t+1 ) for Zerg,
with ∆t = 2 minutes
A soft rock-paper-scissors: We then used the learned
P(C|EC) table to estimate the outcome of the battle. For
11

Mutalisks are flying units which require to unlock several technologies and thus for which player save up for the production while
opening their tech tree.

Figure 1: Parallel plot of a small dataset of Protoss (vs Protoss, i.e. in the PvP match-up) army clusters on most important unit
types (for the match-up). Each normalized vertical axis represents the percentage of the units of the given unit type in the army
composition (we didn’t remove outliers, so most top vertices (tip) represent 100%), except for the rightmost (framed) whichlinks to the most probable GMM component. Note that several traces can (and do) go through the same edge.
that, we used battles with limited disparities (the maximum
strength ratio of one army over the other) of 1.1 to 1.5. Notethat the army which has the superior forces numbers has
more than a linear advantage over their opponent (becauseof focus firing12 ), so a disparity of 1.5 is very high. For information, there is an average of 5 battles per game at a 1.3
disparity threshold, and the numbers of battles (used) per
game increase with the disparity threshold.
We also made up a baseline heuristic, which uses the sumof the values of the units to decide which side should win. If
weP note v(unit) the value of a unit, the heuristic computes
unit v(unit) for each army and predicts that the winneris the one with the biggest score. For the value of a unit weused:
4v(unit) = minerals value + gas value + 50supply
3
Of course, we recall that a random predictor would predictthe result of the battle correctly 50% of the time.
A summary of the main metrics is shown in Table 2, thefirst line can be read as: for a forces disparity of 1.1, forProtoss vs Protoss (first column),• considering only military units– the heuristic predicts the outcome of the battle correctly
63% of the time.
– the probability of a clusters mixture to win against another (P(C|EC)), without taking the forces sizes into
account, predicts the outcome correctly 54% of the
time.
– the probability of a clusters mixture to win against
another, takingPalso the forces sizes into account(P(C|EC) × unit v(unit)), predicts the outcome
correctly 61% of the time.
12
Efficiently micro-managed, an army 1.5 times superior to theiropponents can keep much more than one third of the units alive.

• considering only all units involved in the battle (military
units, plus static defenses and workers): same as above.
Results are given for all match-up (columns) and different
forces disparities (lines). The last column sums up the meanson all match-ups, with the whole army (military units plus
static defenses and workers involved), for the three metrics.
Also, without explicitly labeling clusters, one can apply thresholding to special units (Observers, Arbiters, Defilers...) to generate more specific clusters: we did not put
these results here (they include too much expertize/tuning)but they sometimes drastically increase prediction scores, as
one Observer can change the course of a battle.
We can see that predicting battle outcomes (even with ahigh disparity) with “just probabilities” of P(C|EC) (without taking the forces into account) gives relevant results asthey are always above random predictions. Note that this is avery high level (abstract) view of a battle, we do not consider
tactical positions, nor players’ attention, actions, etc. Also, it
is better (in average) to consider the heuristic with the composition of the army (“prob×heuristic”) than to consider theheuristic alone, even for high forces disparity. Our heuristic
augmented with the clustering seem to be the best indicator for battle situation assessment. These prediction resultswith “just prob.”, or the fact that heuristic with P(C|EC)
tops the heuristic alone, are a proof that the assimilation ofarmies compositions as Gaussian mixtures of cluster works.
Secondly, and perhaps more importantly, we can view thedifference between “just prob.” results and random guessing(50%) as the military efficiency improvement that we can(at least) expect from having the right army composition.
Indeed, for small forces disparities (up to 1.1 for instance),
the prediction based only on army composition (“just prob.”:
63.2%) is better than the prediction with the baseline heuristic (61.7%). It means that we can expect to win 63.2% of thetime (instead of 50%) with an (almost) equal investment if
we have the right composition. Also, when we predict 58.5%

forces
disparity
1.1
1.3
1.5

scoresin %heuristic
just prob.
prob×heuristic
heuristic
just prob.
prob×heuristic
heuristic
just prob.
prob×heuristic

PvP
m ws
63 63
54 58
61 63
73 73
56 57
72 73
75 75
52 55
75 76

PvT
m ws
58 58
68 72
69 72
66 66
65 66
70 70
73 73
61 61
74 75

PvZ
m ws
58 58
60 61
59 61
69 69
54 55
66 66
75 75
54 54
72 72

TvT
m ws
65 65
55 56
62 64
75 72
56 57
71 72
78 80
55 56
78 78

TvZ
m ws
70 70
69 69
70 73
72 72
62 61
72 70
76 76
61 63
73 76

ZvZ
m ws
56 56
62 63
66 69
70 70
63 61
75 75
75 75
56 60
77 80

mean
ws
61.7
63.2
67.0
70.3
59.5
71.0
75.7
58.2
76.2

Table 2: Winner prediction scores (in %) for the three main metrics. For the left columns (“m”), we considered only military
units. For the right columns (“ws”) we also considered static defense and workers. The “heuristic” metric is a baseline heuristic
for battle winner prediction for comparison using army values, while
P “just prob.” only considers P(C|EC) to predict the winner,and “prob×heuristic” balances the heuristic’s predictions with C,EC P(C|EC)P(EC).
of the time the accurate result of a battle with disparity up
to 1.5 from “just prob.”, this success in prediction is independent of the sizes of the armies. What we predicted is thatthe player with the better army composition won (and notnecessarily the one with more or more expensive units).

Conclusion
We delivered a rich StarCraft dataset which enables thestudy of tactical and strategic elements of RTS gameplay.
Our (successful) previous works on this dataset include
learning a tactical model of where and how to attack (bothfor prediction and decision-making), and the analysis ofunits movements. We provided the source code of the extracting program (using BWAPI), which can be run on otherreplays. We proposed and validated an encoding of armies
composition which enables efficient situation assessment
and strategy adaptation. We believe it can benefit all thecurrent StarCraft AI approaches. Moreover, the probabilistic nature of the model make it deal natively with incomplete
information about the opponent’s army.

References
Aha, D. W.; Molineaux, M.; and Ponsen, M. J. V. 2005.
Learning to win: Case-based plan selection in a real-time
strategy game. In Muñoz-Avila, H., and Ricci, F., eds., ICCBR, volume 3620 of Lecture Notes in Computer Science,
5–20. Springer.
Balla, R.-K., and Fern, A. 2009. Uct for tactical assault planning in real-time strategy games. In International Joint Conference of Artificial Intelligence, IJCAI, 40–45. San Francisco, CA, USA: Morgan Kaufmann Publishers Inc.
Dereszynski, E.; Hostetler, J.; Fern, A.; Hoang, T. D. T.-T.;
and Udarbe, M. 2011. Learning probabilistic behavior models in real-time strategy games. In AAAI., ed., Artificial Intelligence and Interactive Digital Entertainment (AIIDE).
Diard, J.; Bessière, P.; and Mazer, E. 2003. A survey of probabilistic models using the bayesian programming methodology as a unifying framework. In Conference on Computational Intelligence, Robotics and Autonomous Systems.
Forbus, K. D.; Mahoney, J. V.; and Dill, K. 2002. How

Qualitative Spatial Reasoning Can Improve Strategy Game
AIs. IEEE Intelligent Systems 17:25–30.
Hagelbäck, J., and Johansson, S. J. 2010. A study on human like characteristics in real time strategy games. In CIG(IEEE).
Hsieh, J.-L., and Sun, C.-T. 2008. Building a player strategy
model by analyzing replays of real-time strategy games. In
IJCNN, 3106–3111. IEEE.
Mishra, K.; Ontañón, S.; and Ram, A. 2008. Situation assessment for plan retrieval in real-time strategy games. In
ECCBR, 355–369.
Ontañón, S.; Mishra, K.; Sugandh, N.; and Ram, A. 2007.
Case-based planning and execution for real-time strategy
games. In Proceedings of ICCBR: CBR R&D, 164–178.
Springer-Verlag.
Pedregosa, F.; Varoquaux, G.; Gramfort, A.; Michel, V.;
Thirion, B.; Grisel, O.; Blondel, M.; Prettenhofer, P.; Weiss,
R.; Dubourg, V.; Vanderplas, J.; Passos, A.; Cournapeau, D.;
Brucher, M.; Perrot, M.; and Duchesnay, E. 2011. Scikitlearn: Machine Learning in Python . Journal of Machine
Learning Research 12:2825–2830.
Perkins, L. 2010. Terrain analysis in real-time strategy
games: An integrated approach to choke point detection andregion decomposition. In Youngblood, G. M., and Bulitko,V., eds., AIIDE. The AAAI Press.
Ponsen, M., and Spronck, I. P. H. M. 2004. Improving Adaptive Game AI with Evolutionary Learning. Ph.D. Dissertation, University of Wolverhampton.
Schadd, F.; Bakkes, S.; and Spronck, P. 2007. Opponent
modeling in real-time strategy games. 61–68.
Schwarz, G. 1978. Estimating the Dimension of a Model.
The Annals of Statistics 6(2):461–464.
Synnaeve, G., and Bessière, P. 2011a. A Bayesian Modelfor Opening Prediction in RTS Games with Application to
StarCraft. In Proceedings of IEEE CIG.
Synnaeve, G., and Bessière, P. 2011b. A Bayesian Modelfor Plan Recognition in RTS Games applied to StarCraft. In
AAAI., ed., Proceedings of AIIDE, 79–84. 7 pages.
Weber, B. G., and Mateas, M. 2009. A Data Mining Approach to Strategy Prediction. In Proceedings of IEEE CIG.