Abstract—An increasing number of game studios use Behavior
Trees for the AI in their games. However, as AI behaviors
become more complex and games feature more AI characters, the
performance of simple behavior trees is not sufficient. Alex
Champandard defines “Second Generation” behavior trees,
which studios have started using to improve the performance of
their AI. There are two types of these “Second Generation”
behavior trees: data oriented behavior trees and event driven
behavior trees [1]. This project implements a hierarchy of data
oriented behavior trees to control an AI player of a real time
strategy game (RTS). The AI splits military decision-making
hierarchically into army, squads, and individual units. Each of
these uses its own behavior tree to determine its course of action.
The project suggests that the higher level in the hierarchy issues
an “order” to the lower entity and relies on the behavior tree of
this lower entity to execute the action in the manner most
appropriate.
Index Terms— AI, Behavior Trees, Real Time Strategy, Agent
Coordination
I. INTRODUCTION
ODERN game developers strive to create more complex
and believable worlds for their games. The systems
used to bring these worlds to life are increasingly more
complex. New physics and graphics techniques can help
increase player immersion; however, along with the increased
complexity of these worlds comes a need for increasing
numbers of believable NPCs (non-player characters).
Champandard states that a modern AI system should be goal-
driven, yet contain the ability to be reactive and partially
autonomous. Several possible techniques exist for setting up
an AI system, including Planners and Hierarchical Finite State
Machines. However, these other approaches contain
significant drawbacks in their practical application and
maintainability, respectively [2].
In order to reach a middle ground between these,
Champandard suggests that behavior trees offer a valuable
alternative [2]. Behavior Trees encode AI behaviors as a tree,
and the traversal of this tree encodes the decision-making and
behavior execution of the AI. Behavior Trees use three
general types of interior nodes: sequences, selectors, and
decorators, and two types of leaf nodes: actions and
conditionals.
Behavior trees provide a way of visualizing AI logic that is
easy to set up and maintain while maximizing reusability and
extensibility. A particular strength of behavior trees is their
ability to be data-driven; combined with a visual
editing/authoring tool, this allows designers to create and
modify game AI with minimal support from programmers.
Programmers set up the core functionality of the behavior tree
system and tools, then designers leverage this system to create
widely varied AIs.
The functionality of a behavior tree can be used to create
AI to accomplish a wide variety of tasks for any genre of
game. One genre of game that requires significant AI
sophistication is the real time strategy (RTS) genre. The AI
responsibilities for an RTS involve considering the next
course of action on a large scale - such as when to attack the
enemy - as well as on a smaller scale, such as which enemy
unit to target with an archer during a battle. When solving this
problem, a human player uses a hierarchy of decision-making.
Thus, it is natural for an AI implementation to mirror this
hierarchical approach. Using behavior trees for the decision-
making at each level of the hierarchy demonstrates the
flexibility and usefulness of behavior trees. In this thesis, I
suggest a hierarchical system of behavior trees for an RTS
game AI. The hierarchical behavior tree system, which I will
refer to as HBT, features a three-tiered hierarchy of behavior
trees to make decisions: at the army level, squad level, and
individual unit level.
II. PREVIOUS WORKS
A. Halo’s Behavior Trees
The set of presentation slides Evolving Halo’s Behavior
Tree AI by Max Dyckoff describes how Bungie tackled
several key problems the faced with behavior trees for an FPS
AI and then modified their solutions through time [7]. One
problem they encountered was that their behavior trees check
for rare event conditions each tick. In order to solve this
problem Bungie introduced stimuli to their behavior trees for
Halo 2. Stimuli place events into the behavior tree
dynamically such as “Leader killed.” However, Bungie
discovered that this complicates the behavior tree system and
makes the trees more difficult to craft and understand.
Therefore, Bungie cut stimuli from their behavior trees for
Halo 3 [7].