33个重大版本发布
0.33.0 | 2021年11月3日 |
---|---|
0.32.0 | 2020年7月18日 |
0.31.0 | 2019年6月10日 |
0.27.0 | 2019年2月6日 |
0.0.1 | 2014年12月13日 |
#1948 in 游戏开发
每月下载量 396
在 7 个 软件包中使用(直接使用 3 个)
26KB
389 行
ai_behavior

人工智能行为树
什么是人工智能行为树?
人工智能行为树是一种状态机逻辑,用于过程。
许多游戏逻辑所做的事情,例如控制人工智能角色,都符合人工智能行为树的模式。
人工智能行为树是一种非常通用的组织交互逻辑的方式。它内置了表示 运行
、成功
或 失败
的过程语义。
例如,如果您有状态 A
和状态 B
- 如果
A
成功,则从状态A
转换到状态B
:Sequence([A, B])
- 如果
A
失败,则首先尝试A
然后尝试B
:Select([A, B])
- 当
A
运行时,重复执行B
:While(A, [B])
- 执行
A
,B
永远:While(WaitForever, [A, B])
- 等待
A
和B
都完成:WhenAll([A, B])
- 等待
A
或B
中的任何一个完成:WhenAny([A, B])
有关更多信息,请参阅 Behavior
枚举。
并行语义
该库为 AI 行为树提供并行语义。这意味着可以同时发生多个过程,逻辑可以构建在这些过程如何运行或终止的周围。
例如,While(A, [B])
同时运行 A
和 B
。如果 A
或 B
中任何一个失败,则整个 while 行为将失败。
具有并行语义的 AI 行为树的一个特性是可以外部控制终止条件,与大多数编程语言中内部控制终止条件的做法不同。
while A() {
// This inner loop will never terminate unless `B` fails.
while true {
B(); // Runs `B` forever.
}
}
// This will terminate if `A` stops running, which also stops `B`.
WhenAny([A,
While(WaitForever, [
B
])
])
依赖项
~0.5–1.2MB
~27K SLoC