constantly training and sending the remaining workers to attack; ( 3) POLightRush, a hard-coded bot that
also uses one worker to harvest resources, following
which it builds a barracks and constantly trains and
sends light units to attack; ( 4) NaïveMCTS, an MCTS
bot that uses Naive Sampling (Ontañón 2017); and
( 5) PuppetSearch, a bot that uses nondeterministic
scripts as the basis for search and then does adversarial search by considering only the choice points
offered by the scripts (Barriga, Stanescu, and Buro
2017b).

Competition EntriesThe 2017 competition received three submissions:Strategy Tactics, 2 Strategy Creation through Voting(SCV), 3 and BS3NaïveMCTS. 4 We describe each of thesubmissions in the following paragraphs.

Entry 1: Strategy Tactics
Strategy Tactics (Barriga, Stanescu, and Buro 2017a)
builds on the strategic strengths of PuppetSearch
(Barriga, Stanescu, and Buro 2017b) and the tactical
performance of NaïveMCTS (Ontañón 2017). Most
strategic algorithms suffer from weak tactical decisions due to the coarse abstractions necessary for
long-term planning. Conversely, algorithms that
make good low-level decisions usually don’t scale
well to larger scenarios with higher branching factors
or long-term action consequences.

Strategy Tactics splits the search time between both
algorithms. First, a reduced game state is generated,
one which includes only those units from both sides
that are at most one tile away from the sight range of
opponent units. Then, if this game state is empty,
PuppetSearch is executed as usual on the full game
state. Alternatively, if the reduced state has units,
PuppetSearch is run for 20 percent of the time available on the complete game state, and then NaïveMCTS is executed for the rest of the time on the
reduced game state. The actions this second search
produces then replace the ones produced by PuppetSearch. In summary, PuppetSearch produces actions
for all units and NaïveMCTS then refines the actions
of units in combat.

Entry 2: Strategy Creation
Through Voting (SCV)

Strategy Creation Through Voting (SCV) 5 uses a set
of base strategies Pbase to create a larger set of novel
strategies P. It does this by using a voting scheme
with subsets of base strategies. For example, a subset
of base strategies {A, B, C} of Pbase defines a novel
strategy by deciding on an action for each unit u
through voting (A, B, and C each vote on one action
for each unit). Draws are broken deterministically
assuming an ordering of the strategies from most to
least preferred.

The initial set of strategies Pbase used in the compe-tition contains 10 strategies similar to the bots Ran-domBiasedAI, POWorkerRush, and POLightRushdescribed earlier. P contains all subsets of Pbase withsize 1 to 4, which resulted in 385 novel strategies. Wedo not use the powerset of Pbase as SCV’s P becausethat would substantially increase the algorithm’straining time.

SCV assumes a set of opponent types as well as a
set of map types. During the match, SCV predicts the
opponent and map types based on what it observes.
Then, SCV selects from P the strategy that maximizes
its end-game value for the predicted opponent and
map types. The set of opponent types included hard-coded bots such as RandomBiasedAI, POWorkerRush,
and POLightRush as well as search-based bots such as
PuppetSearch and NaïveMCTS. The set of map types
included the maps shown in figure 2 — map1 ( 8 ; 8),
map2 ( 16 ; 16), map3 ( 32 ; 32), map4 ( 64 ; 64) —
and a map that is similar to map3 but with size 24 ;
24.

SCV has an offline training phase in which it tests
all 385 strategies against all predefined opponents in
all predefined maps, as well as features of the game
state every 100 game cycles. At run time, SCV runs its
classifier every 100 game cycles to predict the type of
opponent it is playing against and which map is
being used, so as to choose the strategy with the
largest expected end-game value.

Entry 3: BS3NaïveMCTS
BS3NaïveMCTS (Uriarte and Ontañón 2016) is an
extension of NaïveMCTS to handle partial observability in RTS games. To the best of our knowledge,
BS3NaïveMCTS is the first attempt to deal with partial observability in RTS games in the context of
game tree search.

BS3NaïveMCTS assumes that both players know
the initial board configuration. With this assumption, BS3NaïveMCTS uses the idea of determinization
(Corlett and Todd 1986; Whitehouse, Powley, and
Cowling 2011): infer the whole game state (the
believe state) from the parts of it that can be
observed, and then perform game tree search as if we
were in a fully observable scenario.

To generate the believe state, BS3NaïveMCTS
records the position of all the enemy units that
become visible during the game, and remembers
their position even if we are not currently seeing
them. Additionally, it performs a limited form of
inference to infer units that must be there but we
have not seen (for example, having melee units
implies having barracks).

Competition ResultsThis section presents the results of each of the threetracks of the competition.