像缺氧、環世界那些小人自動分工機制是怎麼做到的?

不僅僅有這些,還有石爐傳說、放逐之城都是有小人自動分工的機制。

他們的機制邏輯是什麼樣的?

需要了解什麼樣的知識?

是否有什麼方便的插件類


以下由皮皮關馬遙回答。

不知道樓主對遊戲AI了解多少,缺氧這種自動分配任務的團隊AI,屬於遊戲AI里略微高級的話題。

所以一般人需要先理解遊戲AI大概是個什麼東西,之後才能思考缺氧這種團隊AI怎麼做。

一、遊戲AI大概是個什麼鬼

首先做個廣告,門外漢直觀理解遊戲AI最快的方法是瀏覽我的文章《給貓看的遊戲AI實戰》系列,收錄在專欄《遊戲開發入門指南》裡面。

https://zhuanlan.zhihu.com/gdguide

其中第3篇:基於狀態機的AI系統第5篇:忙碌的搬運工與AI協作第6篇:行為樹和Behavior Designer插件(上),這三篇對理解樓主的問題來說是必須知道的前提知識,略讀也可。

重點1、理解FSM(有限狀態機)在遊戲AI中的使用方法,樓上的回答也提到了。

重點2、缺氧中的AI是自動分工的,涉及到隊伍整體AI和個人AI的邏輯。

重點3、像缺氧這種複雜的AI邏輯,更適合用行為樹來設計,並不是說狀態機不行,只是狀態多了以後不好管理。

二、團隊AI如何設計。

團隊AI的問題我也正在思考,之後還想整理成文章。在這裡我先畫圖解釋一下思路哈。

《缺氧》我也沒怎麼玩,為了答好樓主的問題又看了下別人玩的過程。我們將邏輯簡化一下,初期的任務無非就是挖坑建設,我再外加一個發電。另外人物有個額外的吃喝拉撒的需求,我簡化為飢餓度,到100就會挨餓。

首先,必須明確這類稍微複雜的AI遊戲,存在兩種AI。一種是每個角色自己的AI,另一個是團隊整體AI(也被稱為meta AI,名字不重要)。

每個角色都有自己的AI,尋路、如何建設、如何挖坑、解決吃喝拉撒、判斷是否接受任務,都是角色自己本身的事情,需要自身AI實現。

另外需要一個團隊AI用來分配任務,而且!玩家的操作絕大部分是交給團隊AI的,玩家不必直接告訴哪個人物怎麼做,而只需要下達一系列命令即可。這一系列命令會被團隊AI排序、規劃,最終交給具體的人去做。

1、如圖,玩家下達了一系列命令,下達的命令從左邊進入任務隊列,從右邊出。現在3個人都是空閑狀態。

2、第一個挖地任務按順序派發,由於玩家設置或者優先順序原因,挖地任務優先給了B,B也同意了(注意這裡B是可以不同意的,比如說他累了或者想去上廁所)。那麼B開始挖地。

3、依次給閑著的人繼續派任務,A去建設了,B和C去挖地。

4、B和C同時做完了手頭的事,A還在忙碌中。這時C已經很餓了,C可以去選擇吃飯上廁所或者是繼續幹活,這個看具體遊戲是怎麼設計的了。

遊戲AI就是這樣的,說起來很簡單,實現的時候需要多動腦筋啦,具體可以看我文章中第七篇的例子——一個很簡單的功能做了個挺複雜的行為樹。

AI架構還不算是難點,真正的難點是各種細節問題。另外《缺氧》的AI系統,相對來說還比較明顯,目前公認最複雜的AI系統,應該是足球遊戲的,哈哈。

不知我這個回答題主是否滿意,有問題可以補充哦~~


維護巨型tasklist,將地圖上發生的所有需求按優先順序登記到tasklist(比如這個塊被玩家命令挖,那個灶台需要有人進行生產),並在需要的時候更改(比如本來要搬運的屍體太長時間沒人管腐爛了,或者生產進行到一半被打斷了)

然後隨時調用當前空閑的小人,從舊到新給小人分配任務,或者是小人在完成手頭的任務後去tasklist請求一個新任務(本質上是一樣的)。同一個任務有多個小人可以完成時分配給工作優先順序較高的小人。


屬於遊戲ai範疇,基本都是fsm。


猜測用的是行為樹

搜索「行為樹(BehaviorTree)」了解相關知識

unity插件「behavior designer」,你值得擁有~


推薦閱讀:

unity 2d 點光源/路燈/手電筒效果怎麼做?
有什麼龍珠相關的遊戲嗎?
玩遊戲玩到該遊戲停止運營是怎樣一種體驗?
「圍住神經貓」這樣的網頁小遊戲是怎樣火起來的?
NGUI製作背包等有大量物品圖片的界面時候如何優化Drawcall?

TAG:遊戲開發 | 遊戲策劃 | Unity遊戲引擎 | 獨立遊戲 |