2010-06-02 265 views
3

我正在寻找任何语言的behavior tree实现,我想了解更多关于它们如何实现和使用,所以可以滚动我自己的,但我只能找到一个 Owyl,不幸的是,它不包含示例它如何使用。行为树实现

任何人都知道我可以浏览代码的任何其他开源代码,请参阅一些如何使用它们的例子?

编辑:行为树是数据结构的名称。

+0

行为树是AI中使用的数据结构。 – 2010-06-02 11:08:11

+0

啊,我明白了!感谢您的澄清。 – 2010-06-02 11:11:53

回答

1

我不知道我理解你是对的,但我认为要实现一棵树你最好选择使用正式语言,如F#或Haskell。通过Haskell,您可以使用灵活而快速的树形结构,并且通过F#您可以使用多种语言来解析和处理oo代码中的树形结构。

我希望能帮到你。

+0

什么是正式语言? – 2010-06-03 09:32:47

+0

看看@ http://en.wikipedia.org/wiki/Noam_Chomsky和http://en.wikipedia.org/wiki/Formal_language – kockiren 2010-06-03 12:23:48

2

我在C++中完成了自己的行为树实现,并使用了Protothreads Library中的一些修改后的代码。 Coroutines in C也是一个很好的阅读。使用这个可以实现一个协同系统,允许一个人同时运行多个行为而不使用多个线程。基本上每个树节点都有它自己的协程。

0

您可以在YVision框架中找到在.NET中实现的行为树。我们发现它们特别适合自然用户界面(NUI)应用程序的开发。 它不是开放源码,但它是免费使用,你可以找到关于我们如何在教程中实现它们的信息:http://www.yvision.com/support/tutorials/

编辑:让我补充一点,我们使用行为树的不仅仅是AI多了不少。甚至游戏循环中子系统的同步也是由它们定义的。 检查cases page以查找我们正在使用的应用程序的范围:机器人,基于相机的交互,增强现实等。 下载该框架,尝试使用示例,并请向我们反馈实施情况。

5
+1

Clojure - http://github.com/nakkaya/alter-ego – 2013-05-26 09:11:40

+0

Javascript :https://github.com/6RiverSystems/blueshell – JBCP 2017-05-04 03:14:11

3

看看https://skill.codeplex.com/。这是用于统一的BehaviorTree代码生成器。你可以下载源代码并查看它是否有用。

0

https://github.com/TencentOpen/behaviac是一个非常优秀的。

behaviac支持行为树,有限状态机和分层任务网络。 行为可以在设计者中设计和调试,由游戏导出和执行。

C++版本适用于客户端和服务器端。

而且,它是开源的!