ABSTRACT

Behavior trees are an architecture for controlling nonplayer characters based on a hierarchical graph of tasks, where each task is either an atomic, a simple behavior an agent can directly perform, or a composite, a behavior performed by a lower level behavior tree of arbitrary complexity. Ideas like behavior trees were around long before Halo. Hierarchical decompositions of behavior into tasks were pioneered in particular by reactive action packages, or RAPs: high-level RAPs get decomposed into low-level RAPs, ultimately bottoming out in leaf skills used to directly control real and simulated robots. A behavior tree runs as a decision-making component within a larger structure—a game engine, a robot operating system, or a cognitive architecture—and it is tempting to design something that serves all the needs of the parent system. Many of the prehistoric behavior tree-like systems, described, made distinctions between concepts like skills, tasks, task networks, or modules—and created classes or modules to implement each.