原创 [FreedomAI]第八週——蟻羣算法綜述以及應用初衷

在研究遺傳算法的時候,隨帶看到了蟻羣算法,發現了很有意思。進而一細想,發現還在遊戲的尋路中有一定應用的可能,首先,我們很頭大的一個問題有時候在於,對於一大羣AI,在同一幀來了一個請求,要求他們進行實時的尋路,這樣我們還要不影響幀率的話,就

原创 [FreedomAI第七週]遺傳與生態實踐篇第二部分

這一篇我們來討論討論牛。牛的性狀有:牛的初始位置,牛的速度,牛的強壯度,牛的血量。牛的強壯度在直觀表現上會體現出Cube的大小,同時也會影響減血的速度,越強壯,每秒減血的就越慢。CowObject.class:public class C

原创 [FreedomAI]第八週——算法具體實現和運行結果

public class AntPopulationSystem:USystem { public override void Init () { base.Init (); this.AddRequestCo

原创 [FreedomAI]第四周——GroupBehaviour

爲了製作具有羣體性行爲的AI,又一次踏上了征途。羣體性行爲和策略,同個體行爲的結構是很像的,但更復雜的是,我們的底層必要有一個機制自動的輔助系統能獲得哪些AI應該被形成一個組,爲了解決這個問題,我們確立了發起者和響應者。發起者會檢測四周範

原创 [FreedomAI]第一週——FSM

FSM是用的非常成熟的技術,不過我們在算法框架上加入了自己的理解。一是加上概率機制。  將FSM進化成概率FSM,是自由度的第一步體現。不在是固定會在某個節點變到另一個節點,而是在某一個區間都有可能發生變化。二是加上反饋機制。  由於是基

原创 [FreedomAI]第六週——遺傳算法與種羣綜述

首先介紹什麼是遺傳算法。由一個問題引入,求某函數f(x)在區間[a,b]上的最大值。這看似簡單,我們很快會說,求他的導數,然後等於0即可。但是往往在應用中,f(x)未知,或很難解析,這就讓求導這類方法變得困難。於是科學家們聯想到了生物裏的

原创 [音之國度讀存檔]實現篇

      上篇提到了讀存檔類庫的設計,現在來談談實現。      加密策略容易,無非是在實現類中對字符串搞搞事情。      比如說不搞事情的版本: public class DirectStrategy<T>:AccessStrate

原创 [FreedomAI]第五週——AI的LOD

LOD——Level of Detail,多細節層次,這本身是圖形學的一個概念,在圖形學中,爲了對性能進行加速,我們很正常的會有這樣一個想法,對於那些比較遠的圖元,我們是不是可以不渲染他大量的細節,而只描繪出一個輪廓呢?——而這在視覺效果

原创 [音之國度進度]團隊探索系統

        項目音之國度進入了尾聲,需要臨時加上一個團隊探索系統。         本身的邏輯控制並不複雜,比較麻煩的是這個系統並不是我寫的,在合併代碼的時候可能會造成很大麻煩。         所以爲了讓之後的人比較容易的合成代碼,

原创 [FreedomAI]第三週——InfluenceMap

勢力圖或影響圖被認爲是AI進行決策時獲取外界信息的一種良好方法。這些外界的信息可能包括,友方信息,敵方信息,地形及道具信息,這些東西我們如果讓每個AI都用GameObject.Find....Withtag 那麼可想而知,其複雜度就是N個

原创 [FreedomAI]第五週——池化技術

這項優化方法又是從別的領域借鑑來的, 最開始瞭解的一個東西是線程池,內存池。其實不論是線程池還是內存池,都在遊戲引擎中非常常見,首先我們先介紹一下他們的應用場景,因爲在遊戲引擎裏我們常常遇到這樣一個問題,那就是內存(線程)的申請和釋放非常

原创 [FreedomAI]第四周——SimpleAI

上週突然發現,對於一些簡易的AI,使用FSM+FuSM那一套,明顯過於複雜了,對於一個很簡單的AI來說,似乎只需要定義哪些情況下做哪些事情就足夠了,比較粗魯的寫法就是:ifthenelse ifthenelse ifthen.......

原创 [FreedomAI]第二週——FuSM

只使用FSM及其變種是很難應用在複雜的AI中的,因爲其複雜度的擴展性很差,就比如,如果怪物有20種狀態,你就需要考慮20*20種可能性的連接。所以這時我們必須建立分層次的狀態機設計,試想一下,把AI的所有行爲再分個類,每一類都認爲是一種策

原创 [FreedomAI第七週]遺傳與生態實踐篇第一部分

上週完成了遺傳算法的底層編碼,這周還設計一個能體現效果的小Demo。我們使用了最簡單的生產者、消費者一個循環體系。生產者是草,消費者是牛。生產者具有的性狀有:草的高低、草的生長位置、草的顏色、草的血量其中草的生長位置在一個矩形區域裏隨機,

原创 [FreedomAI]第三週——A*尋路

上篇介紹了InfluenceMap,如果不使用這些信息,那麼也是浪費的,這篇我們來看一個InfluenceMap的應用。A*尋路——我們經常遇到的一個問題是,如何讓AI從一個點到另一個點。通常兩點之前線段最短在這裏並不適用,有可能我們需要