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

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.

主站蜘蛛池模板: 长乐市| 施秉县| 海盐县| 仙游县| 同德县| 定陶县| 合江县| 行唐县| 北票市| 余江县| 凌云县| 金塔县| 乌兰县| 衡山县| 双峰县| 奉节县| 定日县| 任丘市| 天津市| 手游| 鄂伦春自治旗| 荥阳市| 霸州市| 吴忠市| 资源县| 宁阳县| 平遥县| 巴楚县| 贺兰县| 宜城市| 西华县| 澎湖县| 湖南省| 三河市| 龙陵县| 清水河县| 沙雅县| 博爱县| 隆林| 岳池县| 乌拉特前旗|