人工智能课程论文人工智能在游戏开发中的应用姓名:XXX学号:XXXXXXXX人工智能课程论文——XXX(XXXXXX)人工智能在游戏开发中的应用XXX(南京理工大学计算机学院,江苏南京210094)摘要:本文介绍了常用游戏AI技术,总结了游戏AI的设计原则,并提出了游戏AI的发展趋势,对游戏设计和开发人员具有一定的指导意义,也有助于玩家从设计角度认识电脑游戏。关键词:游戏AI游戏AI技术游戏角色人工智能课程论文——XXX(XXXXXX)引言人工智能(简称AI)是一门综合性学科,旨在研究如何利用计算机等现代化工具种系统来模仿人类的智能行为。游戏中的人工智能(简称游戏AI)可以理解为所有由计算机在游戏中所做的“思考”,它使得游戏表现出与人的智能行为、活动相类似,或者与玩家的思维、感知相符合的特性。在电脑游戏的设计和开发中应用人工智能技术,可以提高游戏的可玩性,改善游戏开发的过程,甚至会改变游戏的制作方式。游戏人工智能是人工智能科学技术领域一个新兴的、活跃的学科分支,是计算机游戏和人工智能相结合的产物。人工智能是近几年游戏业界的焦点所在,随着人工智能理论研究的进展,许多现代游戏都具有了很多的智能成分。而采用大量的游戏人工智能显然是使你的游戏鹤立鸡群的重要手段之一,高质量的游戏AI已经不再是为提高游戏运行速度才予以考虑的东西,它现在已是和图形或声音一样,成为游戏设计过程的极为重要的一个部分,它是促进还是阻碍游戏产品畅销的一个决定性因素[1]。目前,越来越多的游戏公司宣称他们的游戏开发项目中包括至少一名专业AI程序员,而越来越多的游戏开发者正竭尽所能研究新的AI技术,以藉此构筑更好、更聪明的游戏AI。他们想要探索新的理念,使AI技术进入下一代,到那时,AI不仅是要创造有趣的游戏对手,而且还要使这个对手能够与玩家交谈,能和众多的在线冒险家周旋,能在一个一个的游戏中不断学习,使它在下一轮的游戏中变得更加聪明机智。目前,游戏开发中的人工智能正处于一场革命之中,人工智能的迅速发展必将推动整个游戏产业的飞速发展。一、电脑游戏和游戏AI电脑游戏中的人工智能从功能上可分为个体智能系统和群体智能系统。个体智能系统主要控制游戏世界中虚拟人物的活动,它们在游戏中充当非玩家的各种角色,包括玩家的敌人、合作伙伴和其它人物角色等。对于这些类型的实体,要想比较真实地对它们进行模拟,必须通过人工智能控制它们的行为符合它们各自特定的身份。群体智能系统则主要为某个系统的多个个体或者环境活动提供控制和辅助决策。例如,战略游戏中的战斗形势判断、整个战斗策略推理、各个战斗部队调动等。目前,大部分电脑游戏都使用了人工智能,作为游戏的核心,人工智能能提供更多、更为真实的游戏挑战,激发玩家的兴趣。另外,人工智能在游戏可玩性方面往往也起着决定性因素,把人工智能应用于游戏中,会使玩家感觉到游戏中的人物行为具有令人信服的合理性,从而吸引玩家,并有效促进游戏开发的成功。二、游戏智能的系统结构一个游戏AI系统可以分为以下几个部分[2],如图1所示:人工智能课程论文——XXX(XXXXXX)图1游戏AI系统结构示意图感知输入子系统:它是游戏AI系统的最基本部分。所有AI系统都必须能感知它们周围的世界,才能使用这些信息作进一步的推理和分析。周围世界中哪些信息在何种程度和范围内被感知,取决于正在开发的游戏类型。记忆存储子系统:它负责将所有感知的信息、数据和知识等,以合适的方式在计算机内表达和存储。游戏中感知数据和知识的存储是一个较为复杂的过程,很多数据并不是按一种直接的方式存储。分析推理子系统:它使游戏AI系统的核心。它通过感知到的数据和存储记忆体中的知识分析当前的状况,并做出一个合理的决策。做出决策的快慢取决于可选择的决策数目的多少,以及所需要考虑的感知信息的多少。决策行为子系统:它主要负责把计算机做出的各种决策和行为,作用到游戏世界中的人物角色上。在游戏开发中,人工智能最终都要通过各种动作、行为和反应表现出来,这样玩家在游戏中才能实实在在地感受真实的智能。三、游戏AI技术人工智能是多种智能技术的组合体,在电脑游戏中,每一种技术在游戏中都有较固定的应用。常见的游戏AI技术包括以下几种:1.有限状态机有限状态机(FiniteStateMachine,i.e.FSM)也是计算机游戏中应用普遍的人工智能模型。通常,这类系统描述了一个事件驱动系统模型,易于规则表达。一般的,状态机可以用状态转移图的方式描绘。其中的节点表示不同的状态,不同状态之问由于触发条件而发生转换,用弧线表示。状态转换的条件写在弧线上方,旁边是当转换发生时的可能输出。图2为吃豆游戏《Pac.Man》中Ghost的有限状态机实例。记忆存储分析推理感知输入决策输出周围环境角色行为人工智能课程论文——XXX(XXXXXX)图2Pac·Man中Ghost的有限状态机框图有限状态机在游戏中可以构成管理游戏世界(Gameworld)的基础,模拟NPC的情绪状态[3],维持游戏的状态,分析玩家的输入,或者管理对象的状态。就有限状态机的实现上,文献[4]给出了一个有限状态机的C++类实现。此外,由于状态机的滥用,可能导致程序可读性差,调试困难,性能下降。针对这个问题,SteveRabin[5]提出一种以简单语言来组织有限状态机的鲁棒方法。继而,文献[6]将该方法拓展,用消息机制考虑了人工智能对象间通信的问题,包括状态机之间的切换、同步等。作为一般有限状态机的扩展,模糊状态机(FuzzyStateMachine,i.e.FuSM)也是较为常用的模型[7]。这种模型可以实现不可预测的行为,即游戏每次都有可能产生不同的行为结果,从而为玩家提供更多乐趣,也具有更大的重玩可能性。这也是智能行为的一种表现。模糊状态机的典型运用包含NPC或玩家角色的生命值定义,赛车游戏中汽车的加速与制动[8],NPC情绪的模糊状态等。文献[9]给出了一个通用的C++模糊状态机设计。与一般状态机类似,模糊状态机也存在模糊状态增加而导致的组合爆炸。文献[10]提出了Combs方法用于解决组合爆炸问题。传统系统中的规则通常考虑输入集合的组合同输出之间的关系,而Combs则考虑各个集合同输出之间的关系,每次为一个变量创建规则。2.脚本语言脚本语言是一种解释性语言,通常用于控制游戏中的AI模式。它在游戏中可以驱动事件、为非玩家角色的智能行为建模、实现某些任务的自动化等功能。3.模糊逻辑该方法采用实数值来表示对象属于集合的程度。与传统逻辑相比,模糊逻辑的表达能力更为丰富和细致,因而能够进行更好的推理.它常用游戏中的战略决策,输入输出信息的过滤,非玩家角色的健康状态计算以及情绪的状态变化等。4.决策树决策树一般都是自上而下的来生成的。每个决策或事件(即自然状态)都可能引出两个或多个事件,导致不同的结果,把这种决策分支画成图形很像一棵树的枝干,故称决策树。死亡逃离玩家追逐玩家(主状态)复活四处游走玩家再生玩家死亡玩家吃掉能量球能量球耗尽玩家吃掉Ghost变成阴暗返回中央走出房间人工智能课程论文——XXX(XXXXXX)树决策树类似于一系列IF-THEN形式的条件判断。这种技术在游戏中可用于分类、预测和学习。5.神经网络神经网络是一种模范动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。神经网络具有初步的自适应与自组织能力。在学习或训练过程中改变突触权重值,以适应周围环境的要求。同一网络因学习方式及内容不同可具有不同的功能。人工神经网络是一个具有学习能力的系统,可以发展知识,以致超过设计者原有的知识水平。通常,它的学习训练方式可分为两种,一种是有监督或称有导师的学习,这时利用给定的样本标准进行分类或模仿;另一种是无监督学习或称无为导师学习,这时,只规定学习方式或某些规则,则具体的学习内容随系统所处环境(即输入信号情况)而异,系统可以自动发现环境特征和规律性,具有更近似人脑的功能。在游戏中,神经网络可用于分类、预测、学习、模式识别、行为控制等。6.遗传算法遗传算法是近年来发展起来的一种崭新的全局优化算法。它借用了仿真生物遗传学和自然选择机理,通过自然选择、遗传、变异等机制,实现各个个体的适应性的提高。从某种程度上说遗传算法是对生物进化过程进行的数学方式仿真。遗传算法对求解问题的本身一无所知,它所需要的仅是对算法所产生的每个染色体进行评价。把问题的解表示成染色体,并基于适应值来选择染色体,使适应性好的染色体有更多的繁殖机会。在执行遗传算法之前,给出一群染色体,也即是假设解,然后,把这些假设解置于问题的“环境”中,也即一个适应度函数中来评价。并按适者生存的原则,从中选择出较适应的染色体进行复制,淘汰低适应度的个体。再通过交叉,变异过程产生更适应环境的新一代染色群体,再对这个新种群进行下一轮进化,直到最适合环境的值。遗传算法通用实现过程:(1)对待解决问题进行编码;(2)随机初始化群体;(3)计算群体上每个个体的适应度值:(4)评估适度,对当前群体中每个个体计算其适应度:(5)按预定的选择算子产生后代;(6)对后代进行交叉操作;(7)对后代进行变异操作;(8)判断是否满足停止条件,满足转第3步,否则进入9;(9)输出种群中适应度值最优的个体。这种技术试图直接模拟生物进化过程,在一系列的程序、算法和参数之间作出选择,杂交以及随机的变异和交叉。在游戏中,可用于优化、学习、策略形成,行为进化等方面。另外,其它的AI技术还有基于范例的推理、搜索方法、情景演算、机器学习等。在智能游戏中,或多或少地都采用上述的技术,所获得的效果也各不相同。其中脚本语言、A*路径搜索、模糊逻辑等技术已较成熟,而神经网络和机器学习等高级技术尚处于尝试中。实践证明,有限状态机、决策树、产生式系统这类简单技术在游戏中最有效并得到了广泛的应用。人工智能课程论文——XXX(XXXXXX)四、游戏引擎与人工智能随着软硬件的发展,现今的计算机游戏的复杂度已经达到了一个难以想象的高度。这不仅表现在游戏程序设计上,更表现在够整合大量的不同的人力资源和数据资源的一套完整的系统上。例如,先进的3D图形技术提高了游戏世界的细节的表现力,导致游戏项目中美术工作者所占全部开发者的比重和游戏中在程序逻辑之外的数据部分的显著增加。这就造成了数据整合工作的困难和游戏复杂度的相应提升。于是游戏引擎的概念应运而生:为了减少重复开发工作以降低开发成本,不同的游戏可以共用相同的游戏引擎。游戏引擎不但提供数据整合、关卡设计的工具,更为编程人员提供了统一的接口,使底层的实现得到封装和重用。这为游戏AI的设计提供了基础,提供了游戏中的角色所能进行的行为的一个层次描述。这里分层次的的系统设计起着重要的作用。例如,一个只支持游戏中角色的位置变动层次的游戏引擎,显然不需要为其角色的肢体行为设计人工智能。而即使是提供了低层细节(例如程序中对角色肢体的控制)的游戏引擎,也应该可以限定人工智能模块工作在较高的层次之上(例如仅仅用AI程序处理角色的位置移动),这降低了问题的复杂度。所以在设计与实现游戏中的人工智能之前,首先应该完成基本的游戏引擎系统的设计,明确游戏引擎提供的接口的层次结构和人工智能设计的最小粒度。这相当于明确人工智能所要处理的问题的定义。由于具有相似的应用环境,游戏程序可以采用与机器人的三层软件体系结构相似的体系结构[11]。在机器人学中,机器人的软件体系结构必须决定如何将反映式控制和基于模型的思考模式相结合。反应式控制是传感器驱动的,适合于实时地制定低层次决策,而思考式控制适用于依赖于在进行决策的时候不能感受到的信息的全局控制决策。混合体系结构将反应与事先思考相结合。而最为流行的混合体系结构是三层体系结构,它由一个反应层、一个执行层和一个思考层组成。反应层为机器人提供低层次的控制,具有紧密的传感器一行动循环。执行层接受思考层发出的指令,序列化以后传送给反应层,起着反应层和思考层之间的粘合剂的作用。思考层利用规划生成复杂问题的全局解。相应于机器人的三层体系结构,