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 游戏开发

Download history 139/week @ 2024-03-11 113/week @ 2024-03-18 81/week @ 2024-03-25 369/week @ 2024-04-01 111/week @ 2024-04-08 132/week @ 2024-04-15 124/week @ 2024-04-22 127/week @ 2024-04-29 97/week @ 2024-05-06 114/week @ 2024-05-13 151/week @ 2024-05-20 127/week @ 2024-05-27 127/week @ 2024-06-03 81/week @ 2024-06-10 99/week @ 2024-06-17 71/week @ 2024-06-24

每月下载量 396
7 软件包中使用(直接使用 3 个)

MIT 许可证

26KB
389

ai_behavior 构建状态 文档

人工智能行为树

您可以使用 Serde 和例如 Ron 来序列化行为树。

什么是人工智能行为树?

人工智能行为树是一种状态机逻辑,用于过程。

许多游戏逻辑所做的事情,例如控制人工智能角色,都符合人工智能行为树的模式。

人工智能行为树是一种非常通用的组织交互逻辑的方式。它内置了表示 运行成功失败 的过程语义。

例如,如果您有状态 A 和状态 B

  • 如果 A 成功,则从状态 A 转换到状态 BSequence([A, B])
  • 如果 A 失败,则首先尝试 A 然后尝试 BSelect([A, B])
  • A 运行时,重复执行 BWhile(A, [B])
  • 执行 AB 永远:While(WaitForever, [A, B])
  • 等待 AB 都完成:WhenAll([A, B])
  • 等待 AB 中的任何一个完成:WhenAny([A, B])

有关更多信息,请参阅 Behavior 枚举。

并行语义

该库为 AI 行为树提供并行语义。这意味着可以同时发生多个过程,逻辑可以构建在这些过程如何运行或终止的周围。

例如,While(A, [B]) 同时运行 AB。如果 AB 中任何一个失败,则整个 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