當前位置: 華文問答 > 數位

即時戰略遊戲(比如 WAR3)的 AI 是怎樣實作的?

2013-12-31數位

War3的AI沒有必要使用你提及的演算法,或者說,根本無法使用。

有相關經驗表明,遊戲的AI如果采用神經網路等演算法,會傻得出奇。

使用學院派演算法的AI總會做出匪夷所思的動作,讓人無法理解,遊戲性盡失。


其主要原因在於遺傳演算法、模擬退火演算法、神經網路演算法、各種分類演算法等等,都是高度概括化的,旨在找到局部最優解/或者找到全域關系。但是我們的AI實際不需要最優解和全域關系,一是你的電腦沒那麽叼,這麽復雜的情況,如果真的高度概括出來了,其復雜程度是很高的,你的電腦也帶不動,其次是演算法在訓練過程中收斂也會很慢,因為樣本太過復雜,所以也許要花上很久(幾年?猜的)來收斂,如果我們降低收斂精度要求來使速度加快,AI就會變得非常傻,做遊戲明顯不能這樣。即使上述問題都被解決了,還有個問題就是,電腦得到了最優解和最優數學模型,你作為玩家就沒有勝利的希望了,這遊戲 給誰玩?

即使設計公司神經病般的決定如此設計,每當你的遊戲有更新,兵種變化,數據變化,整個演算法 就要重新訓練,玩家需要重新下載AI的全部內容,對使用者的體驗和公司的工作效率都失真害。


戰略類遊戲的AI,還是有限狀態機。

根據不同情況分類做不一樣的事情,全都設計好,設計的盡量詳細,就OK了。

關於其復雜度:

這類AI的程式體往往超乎想象的長,當然具體長度和遊戲本身的設計也有一定關系,和遊戲其它部份程式碼的設計最佳化程度也有關系,但是即使在較優環境中,其AI長度也是很長的。具體原因就在於其事無巨細的分類了所有情況,規定了AI在不同時間不同情況所做的不同事情,作為一個戰略類遊戲,尤其是即時戰略類遊戲,這是十分復雜的,情況十分多,因此程式本身也會相當的長。

但是他執行速度又快!又像人類在玩!又給了玩家勝利的可能!又容易設計和更改!

何樂而不為呢?