GAME AI BY EXAMPLE 第一遍學習

第二章《狀態機設計》。對於任何狀態下都有可能轉移到的狀態,可以將判斷放在GlobalState全局狀態中,避免在其他狀態中複製相同的代碼。同時有限狀態機可用於遊戲狀態管理,菜單狀態,暫停狀態等等

第三章 《操控行爲,組行爲》。有些計算是利用照距離正比/反比,避障算法主要用到了空間座標轉換,再產生一個牽制力和縱向力避障

第四章《足球體育案例》,學習分層狀態機。一個Team有一個狀態機,Team裏的每個Player也有狀態機,且Team在一定程度上會影響Player個體。每個實體的狀態機中有個狀態是全局狀態

第五章 《遊戲中的圖》學習。圖在遊戲中有導航圖,依賴圖,狀態圖,鄰接表。搜索算法有BFS,DFS,最短路徑樹,dijkstra,A*搜索尋路。其中dijkstra通過邊鬆弛,A*基於BFS和估價函數進行搜索

第六章 《遊戲腳本》學習。通過編寫lua腳本實現AI的決策邏輯,避免反覆編譯浪費時間,對於對性能要求比較高的代碼片段,使用C++更好

學習第七章《遊戲中的觸發器》。通過觸發管理器更新,註冊,刪除觸發器,AI還可以有短暫記憶,有些功能實時性不太高的可以隔幾幀運行一次。目前在堆積AI知識的量,看完這本書後計劃 研究UE4行爲樹的源碼,工作流。

學習第八章《AI路徑規劃》。①對於到達某個點的路徑,用A*尋路;對於到達某個Item,用Dijkstra。要記錄路徑所有的邊,採用邊路徑而不是點路徑,這樣可以通過給邊加變量,當AI要走這條邊的時候切換狀態,例如要過河切換游泳模式的情況。②對於路徑平滑,相鄰兩條邊,第一條起點和第二條終點若無障礙,則可以合併。③性能優化:若遊戲環境是靜態的,先預處理出所有點出發的dijkstra最短路結果,空間換時間。如果是動態,可以用在PathManager裏時間片輪轉所有AI尋路請求,或者使用分層路徑

第九章《目標驅動》。HTN分層任務網絡,將一個大的任務劃分成原子任務的組合,有點像行爲樹的一個個任務節點
第十章《模糊邏輯》。在臨界數據data1上下改變,可能會導致AI決策突變,可以依賴隨機做一些判定。模糊邏輯通過對於環境的潛在輸入定義隸屬度,輸出是確定的,能夠更加逼真一些

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章