游戏中的人工智能AI设计

因为在现在的项目中花了很大精力设计和制作怪物AI和技能,所以在这里也做个小总结。

什么叫做游戏中的AI
       游戏中的AI可以简单的理解为计算机控制的智能角色,这些智能角色能够通过周遭环境或者事件的变化进行逻辑判断,从而同玩家进行产生特定的行为交互。

AI的行为类型
1,感知(Perception)
       感知是指AI在所处环境或世界中,侦测周遭环境或者事件变化的能力,这种能力是由游戏设计者决定的并且赋予的。比如潜行游戏中,敌人的视野只有他前面90度角的扇形范围,如果游戏设定这个AI只具有视野这唯一的感知能力,也就是说玩家只有进入敌人视野才会被发现,那么,玩家不管是在AI的周围大声的开枪,还是用枪去顶AI的菊花,甚至开枪打伤它,AI都不会感知玩家就近在咫尺。当然作为游戏设计者需要全面的考虑游戏中AI的应该侦测哪些,赋予AI完美生动的感知能力。

2,行动(Action)
      行动是指AI自己决定去做一系列行为, 游戏设计者通过一系列的规则和逻辑次序的设定来控制这些AI的行动。例如,WOW中有个NPC,白天时守着一个熄灭的火堆面前,来回的巡逻,而夜晚降临时则会去点燃火堆,静静的坐着不动。如果游戏设计者想制作一个热闹的城市,可以制作很多不同的AI角色,有的沿着街道从一个地方跑到另外一个地方,有的小贩站在原地不动吆喝,甚至可以让两个NPC在走路的过程中相遇然后聊上一会天。我想一个有着丰富的AI角色的世界,一定会让玩家很容易的融入这个游戏世界。

3,反应(Reaction)
     反应是指 AI在感知到玩家的行为所引发的刺激信息时所触发的行为。比如,Left 4 dead(生存之旅)里面的Hunter,在探测到玩家的位置之后hunter会伺机从远距离扑到玩家,如果玩家朝hunter开枪的话,hunter会尝试在远处使用天花板跳、三级跳等技能躲避玩家的射击,如果玩家并不射击hunter,他则会直接从远距离扑过来。这种反应又可以称之为怪物攻击策略,有趣而生动的AI反应会让玩家觉得挑战的乐趣。

      大多数游戏AI主要能做到上面三点,就算是能满足游戏设计者的基本需要了。

4,学习(Learning)
       比较复杂的游戏AI会记录玩家的行为变化,比如策略游戏的AI可能会根据玩家的策略变化,不停的分析玩家的行为,从而做出更为复杂的行为,是同玩家结盟,还是联合其他国家来攻击玩家;例如很多国外RPG游戏中的NPC会根据玩家在游戏中的善恶变化,而对玩家表现完全不同的态度;例如射击游戏中玩家开的是坦克,AI用的是步枪,当两者遭遇时,AI一开始还拿着步枪攻击了一阵,发现步枪完全没有用,于是就去寻找反坦克导弹来摧毁坦克。
      高级AI的学习,需要随时记录玩家的行为变化,并把这些信息放到一个专门的分析系统中逐一分析,从而得到最有利于自己的反应。会学习的AI相当的聪明,但是更聪明的游戏设计者则需要设计一个完善的分析系统,这样的系统通常会用来控制一个游戏的难度,当玩家尝试很多次失败之后,我们的高级AI则会分析得到玩家的优缺点,比如玩家的射击能力实在太差了,于是便略微的降低自己的移动反应速度,让玩家更容易击中自己。

AI的基本能力
        作为游戏AI设计者首先要分析并且归纳出自己这款游戏AI的基本能力,定义好这些基本能帮助游戏设计者很方便的制作更多更有趣的AI。

大多数游戏中AI能力大致上可以有以下几种:
  • 检测潜在威胁
  • 确认对方身份(敌人还是朋友)
  • 确认威胁级别(专注于威胁最大的目标)
  • 与敌对者交战(战斗技能)
  • 特殊行为(根据游戏需要特意设计的AI行为)

AI的基本属性
        设计好AI的基本属性极其重要,游戏设计者可以通过调整基本属性设计出“个性”不一的AI。

大多数 游戏中AI基本属性大致可以分为:
  • 身份(阵营) 
  • 战斗参数(生命值,攻击力,防御力)
  • 交互范围(追击距离,仇恨侦测距离,攻击交互距离)
  • 侵略性(攻击技能使用频率)
  • 仇恨(主要攻击目标查找)

如何设计游戏中的AI
        
         第一步,定义游戏中AI的基本挑战。单个的AI挑战往往需要结合关卡设计的挑战组成一个基本的挑战模式(Challenge Pattern )。 在游戏设计者拿到怪物详细概念设计之前,首先必须清楚本款游戏中最重要的游戏挑战在哪里(Where is the main GamePlay in my game?),也就是玩家玩游戏的乐趣是什么,以及我们所设计的游戏AI会出现在游戏的哪个部分,扮演着什么样的角色。 例如,超级玛丽中,玩家需要利用跳跃来躲避怪物的直接接触(一碰即死),或者准确的跳到怪物头上从而消灭怪物,游戏中最简单的怪物AI表现为在两个点之间保持匀速的来回巡逻,这个就可以成为一个基本的挑战模式(Challenge Pattern)。越往后的关卡中的怪物AI则略微复杂,比如有的怪物会使用技能主动攻击玩家,则需要玩家即要躲避怪物的直接接触,又要躲避怪物不断发出的攻击子弹,这个就又是难度更高的挑战模式了。

       第二步,设计挑战中的AI基本能力和基本属性。同样以超级玛丽为例,怪物的基本能力、基本属性和挑战模式如下表。
 怪物  能力  属性  挑战
 蘑菇  一触即死(伤害玩家) 移动  敌对  踩一次,躲开
 绿色乌龟  一触即死 ,移动  敌对,龟壳  踩两次,躲开
 红色乌龟  一触即死, 移动 ,识别悬崖  敌对,龟壳  踩两次,躲开
 红鱼  一触即死 ,移动  ,穿过珊瑚  敌对  子弹打死,躲开
 蓝鱼  一触即死 ,移动  ,不能穿过珊瑚  敌对,无敌  躲开
 绿鱼  一触即死  高速移动   ,穿过珊瑚  敌对,尸体有毒  子弹打死,躲开
   
        由 表我们不难得知,游戏中的AI设计, 其实 就是各种能力和属性的 组合,而达成不同的游戏挑战。

        第三步,设计AI的状态和逻辑。这一步往往是由游戏设计师和游戏程序员共同商讨来完成,如果游戏设计师能提供一个结构清晰的游戏AI运行流程,那将帮助程序员能够更好的理解游戏中怪物的行为,而且有的时候可能会 需要 设计者自己动手去制作AI(比如我。。。)
        如下图是一个简单的RPG游戏中怪物的AI运行流程,也可以叫AI逻辑转换结构图。

 
AI的状态
        也可以理解为程序员经常说的状态机。AI会在一个状态里面完成一个指定的行为,当指定的条件达成时,AI会从一个状态转到另外一个状态。如上图绿色方框,出生、待命、战斗判定、技能、追击....
AI的逻辑
        AI的逻辑也就是AI状态之间来回转换的条件。如上图灰色菱形,出生状态是否完成,是否巡逻,玩家是否在仇恨范围内...

        第四步, 测试游戏中的AI。没人能保证自己的设计从一开始就是完美的,作为游戏设计者更要常常抱着玩家的心态去不断的测试体验自己的设计。


转载至  http://jianganxi.blog.163.com/blog/static/12124245220124291119413/

你可能感兴趣的:(Cocos2D-x,AI,智能,游戏设计)