日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

用行为树的方式思考:任务系统设计

發(fā)布時間:2024/8/26 windows 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用行为树的方式思考:任务系统设计 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

行為樹從本質(zhì)上來說,是一顆邏輯樹,它把所有的行為邏輯用樹形結構串聯(lián)起來,仔細觀察的話,可以發(fā)現(xiàn)行為樹的核心思想有三個方面:
?

  • 邏輯分離
  • 邏輯關聯(lián)
  • 邏輯抽象


聽上去很玄乎,其實是很簡單的東西,可以先想想我們平時要做一個功能是怎么做的,我們會先定義一個函數(shù),定義好輸入和輸出,然后在這個函數(shù)里寫代碼來實現(xiàn)功能邏輯,這是第一步,是最直接和簡單的方式。后來,當這個功能越來越復雜的時候,這個函數(shù)里的代碼就會越來越長,變得難以閱讀和維護,我們就會把一些邏輯拿出去,變成另一個函數(shù),原先那個函數(shù)里就變成了一些簡單邏輯和函數(shù)的組合,再然后,我們發(fā)現(xiàn)有些函數(shù)可以變成一些通用函數(shù),我們就會把這些函數(shù)集合起來變成一個庫,這樣其他的函數(shù)也可以訪問這個函數(shù)來獲取他的邏輯功能。

這里的整個過程就包含了上面所說的三個方面,把邏輯移出去變成一個新的函數(shù),就是“邏輯分離”,原本函數(shù)里的簡單邏輯和函數(shù)組合就是“邏輯關聯(lián)”,把函數(shù)變成通用庫就是“邏輯抽象”。AI是游戲的邏輯大戶,充斥著大量的游戲邏輯和算法,所以就特別需要好的架構來維護和管理“邏輯”,要不整個代碼就是一團糟,不僅無法維護,而且也很難除錯,現(xiàn)有的AI的架構基本都圍繞這個展開。

讓我用有限狀態(tài)機(FSM)來舉個例子,在FSM中就包含了邏輯的分離和抽象,它有“狀態(tài)”這個概念,這就是一個邏輯塊,它的邏輯塊也可以重用,但它對于邏輯的關聯(lián)做的相對比較薄弱,由狀態(tài)自己來決定何時跳轉,并且跳轉比較隨意,所以邏輯的關聯(lián)性比較模糊,這就導致FSM在多狀態(tài)的情況下很難維護。所以后來有了層次化的有限狀態(tài)機(HFSM),部分解決了邏輯關聯(lián)模糊的問題,但FSM的設計原理導致它并沒有辦法從根本上解決問題。但對于狀態(tài)和跳轉都不是很復雜的功能,FSM是個不錯的選擇。

讓我們再回到行為樹,行為樹把邏輯分散在節(jié)點中,每個節(jié)點負責自己的邏輯部分,這些邏輯節(jié)點又可以被放在行為樹的其他部分,也就是可以被重用。在這個基礎上,行為樹又抽象了三個邏輯概念,控制邏輯,前提邏輯,行為邏輯,其中行為邏輯用來描述功能,控制邏輯和前提邏輯用來描述邏輯間的關聯(lián),對于邏輯關聯(lián)的抽象是行為樹相較于FSM的一個重大突破,它使得邏輯的關聯(lián)“可視化”了,用過行為樹的人都會有這樣的感覺,我只要看一下樹的結構,我就能知道整個AI行為是如何協(xié)作的了,也正是這樣的優(yōu)勢使得行為樹現(xiàn)在被越來越多的用在了AI邏輯中。

但如果我們再往前思考一步,QQ賬號出售可以發(fā)現(xiàn)如果僅僅把行為樹限制在AI部分,顯得有點可惜,就像我前面一直強調(diào),行為樹就是邏輯樹,是一種對于邏輯的維護和管理的架構。游戲中很多地方都是有邏輯的,有些甚至會非常復雜,這些地方為什么不能用行為樹的方式來思考和實現(xiàn)呢?經(jīng)過實踐,我發(fā)現(xiàn)這是完完全全可行的,我甚至可以這樣說,只要存在復雜的邏輯,就可以用行為樹的方式去做,它可以很好的幫助你理清思路,實現(xiàn)漂亮的邏輯代碼。由于行為樹與AI有了“密切”的綁定,所以甚少接觸AI的程序員對行為樹基本不是很了解,這也導致行為樹并沒有得到廣泛的應用,甚至都沒有作為一個候選方案。

我有幸在現(xiàn)在項目里,做了很多其他的模塊,所以我也把行為樹的一些思路用到了其他的模塊中,發(fā)現(xiàn)寫起來非常的順,也很爽快。我舉一個我們在項目中碰到的例子,就是任務系統(tǒng),做過游戲的人都知道,這個系統(tǒng)在邏輯層面是很復雜的,內(nèi)容繁多,但如果用行為樹的方式去思考的話,就會發(fā)現(xiàn)這個復雜的問題一下子就簡化了。

仔細分析任務系統(tǒng)的話,可以把任務系統(tǒng)分成幾個部分,一個是接這個任務條件,然后是任務的完成目標,然后是獎勵(這個和下面的討論關系不大,暫且略過)。我們先可以抽象兩個概念,“單個條件”和“單個目標”。單個的條件包含“怎么算是達到條件”的一段邏輯,單個的目標也是一段邏輯,包含了“怎么算是完成”。所以這些都可以做成一個個邏輯單元,就像行為樹的前提和行為節(jié)點一樣。另外根據(jù)設計的需求,接任務的條件可能有多個,完成的目標也可以有多個,所以這些單個邏輯之間就存在邏輯關聯(lián),所以我們可以借鑒行為樹中控制節(jié)點的概念,把這些邏輯關聯(lián)也抽象出來,成為“關聯(lián)”,比如一個最簡單的邏輯關聯(lián)就是“并且”,這樣我們就可以描述這樣一個邏輯,要完成目標1,“并且”完成目標2,這里我們就把兩個“單個目標邏輯”用“關聯(lián)”串起來了。

最后,我們就在每個任務中定義了兩顆邏輯樹(換個通用的名稱,其本質(zhì)和行為樹是一樣的),一個是接這個任務的條件樹,一個是完成這個任務的目標樹,這樣每個任務都可以用配置文件來配,我們也做了一個工具來幫助設計師來生成和編輯任務,作為程序只要維護那些可以被用到的“條件”,“目標”,“關聯(lián)”就可以了。

任務系統(tǒng)設計

關于任務系統(tǒng),我這里就貼幾個代碼片段(偽代碼)再詳細說明一下

先是數(shù)據(jù)結構定義:


由于Condition和Objective都定義成了樹結構,所以我們就可以很方便的組織邏輯,下面是一個具體Condition的例子,Objective也可用同樣的方式定義出來。
?


這樣接任務和更新任務就變的很簡單。
?


所以我們只需要定義出單個的邏輯片段,然后游戲設計去拼搭任務邏輯就可以了,和行為樹的思路是很像很像的。當然任務系統(tǒng)還有很多細節(jié)需要處理,但這樣的邏輯結構可以大大的幫助理清思路,實現(xiàn)出漂亮的代碼。

Mission Complete!非常簡單!

這就是行為樹的思維方式帶來的好處,我們在游戲的教程系統(tǒng),技能系統(tǒng)等相對邏輯復雜的系統(tǒng)中都或多或少有用到這樣的架構方式,使得單個的邏輯被高度提煉和抽象,邏輯的關系非常清晰,分工也變得更為簡單。

總結

以上是生活随笔為你收集整理的用行为树的方式思考:任务系统设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕在线视频一区二区三区 | 国产一二在线观看 | 中字幕视频在线永久在线观看免费 | 求免费黄色网址 | 九草在线 | 成人国产免费视频 | 国产日韩高清在线 | 国产精品后入内射日本在线观看 | 国产午夜三级 | 亚洲一区二区三区在线免费观看 | 台湾少妇xxxx做受 | av亚州 | 精品国产乱码久久久久久1区2区 | 久久久久久福利 | 国产成人精品免费看视频 | 黄色美女一级片 | 国产伦理吴梦梦伦理 | 国产富婆一级全黄大片 | 欧美精品国产 | 中文字幕一区二区三区乱码不卡 | 欧美亚洲一区二区在线观看 | 绿色地狱在线观看 | 精品伦精品一区二区三区视频密桃 | 日本免费精品视频 | 老司机激情视频 | 亚洲av无码国产精品久久 | 亚洲免费二区 | 亚洲性xxx| 亚洲人在线视频 | 国产波霸爆乳一区二区 | 人妻偷人精品一区二区三区 | 夜夜骑夜夜 | 亚洲一区二区三区免费视频 | 国产无码久久精品 | 中文字幕在线视频精品 | 日韩精品久久久久久免费 | 男人添女人下部高潮全视频 | 国产夫妇交换聚会群4p | 做a爰小视频 | 99久久久久无码国产精品 | 日本特黄特色aaa大片免费 | 天天操天天射天天爽 | 午夜精| 日韩一本在线 | 一区二区在线观看av | 国产视频一区二区三区在线 | 国产传媒一区 | 欧美黄色大片免费观看 | 亚洲av无码久久精品狠狠爱浪潮 | 中国成熟妇女毛茸茸 | 韩日精品中文字幕 | 国产又黄又猛 | 久久久噜噜噜www成人网 | 91精品又粗又猛又爽 | 操你啦免费视频 | 欧美一区二区三区四区五区 | 日本精品久久久久久久 | 六月丁香婷婷激情 | 欧美少妇b | 欧美mv日韩mv国产网站 | 成人免费无码大片a毛片抽搐色欲 | 精品国产一区二区三区久久久蜜臀 | 国产女主播一区二区 | 网站免费黄色 | 少妇欧美激情一区二区三区 | 国产91成人 | 天天草av| 日本少妇中文字幕 | 国产不卡二区 | 亚洲二区在线视频 | 日韩黄色片免费看 | 新婚之夜玷污岳丰满少妇在线观看 | 大桥未久av一区二区三区中文 | 农村末发育av片一区二区 | 亚洲精品视频免费看 | 亚洲性在线 | caoprom97| 色天堂在线视频 | 亲嘴扒胸摸屁股免费视频日本网站 | 少妇高潮淫片免费观看 | 日日夜夜中文字幕 | 久久夜色精品国产欧美乱 | 免费观看国产精品视频 | 嫩草视频在线观看 | 国产视频一区二区在线 | 国产精品无码一区二区三区 | 欧美手机在线 | 97精品视频| 久草在在线 | 国产精品精东影业 | 91手机视频| 少妇精品无码一区二区 | 苍井空张开腿实干12次 | 岛国一区| 91网站免费看 | 中国av毛片 | 激情 小说 亚洲 图片 伦 | √资源天堂中文在线视频 | 青青青视频免费 |