ABSTRACT

BTs are fairly easy to understand and use, but to make full use of their potential it can be good to be aware of a set of design principles that can be used in different situations. In this chapter, we will describe these principles using a number of examples. First, in Section 3.1, we will describe the benefit of using explicit success conditions in sequences, then, in Section 3.2, we describe how the reactivity of a BT can be increased by creating implicit sequences, using Fallback nodes. In Section 3.3, we show how BTs can be designed in a way that is similar to decision trees. Then, in Section 3.4, we show how safety can be improved using sequences. Backchaining is an idea used in automated planning, and in Section 3.5 we show how it can be used to create deliberative, goal directed, BTs. Memory nodes and granularity of BTs are discussed in Sections 3.6 and 3.7. Finally, we show how easily all these principles can be combined at different levels of a BT in Section 3.8.