官术网_书友最值得收藏!

Blackboards and their integration with Behavior Trees

Considering the Behavior Tree as a brain, we can think of a Blackboard as its memory—more specifically, the memory of the AI. The Blackboard stores (and sets) key values for the Behavior Tree to use.

They are called blackboards because, in a classroom, the blackboard is a place where a lot of information is conveyed, but most of it is shared among students; the single notes that are given out to students are personal. You can imagine the students as the different tasks (and nodes) of the Behavior Tree, and the Blackboard as a shared place for data.

Blackboards are fairly simple to understand, since they are only a little more complex than a data structure. The only difference lies in the possibility to assign to a Behavior Tree to a particular Blackboard, which is shared by every node of the tree. As a result, each node can read and/or write back to the Blackboard.

For those of you who are familiar with the Design Pattern of Blackboards, within the context of Unreal, they just cover the role of holding the memory for a Behavior Tree.

It works like a dictionary (the data structure), in which a key corresponds to a specific value type (e.g. a vector, a float, an actor, etc…, even another Blackboard Key). So, by using or recalling the key, it is possible to write or read the associated value.

Another cool feature of Blackboards is that they can be extended through inheritance. This means that another Blackboard can be a parent, and the child will inherit all the parent's pairs key-value, plus some specific ones that are contained in the child itself.

Now that we have covered the theory, let's look at how we can create a Behavior Tree and make it run. To do that, let's start by creating a new project.

主站蜘蛛池模板: 黔江区| 偃师市| 新河县| 壤塘县| 荣昌县| 密山市| 广灵县| 郁南县| 于都县| 务川| 石棉县| 固镇县| 梅河口市| 陇西县| 正镶白旗| 大港区| 三亚市| 手机| 芦山县| 华池县| 崇礼县| 雷波县| 太谷县| 泸西县| 大城县| 五大连池市| 岚皋县| 东宁县| 牙克石市| 道孚县| 成都市| 雅江县| 叙永县| 双柏县| 青川县| 茂名市| 龙州县| 齐齐哈尔市| 启东市| 阿图什市| 两当县|