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.
@InProceedings{oliveira_et_al:OASIcs.SLATE.2020.4, author = {Oliveira, Miguel and Silva, Pedro Mimoso and Moura, Pedro and Almeida, Jos\'{e} Jo\~{a}o and Henriques, Pedro Rangel}, title = {{BhTSL, Behavior Trees Specification and Processing}}, booktitle = {9th Symposium on Languages, Applications and Technologies (SLATE 2020)}, pages = {4:1--4:13}, series = {Open Access Series in Informatics (OASIcs)}, ISBN = {978-3-95977-165-8}, ISSN = {2190-6807}, year = {2020}, volume = {83}, editor = {Sim\~{o}es, Alberto and Henriques, Pedro Rangel and Queir\'{o}s, Ricardo}, publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik}, address = {Dagstuhl, Germany}, URL = {https://drops.dagstuhl.de/entities/document/10.4230/OASIcs.SLATE.2020.4}, 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} }
Feedback for Dagstuhl Publishing