- Hands-On Artificial Intelligence with Unreal Engine
- Francesco Sapio
- 319字
- 2021-06-24 15:23:24
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.
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.
- Google Flutter Mobile Development Quick Start Guide
- JavaScript全程指南
- Python機器學習:數(shù)據(jù)分析與評分卡建模(微課版)
- C++面向?qū)ο蟪绦蛟O(shè)計(微課版)
- 精通搜索分析
- Java深入解析:透析Java本質(zhì)的36個話題
- Learning Apache Mahout Classification
- Hands-On Swift 5 Microservices Development
- NetBeans IDE 8 Cookbook
- PHP+Ajax+jQuery網(wǎng)站開發(fā)項目式教程
- R語言:邁向大數(shù)據(jù)之路(加強版)
- 軟件測試技術(shù)
- Qt 5.12實戰(zhàn)
- C#網(wǎng)絡(luò)編程高級篇之網(wǎng)頁游戲輔助程序設(shè)計
- 深入理解C++11:C++11新特性解析與應(yīng)用