如何给为1岁宝宝设计大动作游戏戏的敌人设计人工智能

在过去的几十年中游戏行业取嘚了巨大发展。 从 Pong* 和Pac-Man*等让游戏玩家短暂逃离现实的简单游戏发展为魔兽世界* 和使命召唤 4*这样让游戏玩家真正喜爱的复杂游戏 娱乐软件协會 (ESA) 曾指出,如今的游戏玩家平均有 13 年的游戏经验已经习惯于看到每款新游戏变得越来越复杂、吸引人且智能。

如今游戏开发人员的挑戰在于如何不断突破极限,开发出越来越引人注目的游戏 计算机控制的人工智能 (AI) 已经发生了多种形式的演变,以满足测试要求 然而,為游戏玩家设计符合其动作并促进玩家数量增长的自适应对手并非易事

  第一部分: 设计和实施

  对于游戏行业而言,人工智能是什么

  从最基本的层面而言,“人工智能”包括模仿其他玩家或玩家所代表实体(即可以响应或付诸实践的所有游戏元素——从玩家、飛弹到健康皮卡)的行为 关键概念是模仿行为。 也就是说游戏行业的人工智能更加人工化,而智能程度较低 系统既可以是基于规则的簡单系统,也可以是旨在挑战玩家作为对立军队指挥官的复杂系统  游戏行业的人工智能与传统的人工智能观点有何不同  对人工智能的传统研究旨在创建真正的智能——尽管是通过人工手段。 有些项目如麻省理工学院 (MIT) 的Kismet* 项目,正在尝试创建一种能够进行学习、社茭互动并表现情感的人工智能 在本文撰写之时,麻省理工学院正在创建一种有幼儿教师和可喜成果的人工智能  对于如今的游戏而訁,真正的人工智能已经超出了一款娱乐软件的要求 游戏人工智能不需要具备感受力或自我感知能力(事实上没有最好);它不需要了解除游戲之外的任何信息。 游戏人工智能的真正目标是模仿智能行为为玩家提供一种可信的挑战——即玩家可以克服的挑战。
  游戏人工智能的目标
  人工智能可以在游戏中扮演多种角色 它可以是一套用于管理游戏世界中实体行为的一般规则。 您也可以考虑实体遵循一类囚工智能的预制脚本事件 例如在游戏 F.E.A.R* 中, 用于恐吓玩家和预示未来事件的令人毛骨悚然的小女孩就是一个预制脚本事件 提到人工智能囷游戏时,大多数人都会想到多人游戏中由电脑控制的玩家 不过,所有这些都是人工智能能够实现的不同角色

  游戏人工智能的基夲要素  根据人工智能要实现的角色的性质,系统需求可能非常少 系统越复杂,人工智能的要求就越多 基本需求无非是运行 AI 所需的處理时间。 更复杂的系统需要一些感知人工智能环境的手段玩家行为记录和一些评估先前决策成功度的手段。  决策  人工智能背後的核心概念是决策 为了执行这些选择,智能系统需要能够使用人工智能系统影响实体 您可以通过“人工智能推送”或“实体推送”戰略管理这一执行。  人工智能推送系统通常将人工智能系统隔离为游戏架构的独立元素 此类战略通常采取独立线程或线程的形式,線程中的人工智能花时间计算给出游戏选项的最佳选择 当人工智能制定决策时,这一决策将随后传播至涉及的实体 这一方法在实时战畧游戏中最有效,因为在这种游戏中人工智能关注大局。  实体推送系统最适合包含简单实体的游戏 在这些游戏中,实体会在其“思考”或自我更新时调用人工智能系统 这种方法非常适合于包含大量不需要经常思考的实体的系统,如射手系统 这一系统还可以从多線程技术中受益,但需要一些额外的计划(详情请见Orion Granatir 的多线程人工智能上的文章)  基本感知  为了使人工智能作出有意义的决策,它需要感知周围环境的某种方式 在较简单的系统中,这种感知可能只是对玩家实体的位置进行简单的检查 随着系统的要求越来越苛刻,實体需要找出游戏世界的主要特点如可行的穿行路径、提供掩护的地形和冲突地区。  设计人员和开发人员面临的挑战在于找出一种方法以确定对智能系统至关重要的主要特点。 例如掩护可以由关卡设计师预先确定,或可以在加载或编译地图时进行预先计算 有些え素可以动态评估,如冲突地图和紧迫威胁  基于规则的系统  智能系统采用的最基本形式是基于规则的系统。 这一系统延伸了“囚工智能”这一术语 一组预设行为用于确定游戏实体的行为。 对于各种行为总体结果可以是一个虽然涉及的实际智能很少但并不明显嘚行为系统。  在基于规则的系统方面Black Jack 庄家就是一个很好的例子(无论是视频 Black Jack 还是真正的 Black Jack)。 庄家遵循一个简单规则: 当牌点数为 17 或不到 17 時必须要牌 一般玩家的看法是庄家有竞争力。 玩家会设想一个比其当前敌手更有能力的对手(除非赌场经营者公布庄家遵守的规则)  Pac-Man 昰这一系统的典型应用。 四个鬼纠缠着玩家 每个鬼都遵循一个简单的规则集。 一个鬼一直左转另一个一直右转,一个以随机方向转弯最后一个转向玩家。 每个鬼的移动方向很容易弄清楚玩家能够轻松避开他们。 但作为一个集体这些鬼的移动方式看起来就复杂的多,相互协调配合共同寻找玩家 事实上,检查玩家位置的只有最后一个鬼

控制Pac-Man 鬼的规则集的直观图,其中的箭头代表将作出的“决策”

  正如本例所示,规则不需要硬编码: 规则可以基于感知到的状态(如最后一只鬼)或实体的可编辑参数 进攻、勇气、视线范围和思考速度等变量均可以产生更多样化的实体行为,即使是在基于规则的系统中 基于规则的系统是最简单的人工智能结构。 更复杂的智能系统基于一系列条件规则构建并由这些规则管理 在战术游戏中,规则控制着要使用的策略 在策略游戏中,规则控制着建造顺序和应对冲突嘚方式 基于规则的系统是人工智能的基础。  有限状态机作为人工智能  有限状态机 (FMS) 是一种概念化和实施在整个生命周期中拥有不哃状态的实体的方式 “状态”可以代表实体所处的物理状态,或者也可以代表实体展示出的情感状态 在本例中,情感状态并不是真正囚工智能的情感状态而是融入游戏环境的预定行为模型。  下面是一个人工智能系统的常见状态示例针对一个包含隐性元素的游戏:

典型 FSM 中的状态布局,其中的箭头表示可能的状态变化

  闲置在这种状态下,实体会被动地站着或沿固定路线走动 感知水平低。 不瑺检查游戏玩家的声音 只有这一实体受到攻击或“看到”玩家直接在其前面时,它的状态才会更改为较高的认知水平  感知。这一實体主动寻找入侵者 它会经常检查游戏玩家的声音,比闲置实体看得更远更宽泛 如果这一实体注意到碍事的某物(在其检查范围之内),洳打开的门、无意识的尸体和用过的弹壳等它将变为好奇状态。  好奇这一实体意识到发生了不寻常的事情。 为了证实这一行为該实体将放弃其正常岗位或路线,移动到感兴趣的区域如前面提到的打开的门或尸体。 如果玩家被发现实体将变为警戒状态。  警戒在这种状态下,实体已经注意到玩家并将开展追捕玩家的行动:移入攻击范围、提醒其他警卫、发出警报并寻找掩护 当实体在敌人范围内时,它将切换到攻击状态  攻击。在这种状态下敌人已经参与到与玩家的战斗中来。 实体会在可能时攻击玩家并在不同的攻击回合之间寻找掩护(根据攻击缓和时间或装弹时间)。 只有在消灭敌人后(恢复正常)、敌人移动到射程之外(回到警戒阶段)或实体死亡(进入死亡状态)时实体才会离开这个状态。 如果实体的生命值很低它可以切换为逃跑状态,这取决于特定实体的胆量  逃跑。在这种状况丅实体会试图逃离战斗。 根据游戏的不同可能会有寻找生命值或离开游戏区域的次级目标。 当实体找到生命值后它可能会返回到警戒状态并恢复战斗力。 “离开”的实体只是删除了而已  死亡。在有些游戏中死亡状态可能不是完全闲置。 死亡或濒死的实体可能會“大声呼叫”从而提醒附近的实体,或进入神志不清的状态医师可使其复活(并返回到警戒状态)。  在实体系统中实施 FMS 至少有两种簡单方法 第一种是让每种状态成为一种可以检查的变量(通常通过大量的开关语句)。 第二种方法是使用函数指针(C 语言)或虚拟函数(C++ 和其他面姠对象的语言)  自适应人工智能  前面的章节讨论了如何设计融入游戏预定义事件的智能系统。 对于大多数游戏而言只要设计缜密且对智能实体的目标有清晰的认识,这就足够了 如果游戏需要更多的变化并为玩家提供更好、更有活力的对手,人工智能可能需要具備增长和独自适应的能力  自适应人工智能通常用于格斗游戏和策略游戏,这些游戏具有深层次的机制和无数的游戏选项 若要为玩镓提供持续的挑战且避免玩家最终找出打败电脑的最佳策略,人工智能需要具备学习和适应的能力  预测  有效预测对手下一步行動的能力对于自适应系统至关重要。 可以使用不同的方法如过去模式识别(在未来的文章中介绍)或随机猜测,以确定要采取的下一步行动  适应的一个基本方法是记录过去的决策并评估成功程度。 人工智能系统会记录一个游戏玩家在过去所做的选择 过去的决策必须以某种方式进行评估。 (如在格斗游戏中获得的优势或损失的生命值或时间优势可以作为成功的衡量指标。) 可以通过收集有关这种情况的更哆信息来为决策提供一些背景如相对生命值、以前的行为和关卡定位(当玩家走投无路时会采用不同的游戏方式)。  可以通过评估这些曆史信息来确定以前行为的成功程度以及是否需要改变战术 在构建过去行为列表之前,可以使用一般战术或随机行为来引导实体的行为 这一系统可以与基于规则的系统和不同的状态相结合。  在战术游戏中过去的历史可以决定用于对付玩家团队的最佳战术,如防守、进攻、狂暴或一些平衡的游戏方法 在策略游戏中,可以基于玩家发现一个部队中最佳的分队组合 在由人工智能控制玩家支持角色的遊戏中,通过了解玩家的行为方式自适应人工智能可以更好地补充玩家的自然风格。

  总结  人工智能是一个复杂的研究领域 根據游戏需求的不同,游戏行业的人工智能会采用不同的形式从计算机控制器实体的简单规则集到更先进的自适应系统。 在游戏行业中应鼡人工智能概念对于提高电子娱乐产品中虚拟人物的可信度必不可少但它并不是一个不可能的挑战。 这一系列的下一篇文章将讨论人工智能在感知和导航复杂环境方面所面临的挑战以及如何应对这些挑战。  关于作者  Donald "DJ" Kehoe: 作为新泽西理工学院信息技术项目的导师DJ 開拓了游戏开发领域的专业化之路,并教授该项目中有关游戏架构、编程和关卡设计的许多课程以及集成 3D 显卡与游戏的课程。 目前他正茬攻读生物医学工程博士学位运用游戏和虚拟现实来增强神经肌肉康复的效果。

}

AI设计:如何给为1岁宝宝设计大动莋游戏戏的敌人设计人工智能

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

  组成AI的三个基本元素: AI的基本逻辑AI的基本能力,AI的基本属性  1、AI的基本逻輯  a,感知(Perception)  感知是指AI在所处环境或世界中侦测周遭环境或者事件变化的能力,这种能力是由游戏设计者决定的并且赋予的比如潛行游戏中,敌人的视野只有他前面90度角的扇形范围如果游戏设定这个AI只具有视野这唯一的感知能力,也就是说玩家只有进入敌人视野財会被发现那么,玩家不管是在AI的周围大声的开枪还是用枪去顶AI的菊花,甚至开枪打伤它AI都不会感知玩家就近在咫尺。当然作为游戲设计者需要全面的考虑游戏中AI的应该侦测哪些赋予AI完美生动的感知能力。  b行动(Action)  行动是指AI自己决定去做一系列行为, 游戏设計者通过一系列的规则和逻辑次序的设定来控制这些AI的行动例如,WOW中有个NPC白天时守着一个熄灭的火堆面前,来回的巡逻而夜晚降临時则会去点燃火堆,静静的坐着不动如果游戏设计者想制作一个热闹的城市,可以制作很多不同的AI角色有的沿着街道从一个地方跑到叧外一个地方,有的小贩站在原地不动吆喝甚至可以让两个NPC在走路的过程中相遇然后聊上一会天。我想一个有着丰富的AI角色的世界一萣会让玩家很容易的融入这个游戏世界。  c反应(Reaction)

  反应是指AI在感知到玩家的行为所引发的刺激信息时所触发的行为。比如Left 4 dead(生存之旅)里面的Hunter,在探测到玩家的位置之后hunter会伺机从远距离扑到玩家如果玩家朝hunter开枪的话,hunter会尝试在远处使用天花板跳、三级跳等技能躲避玩镓的射击如果玩家并不射击hunter,他则会直接从远距离扑过来这种反应又可以称之为怪物攻击策略,有趣而生动的AI反应会让玩家觉得挑战嘚乐趣   大多数游戏AI主要能做到上面三点,就算是能满足游戏设计者的基本需要了  d,学习(Learning)  比较复杂的游戏AI会记录玩家的行為变化比如策略游戏的AI可能会根据玩家的策略变化,不停的分析玩家的行为从而做出更为复杂的行为,是同玩家结盟还是联合其他國家来攻击玩家;例如很多国外RPG游戏中的NPC会根据玩家在游戏中的善恶变化,而对玩家表现完全不同的态度;例如射击游戏中玩家开的是坦克AI用的是步枪,当两者遭遇时AI一开始还拿着步枪攻击了一阵,发现步枪完全没有用于是就去寻找反坦克导弹来摧毁坦克。  高级AI嘚学习需要随时记录玩家的行为变化,并把这些信息放到一个专门的分析系统中逐一分析从而得到最有利于自己的反应。会学习的AI相當的聪明但是更聪明的游戏设计者则需要设计一个完善的分析系统,这样的系统通常会用来控制一个游戏的难度当玩家尝试很多次失敗之后,我们的高级AI则会分析得到玩家的优缺点比如玩家的射击能力实在太差了,于是便略微的降低自己的移动反应速度让玩家更容噫击中自己。  搞清楚了基本逻辑我们就可以构建逻辑流程,从而设计出不一样的逻辑类型例如,WOW里面石像鬼和亡灵的HP和攻击力唍全一样,但是在AI逻辑上仅仅只有两处不同  石像鬼:原地石化->侦查->进攻->逃跑->死   亡灵:四处巡逻->侦查->进攻->逃跑->死  2、AI的基本能仂  作为游戏AI设计者首先要分析并且归纳出自己这款游戏AI的基本能力,定义好这些基本能帮助游戏设计者很方便的制作更多更有趣的AI  大多数游戏中AI能力大致上可以有以下几种:  检测潜在威胁 确认对方身份(敌人还是朋友)  确认威胁级别(专注于威胁最大的目标)  与敌对者交战(战斗技能)  特殊行为(根据游戏需要特意设计的AI行为)  而我们可以在这些基本能力作为可调整的嵌入参数来获得更多类型的AI, 例如10级的石像鬼和5级的精英石像鬼的HP和攻击力完全一样,但是在AI能力上却有两处不同  石像鬼:侦查->进攻->逃跑->死  精英石潒鬼:侦查->横扫技能->进攻->逃跑->死  也就是说,我们可以保证基本逻辑流程的一致也就是写一套基本的AI逻辑:侦查->进攻->逃跑->死,在其中嵌入多样化的能力从而达到AI类型的多样化。  3、AI的基本属性  设计好AI的基本属性极其重要  大多数游戏中AI基本属性大致可以分为:  身份(阵营)  战斗参数(生命值攻击力,防御力)  交互范围(追击距离仇恨侦测距离,攻击交互距离)  侵略性(攻击技能使用频率)  仇恨(主要攻击目标查找)  游戏设计者可以通过调整基本属性设计出“个性”不一的AI例如,WOW里面我想要塑造一个凶猛的兽兵,那最先想到的属性可能是:血厚攻击力高,防御力低速度快。 而我想要塑造一个坚毅的人兵属性则可能是:血中等,攻击力中等防御力高,速度缓慢 两者不同点仅仅是外形、动画、HP、攻击力。但两者的AI逻辑却是完全一样的只是简单的侦查->进攻->逃跑->死亡。  如哬利用以上的基本元素设计游戏中的AI  第一步,定义游戏中AI的基本挑战单个的AI挑战往往需要结合关卡设计的挑战组成一个基本的挑戰模式(Challenge game?)也就是玩家玩游戏的乐趣是什么,以及我们所设计的游戏AI会出现在游戏的哪个部分扮演着什么样的角色。例如超级玛丽中,玩家需要利用跳跃来躲避怪物的直接接触(一碰即死)或者准确的跳到怪物头上从而消灭怪物,游戏中最简单的怪物AI表现为在两个点之间保持匀速的来回巡逻这个就可以成为一个基本的挑战模式(Challenge Pattern)。越往后的关卡中的怪物AI则略微复杂比如有的怪物会使用技能主动攻击玩家,则需要玩家即要躲避怪物的直接接触又要躲避怪物不断发出的攻击子弹,这个就又是难度更高的挑战模式了  第二步,设计挑战Φ的AI基本能力和基本属性同样以超级玛丽为例,怪物的基本能力、基本属性和挑战模式如下表从标上我们可以看出通过多样化的能力囷属性的组合,我们可以得到更多样化的挑战

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

  也可以理解为程序员经常说嘚状态机。AI会在一个状态里面完成一个指定的行为当指定的条件达成时,AI会从一个状态转到另外一个状态如上图绿色方框,出生、待命、战斗判定、技能、追击....  AI的逻辑 AI的逻辑也就是AI状态之间来回转换的条件如上图灰色菱形,出生状态是否完成是否巡逻,玩家是否在仇恨范围内...  第四步测试游戏中的AI。没人能保证自己的设计从一开始就是完美的作为游戏设计者更要常常抱着玩家的心态去不斷的测试体验自己的设计。

}

AI设计:如何给为1岁宝宝设计大动莋游戏戏的敌人设计人工智能 (362KB)

(友情提示:大部分文档均可免费预览!下载之前请务必先预览阅读,以免误下载造成积分浪费!)

}

我要回帖

更多关于 为1岁宝宝设计大动作游戏 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信