License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/OASIcs.SLATE.2020.4
URN: urn:nbn:de:0030-drops-130174
Go to the corresponding OASIcs Volume Portal

Oliveira, Miguel ; Silva, Pedro Mimoso ; Moura, Pedro ; Almeida, José João ; Henriques, Pedro Rangel

BhTSL, Behavior Trees Specification and Processing

OASIcs-SLATE-2020-4.pdf (0.5 MB)


In the context of game development, there is always the need for describing behaviors for various entities, whether NPCs or even the world itself. That need requires a formalism to describe properly such behaviors. As the gaming industry has been growing, many approaches were proposed. First, finite state machines were used and evolved to hierarchical state machines. As that formalism was not enough, a more powerful concept appeared. Instead of using states for describing behaviors, people started to use tasks. This concept was incorporated in behavior trees. This paper focuses in the specification and processing of Behavior Trees. A DSL designed for that purpose will be introduced. It will also be discussed a generator that produces LaTeX diagrams to document the trees, and a Python module to implement the behavior described. Additionally, a simulator will be presented. These achievements will be illustrated using a concrete game as a case study.

BibTeX - Entry

  author =	{Miguel Oliveira and Pedro Mimoso Silva and Pedro Moura and Jos{\'e} Jo{\~a}o Almeida and Pedro Rangel Henriques},
  title =	{{BhTSL, Behavior Trees Specification and Processing}},
  booktitle =	{9th Symposium on Languages, Applications and Technologies (SLATE 2020)},
  pages =	{4:1--4:13},
  series =	{OpenAccess Series in Informatics (OASIcs)},
  ISBN =	{978-3-95977-165-8},
  ISSN =	{2190-6807},
  year =	{2020},
  volume =	{83},
  editor =	{Alberto Sim{\~o}es and Pedro Rangel Henriques and Ricardo Queir{\'o}s},
  publisher =	{Schloss Dagstuhl--Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{},
  URN =		{urn:nbn:de:0030-drops-130174},
  doi =		{10.4230/OASIcs.SLATE.2020.4},
  annote =	{Keywords: Game development, Behavior trees (BT), NPC, DSL, Code generation}

Keywords: Game development, Behavior trees (BT), NPC, DSL, Code generation
Collection: 9th Symposium on Languages, Applications and Technologies (SLATE 2020)
Issue Date: 2020
Date of publication: 16.09.2020

DROPS-Home | Fulltext Search | Imprint | Privacy Published by LZI