In this paper, we extend behavior trees (BTs), a behavior creation method that is popular in the video game industry, with three new types of nodes that facilitate the design and implementation of non-player characters (NPCs) that need to coordinate with each other. We provide an implementation and a methodology to use the coordination nodes of our extension appropriately, and we show how to use them to develop an application scenario. In the last years, coordination in multi-agent systems has been a very active research field, both from theoretical and practical points of view. Something similar has happened with the development of new tools for the video game industry. Our approach contributes to both areas by providing a novel extension that facilitates the design and implementation of agents that need to coordinate with each other. In video games, agents or NPCs are—as their name implies—characters that are not controlled by the player but by the game through an algorithmic, predetermined, or responsive behavior, or a more sophisticated AI technique. Some video games require NPCs with dynamic, credible, and intelligently unpredictable behaviors to keep players engaged and immersed. Instead of endowing NPCs with very complex individual behaviors, a feasible way to improve their unpredictability in an intelligent and credible manner is allowing them to coordinate with each other. Since BTs focus on the creation of individual behaviors, coordinated behaviors nowadays tend to be achieved by hard-coding the coordination itself. However, that ad hoc solution partially drives away some of the benefits that popularized BTs: Being visually intuitive, scalable, and reusable. For this reason, we propose an extension to BTs that developers can use to coordinate NPCs without going against the development paradigm: creating complex behaviors by designing an intuitive tree structure.
Read full abstract