AI与游戏——引言

来源:互联网 发布:武汉凝聚网络汉口北 编辑:程序博客网 时间:2024/06/18 14:45

我将在这个博客记录一下我在学习游戏中的人工智能时的一些理论,实验与心得。这个博客理论部分只是点到为止,更多的是代码的实现思想,也就是实践。主要参考《AI and Games》一书。

在这里首先介绍一下AI与游戏的关系,一是使NPC(no-player-character)的行为更像人类,二是操纵角色赢得游戏胜利(对战类或非对战类),三就是利用AI自动生成游戏场景。这些应用方向在书中各个章节都有介绍,本文便是以书中顺序为基础,并结合了自身实践。

然后介绍一下游戏的一些特性。当为一个游戏设计相应的AI算法时,有必要知道这个游戏以及算法的特点,这决定了那种算法更为有效与合适。这里主要讨论三个特性:可观测性,随机性,时间密度。下图对三个特性做了很好的阐述。

游戏特性与例子

从上图可以看到,可观测性决定了我们能从游戏中获得的信息的多少,如象棋游戏,我们可以看到全局信息,而像战船这类游戏,我们只能看到自己的情况看不到对手的战况。随机性决定了算法的判断能力,同样上面的战船游戏,虽然看不到对手的情况,但是对方的布局是确定的,在投放相应炮弹后便可以知道对手的战船的大致分布,而像扑克类游戏,对手出牌的随机性就很高,这就很难以提前决策。还有一点便是时间密度,最简单的例子就是回合制游戏与及时动作游戏,回合制游戏有相对充足的时间来制定策略,二即时类游戏的时间很紧迫,需要AI实时做出反应。

介绍完游戏的三大特性之后,我将从书上主要列举的游戏——“吃豆人”开始,介绍相应AI算法是如何让吃豆人在游戏中获得尽可能多的分数。从上图可以看出,吃豆人游戏属于高可观测性,低随机性,高时间密度的游戏,前两者降低了入门难度,而实时性这一点也适当的需要你对算法的时间复杂度有一定要求。

原创粉丝点击