狀態機和行爲樹

    最近在思考遊戲AI,看到一些文章在鼓吹狀態機(fsm)已通過時,行爲樹纔是如今和未來。目前個人水平,對這個結論沒法作評判。可是從讀到的文章自己,沒有看到有力的證據。python

    誠然,在複雜狀態下,fsm的維護難度是倍增的,但行爲樹也面臨一樣問題(不要看那些半吊子文章中畫的清晰的屬性結構,真的複雜場景哪裏有這麼好看的樹)。fsm的分層能緩解一部分複雜度問題,我相信行爲樹也是經過相似子樹的方式處理,因此就是個半斤八兩。spa

    另外,看到說行爲樹的判別因子有{前置條件 , 當前狀態, 輸入},較之fsm的{當前狀態, 輸入} 上下文更加完整。對於這個說法,只能說是實現的問題,和行爲樹/fsm一點關係都沒有。
遊戲

     -- 補充說一下,行爲樹的前置條件,在fsm中,能夠表示爲當前某個屬性的狀況(好比,血量滿/太少),能夠獲得一樣的語義:當 xxx 時,會選擇yyy。
get

    若是把fsm和圖,行爲樹和樹(廢話。。)比較一下,能夠有印象:既然樹是圖的簡化形式,行爲樹也像是fsm的簡化版。從直觀上看,fsm彷佛效率還略高一點,而行爲樹細分了一些節點類型,概念上會更清晰一點。以上就做爲本文大概的結論吧,歡迎討論(pen)。
it


-----------------------------------------效率

python官方收集的一些FSM工程,有的頗有意思思考

https://wiki.python.org/moin/FiniteStateMachine ps

相關文章
相關標籤/搜索