目录
2.有限状态机(Finite-state machine,FSM)
5.目标导向的行为规划(Goal-Oriented Action Planning,GOAP)
-
一、什么是游戏AI
严格意义上来讲,与其他领域的AI相比,许多类型的游戏AI实际上都不能称之为AI。大多数游戏里的AI实际上只是一些能够给玩家带来一定智能程度的“错觉”的智能体。所以,简单来说,游戏AI就是游戏中那些非玩家控制的游戏角色,也就是NPC的行为逻辑。
-
二、为什么需要游戏AI
在游戏中,虚拟的游戏角色的行为深刻影响着玩家在游玩这个游戏时候的感受,而游戏AI决定了这些虚拟游戏角色背后的行为逻辑。这种行为逻辑真实与否,直接影响了玩家的游戏体验。
打个比方,艾尔登法环中的许多敌人都有一个“药检”系统,敌人一旦检测到玩家使用元素瓶,敌人就会发了疯似的来打断玩家。单从这一点来看,这不是一个优秀合理的游戏AI。甚至因此有玩家调侃到,哪怕你在元素瓶的物品描述上加上这样一句话——使用元素瓶这件事在交界地被视为是最恶劣的嘲讽方式,都能使这一事件合理。由此可见,游戏AI对于玩家的游戏体验起到重要作用。
-
三、游戏AI的主要实现方式
1.朴素AI
游戏AI最简单的实现方式,就是用if else这类的简单分支语句对NPC的行为进行分类和判别。
打个比方,有一个敌人在巡逻,我们可以用朴素AI为他添加一些规则:
- 如果视线内没有人就巡逻
- 如果视线内有玩家就攻击
- 如果生命值降为0就死亡
看上去好像没有什么问题,但是如果玩家接近这个NPC,之后又离开了这个NPC的视线呢?这个敌人就会在攻击结束后和没事人继续回去巡逻,这显然不符合常理。而且实际上游戏中的情况远比这种情况要复杂,虽然单纯使用这种简单的分支语句,在理论上也可以通过各种嵌套实现很复杂的行为逻辑,但且不说这段代码有多让人头疼,最主要的是其代码的复用性太差,每个不同类型的敌人都要从头构建一个新的行为逻辑,所以这里我们要引入有限状态机。
2.有限状态机(Finite-state machine,FSM)
有限状态机是将游戏内NPC的各类行为抽象为几个状态,再通过事件将不同的状态相互连接,组成一个状态机。在某个特定事件发生时,状态才将进行转换。
还是以刚才巡逻的敌人举例,我们可以将这个敌人分为巡逻、警戒、攻击、死亡四个状态,再通过一些事件进行连接,如图1所示
图表 1有限状态机
在有限状态机下,通过很简洁的代码就可以实现复杂的行为逻辑。并且最重要的是,代码可以封装复用了,不同类型的单位可能只需要修改几个切换状态的条件,大大降低了工作量。