admin管理员组

文章数量:1531792

2024年7月4日发(作者:)

维普资讯

第28卷 

第11期 

计算机工程与设计 

2007年6月 

VO1.28 

NO.1 1 

Computer Engineering and Design 

June 2007 

浅谈用BDI模型开发智能NPC游戏角色 

朱学伟, 殷兆麟 

(中国矿业大学计算机学院,江苏徐州221008) 

摘要:现代计算机游戏是一个非常复杂的软件系统,已经越来越多地运用AI技术来更好的满足玩家的需求。虽然BDI模 

型越来越受到人们的关注,但是BDI模型并没有广泛地应用在游戏的开发上 针对这方面的矛盾,出现了面向Agent的方法。 

通过一个游戏演示了它的可能性,该演示表明这种面向Agent的方法可以有效地解决这对矛盾。 

关键词:信念.期望.意图;游戏开发;代理;非玩家角色;人工智能 

中图法分类号:TP18 文献标识码:A 文章编号:1000.7024(2007)11-2699.03 

Simple discuss on development of intelligent NPC game role using BDI model 

ZHU Xue—wei,YIN Zhao-lin 

(College of Computers Science and Technology,China University of Mining and Technology,Xuzhou 22 1 008,China) 

Abstract:Modem computer games are complex software systems,and they have grown more and more reliant on AI techniques in order 

to better entertain the customers.Although BDI model have already been paid more and more attention,it haven’t been widely used in 

hte development ofgame.Faced this problem,agent—oriented approach has been appeared.The possibility ofthe agent—oriented approach 

is demonstrated through a sample arcade style game,which also indicates that the agent—oriented approach solve the problem rightly. 

Key words:BDI;game development;Agent;NPC;A1 

0引 言 

机械地完成用户的指令;而Agent行为应该是主动的,或者说 

自发的。Agent感知周围环境的变化,并做出目标导向的行为。 

Agent理论是计算机科学和人工智能中发展很快的前沿 对于Agent而言,它所面临的一个关键问题是决定应该执 

领域,目前,Agent已经成为许多领域中通用的概念。它代表 行哪种行为从而能最好地满足设计目标。Agent结构是真正嵌 

着一种新的研究方法的诞生,并推动着人工智能走出低谷从 入环境的决策系统结构,而决策过程的复杂性受到许多不同环 

而获得新的生命。一般认为,Agent是一种处于一定环境下包 

境属性的影响。从这个意义上讲,Agent是一个在某个环境中 

装的计算机系统,为了实现设计目的,它能在各种环境下灵活 具有自治行为能力从而满足给定设计目标的计算机系统。 

地、自主地活动。Wooldridge和Jennings在总结了前人在Agent 

BDI模型是指BDI(belief-desire.intention)。BDI模型的基 

领域的一些工作后,可以得出下列Agent的特性。从广义的 本思想是在Agent的最高抽象概念级别上构造BDI逻辑模型, 

角度来规定Agent的特性,即所谓的Agent弱概念。几乎所有 

即为由B、D和I以及它们之间交互构成的逻辑系统,推理过程 

被称为Agent的软件或硬件系统都具有以下的特性: 

如图1所示。形式上定义这些成分是简单的。首先,定义Bel 

自治性:Agent运行时不直接由人或者其它东西控制,它 

为所有可能信念的集合,Des为所有可能愿望的集合,InI为所 

对它们自己的行为和内部状态有一定的控制权。 

有可能意图的集合(通常,信念、愿望、意图由逻辑公式来表示, 

社会能力或称可通信性:Agent能够通过某种Agent通信 

往往涉及到非经典一阶逻辑)。无论这些集合的内容是什么, 

语言与其它Agent进行信息交换。 都应该注意定义上的一致性,从而能够解决这样的问题。 

反应能力:即对环境的感知和影响。无论Agent生存在 

现实的世界中(如机器人、Internet上的通讯Agent、用户界面 

1游戏引擎和NPC角色 

Agent等)还是虚拟的世界中(如虚拟商场中的Agent、交互式 自Doom游戏时代以来我们已经走了很远。DOOM不只 

游戏中的Agent等),它们都应该可以感知它们所处的环境,并 

是一款伟大的游戏,它同时也开创了一种新的游戏编程模式: 

通过行为改变环境。一个不能对环境做出影响的物体不能被 

“游戏引擎”。这种模块化,可伸缩和扩展的设计观念可以让 

称为Agent。 

游戏玩家和程序设计者深入到游戏核心,用新的模型,场景和 

自发行为:传统的应用程序是被动地由用户来运行的且 声音开发出新的游戏,或向已有的游戏素材中添加新的东西。 

收稿日期:2006—05—19 E—mail:usxue@163.tom 

作者简介:朱学伟(1982--),男,江苏淮安人,硕士,研究方向为3D网络游行引擎; 殷兆麟(1946--),男,江苏徐州人,硕士,硕士生导师, 

研究方向为信息安全、人工智能、Agent、多媒体。 

・——

2699・—— 

维普资讯

图1 BDIAgent的实际推理过程 

它与游戏本身之间的主要区别就是,包含与被包含的关系。游 

戏引擎被定义为所有的非游戏特有的技术。游戏部份是被称 

为“资产”的所有内容(模型,动画,声音,人工智能和物理学) 

和为了使游戏运行或者控制如何运行而特别需要的程序代码, 

比如说AI。 

随着商业中的现代计算机游戏引擎技术的发展,现在在 

不需要扩展常规的图像引擎的资源的情况下,就能开发出非 

常逼真的效果。有着数十年开发经验的游戏公司,依附一些 

创新意识的游戏开发者和大量的时间和资本的投入,正开发 

出一些更智能的模拟环境。在游戏引擎产生之前,内容和代 

码都是集成在同一个系统中。如果要修改游戏内容,将不得 

不直接的修改源代码并且重新编译,这就使游戏开发者之外 

的任何人,想要利用游戏技术来做一些自己的事情变的不可 

能。最初的DOOMTM(ID公司)游戏打破了这种模式,并开发 

了第一款游戏引擎。这种技术将图形着色流水线的技术(这 

种技术是一小部分专家开发者的领域)和游戏的特殊方面(这 

些由游戏内容的作者和游戏开发者完成)分离开来。这样在 

游戏中将包含图像模型、动画集、声音、AI和物理学,同时也使 

那些领域专家专心的研究自己的非常精通的领域。同时为了 

进展,开发者将在开发工具和开发游戏的脚本语言上花费大 

量的精力。 

最新的趋势是游戏开发者将他们的开发工具发行到游戏 

交互区,在游戏发行之后也可以修改。这能够延长游戏的存 

储期限,通过扩展源代码来在正常的基础上提供大量新的内 

容。这些修改的内容从创建图像到整个游戏的类型(LudoCraft, 

2005)。也有可以研究使用这个工具的团体,这个团体可以很 

廉价的得到复杂的游戏引擎。游戏引擎不能完全的解决我们 

的问题,而是适当的满足我们的研究。当极其复杂时,游戏引 

擎不再是现实的模拟了。我们必须在游戏引擎的限制范围内 

工作,这些限制必须由游戏引擎开发者来改进。例如,如果我 

们想展示像运动学动画的画面,但游戏引擎又没有这样的功 

能,那么这就变的很麻烦,但不是不可能,因为我们可以组合 

它。但是,尽管有这些限制,但是它的好处和方便性远多于它 

的负面性。 

从根本上说,游戏本质上是暴力的,但是可以按照玩家的 

要求通过修改脚本语言而不是修改图像来减少这些暴力。比 

27O0一 

如像虚幻引擎的脚本语言,这个脚本语言在与游戏引擎和外 

部的客户端之间,而此客户端通过TCP/IP连接来负责接受和 

发送消息。这样有个好处就是AI可以用任何支持网络连接 

的语言或平台编写。 

利用游戏发出的信息,我们必须使用一个合适AI系统。 

直接用到的算法,如路径搜索算法A+算法,即在游戏地图中 

设置路径点,并且用脚本编写更复杂的行为。目前的游戏中, 

AI是不标准的,例如在死亡模式游戏中,机器人只能在一个有 

限的状态机中推理,如随便走动、逃走、与敌人交战等。通过 

改变机器人的速度、准确度和视野来改变游戏的难度。游戏 

是很耗费处理器时间的,当一些其它的因素,如物理性和图 

像,抢占处理器时间时,时钟周期还要处理这些附加因素。只 

要游戏任务的行为特性是变化的并且是合理的话,那么它是 

怎样完成是无关的。性能和优化是主要的因素。另一个需要 

的考虑的问题是一些计算机游戏智能水平技巧并不是必须的。 

游戏领域是相对谨慎的需求,因为只有一个有限的行为数组。 

我们旨在更加复杂的游戏类型中创造出更高级的行为,并且 

产生更加稳定的认知结构。这将需要我们通过获取专家知识 

来为特殊的游戏类型建模人类的行为特性,并且把这些信息 

转换成一个AI Agent能够利用的知识基。但是,这些接受的 

信息只能决定那些可用的AI。 

Norling(2002)就利用Quake引擎进行了相识的工作。他们 

报告了一些限制,其中包括由于游戏服务器中发送信息的缺点 

使得不能建模行为,特别是在拱门处扔出手雷,但手雷还弹向 

机器人时。当游戏引擎不能发送消息来鉴别Agent是否在拱 

门下面时,这样系统就不能建模。如果使用更加灵活的虚幻引 

擎的话,我们就可以弥补这些缺点。在部分可见的环境中, 

Agent不能看清每件事情,而这些事物在环境中动态的变化着, 

环境也在不断的变化着。有些因素是并发的,并且这些因素也 

是不可预知的。行动是非确定性的,并且也有这种可能:尽管 

Agent被派遣去完成一个目标,但又不能够完成这个目标。 

例如,Agent想通过寻找血包来增加自己的血长(生命)。但 

又不能保证这个行动能够成功,因为其它因素会干扰这个行 

动。在收集血包的路上,Agent可能受到伤害甚至死亡。AI引 

擎必须利用从游戏服务器发来的信息来相应的改变它的行为。 

Agent必须建立一个环境的内部描述图,计划一系列被限制在 

可用命令的行动来执行计划,并且观察这些结果。这个剧本越 

来越接近于现实生活开放系统,这个系统运用在机器人和其相 

关的技术上。同时这个剧本也将支持一些领域上的研究,这些 

领域包括交互系统、审思系统、知识系统、记忆和学习、计划等。 

我们想使用虚幻锦标赛(Epic游戏)游戏引擎,它提供了高 

性能的实时3D图像平台。这个游戏通过由开发者提供的一套 

工具,包括与C语言相似的用来定制物理性和行为的虚幻脚本 

语言和一个用于设计游戏关卡的图像地图编制器。游戏由地 

图组成,这些地图由关卡设计者创建,并且指定图像、对象、节 

点或路径节点的网络。游戏中的角色可以是玩家的盟友或敌 

友,这些角色被认为是“机器人”。机器人利用嵌入在游戏地图 

中的路径点在游戏中“走动”。最初的游戏包括多个游戏模式, 

如组队模式,个人模式,并且允许人对人,Agent对Agent和人对 

Agent组队模式。主要的组队模式被称为“夺旗”——把游戏里 

维普资讯

的角色分成两边对立的组,每个组将对方的旗帜抢来并回到自 

己原有的基地,并且保护自己的旗帜不被抢走,就算取胜。其 

它游戏的类别有死亡模式,即尽可能的多杀死对手。 

虚幻锦标赛和GameBots系统将消息定义为两个类型:服 

务器消息和客户端消息。从服务器上传出的消息提供了感知 

信息,用来描述游戏中的机器人能看见什么,同时也包括一些 

机器人自身的物理状态信息,如健康、盔甲等。服务器也发送 

并且让游戏玩家时间来感觉与智能的相互影响。展示这种类 

型的游戏应该包含战略游戏,如挽救人质或依据任务编制成 

组。虚幻锦标赛将自己导向为这种类型的游戏,并且可以非 

常灵活的修改成产品。一旦定格了游戏,将开发出知识基础 

的轮廓,并且策略必须可以被Agent所使用。这个任务将耗费 

单独的开发时间。 

我们已经开发了一个简单的Digger游戏,如图3所示,它 

通过TCL语言连接了JACK。选择Digger是因为它与一些FPS 

些其它的信息,如当Agent受到攻击时的被射击的方向。客 

户端的信息遵循了命令的格式来指导Agent完成任务,如旋 

转、行走、射击等。 

GameBots系统允许客户端可以访问本地AI系统,并且允 

游戏,如虚幻锦标赛,有共同的特性。需要Agent根据路点来 

导航周围的环境,并且能够通过障碍物。Agent能通过协作来 

捕捉敌人,并且Agent能脱离Agent组。这个游戏是开放和动 

许一些命令,如GETPATH来获取两个位置之间的一系列路 态的,并且大多数知识基利用更智能的游戏引擎被应用于更 

点, TO来使机器人按照定义好的路径行走。GameBots/Ja— 

深的开发。 

vaBots系统的另一个好处是可以使用一个外部扩展的游戏环 

境。GameBots系统的结构如图2所示(玩家直接连接到uT服 

务器,而机器人连接到GameBots模块上)。 

玩家和 

机器人 

图3 NETDigger游戏画面 

单个电脑 

机器人 

3结束语 

单个玩家 

在这篇文章中,大体的讲述了开发人工智能和高性能的 

图2 GameBots系统的结构 

图像引擎的优点与缺点。使用商业上的游戏引擎(包括虚幻 

锦标赛和与它相联系的工具)的优点是允许游戏设计者只需 

NPC(non player character)这个概念最早起源于单机版游 要把精力集中在AI的建模上和模拟器上,而不是花费大量的 

戏,逐渐延伸到整个游戏领域,指由服务器或电脑控制的角 

时间在开发图形引擎上,作为一个商业游戏引擎,这是最基本 

色。这些角色包括商人,技能训练师,人物相关角色,闲谈角 

的要求。上面已经提到使用商业游戏引擎也是有缺点的;但 

色,以及风情角色。做任务时需要对话的人物,以及怪兽都属 

是,这些限制并没有明显的影响到开发和系统的使用上。BDI 

于NPC。 

构架已经成为我们的AI系统需求的一个合适的系统范式。 

开发一个AI Agent,这个Agent必须能够认识环境、依据 

最后,如果一个系统用到了JACK,GameBot/JavaBot和虚 

目前的状态制定计划、执行这些计划,并且当执行计划时, 幻锦标赛,那么这个系统就为测试虚拟世界的AI Agent提供 

Agent能够监视环境来确保此计划仍然是可行的。Agent必须 

了一个很好的开发平台。接下来主要包括对GameBoffJACK 

体现这样的能力:适应并改变计划来增加行为的灵活性,这就 

接口的开发,这个接口将用到更加智能的技术,如感情、物理 

使Agent的行为变的不可预测。 

限制将添加到系统当中去。 

除计划建模之外,也要为临时角色建模,这些临时的角色 

影响决策的决定过程,如感情、社会性和自身的物理特性等。 

参考文献: 

这些包括组队工作的每个元素,Agent将通过分配任务来协调 【1] 史忠植.智能主体及其应用【M].北京:科学出版社,2001. 

相互之间的关系。最后,在一个资源有限的机器里,程序需要 [2] 康小强,石纯一.基于BDI的多Agent交Tf[J].计算机学报,1999, 

立即执行计划。 

(11):1166—1171. 

2应用举例 

[3] 董红斌,石纯一.一个多Agent系统模型[J]_小型微型计算机系 

统,2000,21(7):740—743. 

我们在开始开发人工智能之前,我们首先需要定义和设 

[4] 刘甘林,黎建兴,彭代文,等.一个基于BDI的Agent框架[J]_长 

计游戏的类型,在这些类型中模拟人类推理是有好处的。我 沙大学学报,2004,1 8(4):62—64. 

们已经说明了诸如FPS(ifrstperson shooting)死亡模式能够用简 

[5] 郭中,王惠芳,黄永忠,等.一种BDI模型的实现框架[J]_计算机 

单的规则和令人满意函数来开发。游戏是一个更慢的速度, 工程与设计,2002,23(9):26—28. (下转第2704页) 

2701— 

维普资讯

的耦合变量 ,系统级优化器在每次综合和协调时都要将其 

期望值传递给子优化器,这一期望的初值可取该变量取值范 

围内的中间值,第一次协调之后,后面传递的耦合变量都是其 

它子系统传递给系统级优化器的最优值的平均值。 

毯 

子系统在接收到相应的参数及取值范围后,在其搜索范 

喇 

围内对其本身的参数进行搜索,并对搜索到的多个个体检测 

内部变量及耦合变量是否满足约束条件,并根据约束条件的 

满足程度计算各个个体的局部目标函数,并将局部目标函数 

值、各内部变量取值及耦合变量取值返回上级优化器。 

演化代数 

……-

系统级优化器综合各子优化器的返回值,各子优化器组 

最佳适应值;——・一平均适应值 

合成一个整体,分别根据各变量取值再次检测全局约束,若全 

图4协同演化适应值变化曲线 

局约束也满足,并且达到终止条件,则演化完成。否则对未满 

足耦合约束的两个耦合子优化器都进行惩罚,修改其个体适 

短,提高寻优速度。②各子优化问题代表了相应的子工程,与 

应值。以修改后的适应值作为选择的基准,在方案层次上进 

工业界现有的设计流程一致,具有模块化设计的特点。③各 

行新一轮的演化操作,从而调整子优化器的下一步搜索方向, 

子问题设计有很强的自主性,保持各自的分析设计自由,子问 

使双方都朝整体最优的方向演化。子细部个体经过适应调整 

题的相互影响在系统级优化中体现。④由于子问题优化相互 

后,与耦合变量的平均值再回到子优化器中,作为下一轮子细 

独立,因此各子问题已有的分析设计软件能较好地移植到相 

部演化的初始个体和耦合变量的期望值,再进行新一轮的遗 

应的子问题分析设计过程中,有利于分析设计的继承性。 

传操作,直到满足终止条件为此。 

参考文献: 

3算例分析 

[1] Jean M Claverie,Kenneth De Jong,Alaa F Sheta.Robust non- 

5 5 5 5 4 4 4 4 4 

某国际贸易中心:工程占地面积270

4 3 2 1 5 9 8 7 6 5 

9 Tn2,基坑周长208.2m。 

linear control design using competitive coevolution[C].La Joll ̄ 

将其它工程地质条件输入专家系统初选后删除了一些不可行 

CA.USA:IEEE Proceedings of the Congress on Evolutionary 

方案,留下锚固式排桩支护和截水帐幕止水。进一步用协同 

Computation,2000,(1):403-409. 

演化算法对初选方案进行优化。优化问题分为两个子问题: 

[2】 李敏强,寇纪淞.遗传算法的基本理论与应用[J .北京:科学出 

锚固式排桩支护和截水帐幕止水。系统级优化器的优化目标 

版社.2002. 

为造价最低,方案层种群规模为5,演化代数为l2,交叉率为 

[3] 周东.基坑支护工程遗传优化设计研究[D].南宁:广西大学博 

0.8,变异率为0.2:子系统优化器的优化目标是细部造价最低 

士学位论文,2002. 

且满足耦合约束,细部层种群规模为l5,演化代数为40,交叉 

[4] 陈秋莲,李陶深.基于遗传算法的基坑支护协同演化处理模型 

率为0.4 ̄0.9,变异率为0.1 ̄0.5。 

[J】.计算机应用,2004,24(10):139-140. 

图4为系统级优化器的优化结果,演化过程中方案层的 

[5] Maher M L,Poon J.Modeling desing exploration as co—evolution 

适应值呈现上升的趋势。演化的最终结果选择“钻孔灌注+二 

[J】.Microcomputers in Civil Engineering,1996,ll(3):195-209. 

层锚杆+桩问高压摆喷桩止水”方案。优化结果与实际工程所 

[6】 余雄庆,薛飞.用遗传算法提高协同优化方法的可靠性[J】.中国 

采用的支护方案基本吻合,最大差别是桩长,实际工程中桩长 

机械工程,2003,14【21):1808-l8l1. 

为35 m,而优化结果为28 m。造价较实际工程节省了25%。 

[7] Martins J R R A.A coupled-adjoint method for high-ifdelity 

aero.structural optimization[D】.Stanford,CA:Department of 

4结束语 

Aeronautics and Astronautics,Stanford Universiyt,2002. 

基坑支护协同演化优化设计系统有如下优点:①将原问 

[8] Wiegand R P.An naalysis of cooperatvie coevoltuionary algori- 

题按结构进行分解,并行优化,使原来很长的染色体长度缩 

thms[D].Virgina:George Mason Universiyt,2003. 

(上接2701页) 

[6] 胡山立,石纯一.Agent.BDI逻辑[J】.软件学报,2000,ll(10): gaming simulation[J].Simulation,2004,80(12):647-657. 

1353.1360. [10]Jacobson J,Hwang Z.Unreal Tournament ofr immersive inte-[ac- 

[7] 胡山立,石纯一.一个改进的理性Agent-BDI模型[J】.计算机研tive theater[J].Communications ofthe ACM,2002,45(1):39-42. 

究与发展,2000,37(9):l125.1129. [11]DeLeon BerryR.BringingVRtothedesktop:Areyougame? 

[8】 胡山立,石纯一.Agent的意图模型[J】.软件学报,2000,l】(7): [J】.IEEE Multimedia,2000,7(2):68-72. 

965.970. [1 2】Li Musi lek Kurgan L.Battleciyt Revived:Game desing 

[9]Phongsak Prasithsangaree,Joseph Manojlovich,Stephen Hug- with BDI.net[c].Alberta,Canada:Proceedings of hte Fourth 

hes,et a1.UTSAF:A multi-Agent-based software bridge ofr in- ASERC Workshop on Quantiattvie nad Soft Computing Based 

teroperabiliyt between distributed military and commercial Software Engineering,2004.24-28. 

27O4— 

本文标签: 游戏优化引擎系统设计