2010-06-02 266 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++版本適用於客戶端和服務器端。

而且,它是開源的!