04.《吃豆人》的游戏AI分析

03.游戏AI的鼻祖——《吃豆人》中,主要介绍了《吃豆人》这个游戏开发的一些历程,也简单分析了游戏中出现的游戏AI类型与其发挥的作用。今天我们详细介绍它的游戏AI。
在上一篇文章中提到,《吃豆人》拥有三种现代游戏AI的雏形。包括了Character AI(角色AI),Meta AI(概念AI)和Navigation AI(导航AI)。
它们分别在游戏中的作用如下:
  1. 角色AI :控制角色功能 
  2. MetaAI:控制游戏整体难度
  3. 导航AI :定位玩家并给出追踪路径
角色AI 
吃豆人的角色AI 是指游戏中四个鬼魂的AI, 我们这里也可以称为游戏NPC(非玩家角色)AI。
下面为四个角色的介绍:
  • 红色鬼魂Blinky:主动进攻型的角色,它会不停的追踪主角
  • 粉丝鬼魂Pinky:主动进攻型的角色,它会追踪主角正前方两格的位置
  • 蓝色鬼魂Inky: 会追踪红色鬼魂的位置,以主角朝向为轴进行翻转后的位置
  • 橙色鬼魂Clyde:和主角保持距离的角色,当距离主角比较远时,会开始追踪主角。当距离主角比较近时,会开始往地图的一个角落移动
吃豆人中的每只鬼魂都有自己的名字并且初始化的位置,运动方式都是不同的。这赋予了游戏的NPC,一种个性丰富的形态。
这种角色 AI是通过一套规则系统设计出来的。下面是游戏中吃豆人的状态图:
从上图可以看出,吃豆人的状态,是根据鬼魂是否在附近,是否吃了能量药丸发生变化的。同时鬼魂有三种状态。
鬼魂的状态有: 追逐,散播和受惊
 
  • 追逐  在追逐模式中,目标为在迷宫中抓住吃豆人
  • 散播  在散播模式中,鬼魂将暂时放弃追逐,并朝着各自的角落前进
  • 受惊  当吃豆人吃掉一个能量药丸时,鬼魂便会进入受惊模式并开始逃跑

 

四个鬼魂拥有这三种互斥状态中的任意一种,再加上吃豆人的状态,给游戏带来了更多的变化。
从现在来看,基于规则的AI,如果在游戏场景比较复杂的情况时,会多出很多的状态。如果要去分解这些状态,编写状态的行为,设计状态之间的转移条件,是会带来非常大的游戏开发成本。
MetaAI
MetaAI 有的文章翻译为概念AI,这里我们就使用这个翻译。
概念AI在游戏中,是为了让人感觉游戏很有趣,有时又会透过施加压力来为难玩家的一种AI。
在吃豆人游戏中,MetaAI 是可以控制游戏整体难度,让玩家不会觉得太难而放弃,或者太简单而没有乐趣。
概念AI算是游戏世界之神,它决定了游戏拿什么去撼动玩家的感情。一个好的游戏,会带动玩家的情感变化,让玩家收获情绪价值。
具体到吃豆人的实现中,《吃豆人》的程序可以通过分析玩家玩游戏的各种数据,来判断玩家的游戏水平,从而自动调整游戏的难易程度,达到每个人都可以获得一种叫做征服的情感体验。
 
40年后的今天,现代概念AI,能做的事情就非常多。可以分配一个NPC给玩家带路或者一起战斗,可以俯瞰整个关卡并控制难度,还可以生成剧情等等。
 
导航AI 
导航可以分成世界导航和局部导航,两者的区别只有范围上的区别,但是在实现上会区别对待。
世界导航是指玩家可以从世界中的A点达到B点的一条路径,而局部导航是指让我们的NPC从他的世界中的位置,移动到他要去的地方。
局部导航和世界导航不同的地方是,局部导航需要考虑局部世界,并且导航NPC在里面穿越,它必须知道周围的环境,还需要考虑其他的NPC位置,发现存在哪些路径可以选择,然后选择一条走。
吃豆人游戏中的导航AI主要的负责定位玩家位置,也就是吃豆人的位置 ,然后给出每个鬼魂的追踪路径。
《吃豆人》整体地图及界面设计
在吃豆人中,动态定位吃豆人的位置是较简单的,主要还是鬼魂的追踪路径和逃跑路径的问题。因为每个鬼魂的设定是不一样的,而且鬼魂不能倒退,只能在迷宫中路口才能转弯,对于实时的追踪路径算法还是有一定的要求。
《吃豆人》的游戏AI就介绍到这里了。后面的几篇文章,我们将把《吃豆人》这个游戏为例子,来讲解一些常见的游戏AI方法。
 
这些游戏AI方法包括:特定行为编辑 ,树搜索,进化计算,还有像监督学习,强化学习和无监督学习等一些算法。
往期推荐:
03.游戏AI的鼻祖——《吃豆人》
02.游戏AI从简单世界开始夺权
01.AI将改变未来的游戏