当前位置: 华文问答 > 数码

即时战略游戏(比如 WAR3)的 AI 是怎样实现的?

2013-12-31数码

War3的AI没有必要使用你提及的算法,或者说,根本无法使用。

有相关经验表明,游戏的AI如果采用神经网络等算法,会傻得出奇。

使用学院派算法的AI总会做出匪夷所思的动作,让人无法理解,游戏性尽失。


其主要原因在于遗传算法、模拟退火算法、神经网络算法、各种分类算法等等,都是高度概括化的,旨在找到局部最优解/或者找到全局关系。但是我们的AI实际不需要最优解和全局关系,一是你的电脑没那么叼,这么复杂的情况,如果真的高度概括出来了,其复杂程度是很高的,你的电脑也带不动,其次是算法在训练过程中收敛也会很慢,因为样本太过复杂,所以也许要花上很久(几年?猜的)来收敛,如果我们降低收敛精度要求来使速度加快,AI就会变得非常傻,做游戏明显不能这样。即使上述问题都被解决了,还有个问题就是,电脑得到了最优解和最优数学模型,你作为玩家就没有胜利的希望了,这游戏 给谁玩?

即使设计公司神经病般的决定如此设计,每当你的游戏有更新,兵种变化,数据变化,整个算法 就要重新训练,玩家需要重新下载AI的全部内容,对用户的体验和公司的工作效率都有损害。


战略类游戏的AI,还是有限状态机。

根据不同情况分类做不一样的事情,全都设计好,设计的尽量详细,就OK了。

关于其复杂度:

这类AI的程序体往往超乎想象的长,当然具体长度和游戏本身的设计也有一定关系,和游戏其它部分代码的设计优化程度也有关系,但是即使在较优环境中,其AI长度也是很长的。具体原因就在于其事无巨细的分类了所有情况,规定了AI在不同时间不同情况所做的不同事情,作为一个战略类游戏,尤其是即时战略类游戏,这是十分复杂的,情况十分多,因此程序本身也会相当的长。

但是他运行速度又快!又像人类在玩!又给了玩家胜利的可能!又容易设计和更改!

何乐而不为呢?