博舍

浅谈人工智能与游戏思维 人工智能 游戏

浅谈人工智能与游戏思维

具体过程如图1所示:首先玩家眼球捕捉显示屏上的游戏画面并在视网膜上形成影像;然后经过视觉神经传至V1区,并提取线条、拐点等初级视觉信息;初级视觉信息经过V2区传至V4区,并进一步提取颜色、形状、色对比等中级视觉信息;中级视觉信息经过PIT传至AIT,进而提取描述、面、对象等高级视觉信息并传至PFC;在PFC进行类别判断,并根据已有的知识制定决策,然后在MC的动机的促发下产生行为指令并传至响应器官(手);响应器官执行操作;至此,玩家的游戏机制已经完成。计算机在接收到玩家的输入(键盘、鼠标等)以后,根据游戏的内部逻辑更新游戏状态,并发送至输出设备(显示屏、音箱等)展示给用户,自此计算机游戏环境更新完成。然后玩家展开下一次游戏机理,并循环直至游戏结束或玩家放弃游戏。

图1人类游戏机理

3.2计算机的游戏机理

游戏人工智能旨在创造一种熟练操作游戏的智能体,而想要让机器玩好游戏,我们就需要了解“它”玩游戏的机理,这样才能更好地改进它。

计算机的游戏机理如图2所示:首先通过某种方式(读取视频流、游戏记录等)获得环境的原始数据,然后经过去重、去噪、修正等技术对数据进行预处理,并提取低级语义信息;然后经过降维、特征表示(人工或计算机自动提取)形成高级语义信息;然后通过传统机器学习方法进行模式识别,进一步理解数据的意义;最后结合先前的经验(数据挖掘,或人工提取,或自学习产生的领域知识库)决策生成行动方案,进而执行行动改变环境,并进行新一轮的迭代。在每次迭代的过程中,智能体还可以学习新的经验和教训,进而进化成更加智能的个体。

图2计算机游戏机理

3.3游戏的一般性机理

从人类和计算机的游戏机理,我们可以总结出游戏玩家的一般性机理,如图3所示:游戏玩家可以看做是一个态势感知过程,接收原始数据作为输入,输出动作序列。其中,在内部进行态势觉察产生低级语义、态势理解形成高级认知、态势预测估计将来的态势,并根据未来态势进行游戏的威胁评估,再根据已有的经验和规则,在目标和动机的驱动下产生行动方案,从而指导游戏向更有利于玩家的方向进行,最后进入下一个循环序列。

图3游戏一般过程机理(SA图源于Endsley)

游戏的一般性机理还可以看做是一个“状态”到“动作”的映射,游戏的环境状态、玩家的目标是自变量,玩家的操作是因变量,而映射关系正是游戏一般机理的核心部分。它可以通过如神经网络这种技术来对自变量进行特征提取和表征,也可以直接使用自变量,利用公式计算获得输出值,进而映射到相应的动作。

4、里程碑

自香农发表计算机象棋博弈编写程序的方案以来,游戏人工智能已经走过了半个多世纪,在这70个春秋的风雨兼程中,无数的科学家贡献了自己的才华和岁月,所取得的成果更是数不胜数,本文罗列了游戏人工智能的重大里程碑,意欲读者能够把握游戏人工智能的研究现状,为今后的研究方向给予启示,具体如表1所示:

表1游戏人工智能里程碑表

年份名称作者描述及意义1950计算机象棋博弈编写程序的方案克劳德·艾尔伍德·香农机器博弈的创始;奠定了计算机博弈的基础。1951Turochamp艾伦·麦席森·图灵第一个博弈程序;使用了博弈树。1956西洋跳棋阿瑟·塞缪尔第一个具有自学习能力的游戏;使用了强化学习算法,仅需自我对战学习就能战胜康涅狄格州的西洋跳棋冠军。20世纪60年代国际象棋弈棋程序约翰·麦卡锡第一次使用Alpha-beta剪枝的博弈树算法;在相同计算资源和准确度的情况下,使得博弈树的搜索深度增加一倍。1980Pac-manNamco公司第一次使用了一系列的规则与动作序列及随机决策等技术;1990围棋弈棋程序艾布拉姆森第一次将把蒙特卡洛方法应用于计算机国际象棋博弈的盘面评估;1996Battlecruiser3000AD3000AD公司第一次在商业游戏中使用神经网路;1996CreatureNTFusion公司第一次引入“DNA”概念、遗传算法1997DeepBlueIBM公司第一个达到人类国际大师水平的计算机国际象棋程序;使用了剪枝的博弈树技术,以3.5:2.5战胜世界棋王卡斯帕罗夫2011WatsonIBM公司第一次在智能问答方面战胜人类;使用了DeepQA技术,战胜了Jeopardy!超级明星KenJennings和BradRutter2013玩“Atari2600”的程序DeepMind团队第一个“无需任何先验知识”“自学习”“可迁移”的游戏引擎;使用了CNN+Q-learning的DRN技术,输入为“原始视频”和“游戏反馈”,无需任何人为设置,可从“零基础”成为7款“Atari2600”游戏的专家。2016AlphaGoGoogleDeepMind团队第一个在全棋盘(19*19)无让子的情况下战胜人类专业棋手的“围棋程序”;使用了SL(有监督学习)+RL(强化学习)+MCTS(蒙特卡罗树搜索)方法,战胜了欧洲围棋冠军FanHui。

当你设法创造一个具有人类智能的生命体时,可能会感觉无从下手;一旦深入下去,你会发现:只需要对你所看到的做出响应就可以了。[1]有限状态机就是这样把游戏对象复杂的行为分解成“块”或状态进行处理的,其处理机制如图4所示:首先接收游戏环境的态势和玩家输入;然后提取低阶语义信息,根据每个状态的先决条件映射到响应状态;接着根据响应状态的产生式规则生成动作方案;最后执行响应动作序列并输入游戏,进入下一步循环。由图4和图2比较可知:有限状态机方法是计算机游戏机理的一种简单实现:根据规则人为将原始数据映射到“状态”完成“特征工程和识别”,根据产生式系统将“状态”映射到响应的动作完成“决策制定”,而对游戏态势理解、评估和游戏动机透明。

图4有限状态机游戏机理

那么理论层次上的“有限状态机”又是怎么描述的呢?有限状态机是表示有限个状态以及在这些状态之间转移和动作等行为的特殊有向图,可以通俗的解释为“一个有限状态机是一个设备,或是一个设备模型,具有有限数量的状态,它可以在任何给定的时间根据输入进行操作,使得从一个状态变换到另一个状态,或者是促使一个输出或者一种行为的发生。一个有限状态机在任何瞬间只能处在一种状态”[2]。通过相应不同游戏状态,并完成状态之间的相互转换可以实现一个看似智能的游戏智能引擎,增加游戏的娱乐性和挑战性。

有限状态机这种实现方式固然简单易懂、容易实现,但是游戏状态的划分、响应动作的制定都直接依赖于人类的先验知识,并决定了游戏的智能水平;因为游戏处理的时间和空间复杂度随着游戏状态的增多而指数型增加,所以有限状态机只适用于状态较少的游戏;有限状态机还有一个致命缺陷就是难以处理状态碰撞的情况。

5.2搜索

图5博弈树游戏机理

“人无远虑,必有近忧”,如果能够知晓未来的所有情况并进行评估,那么只需要筛选出最好的选择路径就可以完成决策。搜索在棋类游戏的智能实现中备受青睐,其中表现最优秀的是搜索树和蒙特卡洛搜索树。与游戏的一般性机理相比,搜索的游戏人工智能更关注的是预测和评估,而决策的制定只是挑选出预测的最好方式即可,如图5所示。

搜索的实现方式直观易懂,如果穷尽搜索一定可以找到游戏的全局最优值,而且它适用于一切游戏智能实现。但是搜索成功的前提是准确的态势评估和搜索深度,而态势评估一般是专家制定的,即使是使用机器学习学得的评估函数依然很难客观衡量当前态势,搜索的时空复杂度更是随着搜索的深度呈指数型增长。

5.3有监督学习

分类、拟合是有监督学习方法,也是实现游戏人工智能的重要方法,旨在在有标签的数据中挖掘出类别的分类特性。无论什么游戏,人类都是在不断的学习中才成为游戏高手的,棋类游戏更是需要学习前人经验并经过专门的训练才能有所成就。经过几千年的探索,人类积累了包括开局库、残局库、战术等不同的战法指导玩家游戏。与游戏的一般性机理相比,有监督学习更关注的是预处理、态势理解和态势预测,首先需要对数据进行去重、去噪、填充缺失值等预处理,然后分析数据并提取数据特征,再使用机器学习算法从数据中挖掘潜在信息并形成知识,实现对当前态势的直观描述或者态势到决策的映射,具体如图6所示。GoogleDeepMind的围棋程序AlphaGo就使用了有监督学习训练策略网络,用以指导游戏决策;它的SL策略网络是从KGSGO服务器上的30,000,000万棋局记录中使用随机梯度上升法训练的一个13层的神经网络,在测试集上达到57.0%的准确率,为围棋的下子策略提供了帮助。[3]

图6有监督学习机理

在无人工参与的情况下,有监督学习能够从数据中自主学习成为游戏高手,而且通过不同的有标签数据训练,同一模型无需改动或者做极小改动就可以适用于不同的游戏。但是,“rubbishin,rubbishout”,数据的质量和数量直接决定了有监督学习模型的性能,而且有监督模型一般存在欠拟合和过拟合的现象,有的算法还极易陷入局部最优解,除此之外模型参数的选取也直接决定了智能体的智能水平。

5.4遗传算法

遗传算法是进化算法的一种,它模拟达尔文进化论的物竞天择原理,不断从种群中筛选最优个体,淘汰不良个体,使得系统不断自我改进。游戏的不同智能体通过遗传算法不断迭代进化,可以逐渐从一个游戏白痴自主进化成为游戏高手,而无需依赖人类知识的参与。

图7遗传算法游戏机理

在系统中,每个个体是一个游戏智能体(一种游戏智能的实现方式,能根据游戏输入产生决策输出),并通过某种映射转化为一串遗传信息,这串信息代表了我们所要优化游戏智能体的全部特征。如图7所示,与游戏的一般性机理对比,遗传算法更关注决策指定,旨在通过一定数量的游戏智能体(可能是随机生成的,也可能是人为指定的,也可能是机器学习学得的)自我进化出一个具有高超游戏水平的游戏智能体,从而实现游戏态势到应对方案的正确映射。遗传算法维持一个由一定数量个体组成的种群,每一轮都需要计算每个个体的适应度,然后根据适应度选出一定数量存活的个体,同时淘汰掉剩余落后的个体。随后,幸存的个体将进行“繁殖”,填补因为淘汰机制造成的空缺,从而维持种群的大小。所谓的繁殖,就是不同个体组合自己本体的一部分形成新的副本。然而为了实现进化,必须要有模仿基因突变的机制。因此在复制副本的时候也应当使得遗传信息产生微小的改变。选择-繁殖-突变这样的过程反复进行,就能实现种群的进化。

遗传算法是一种与问题领域无关的自学习算法,可以在无人为参与的情况下实现游戏智能,而且遗传算法可扩展性强,可以组合其他游戏智能实现技术获得更加智能的游戏个体。但是遗传算法一般只能获得满意解,而不能获得最智能的游戏智能体;而且参数、适应性函数的确定需要不断尝试,否则会严重影响游戏个体的智能性;另外,遗传算法求解速度很慢,要得到游戏较智能的个体需要较多的训练时间。

5.5强化学习

一无所知的游戏智能体通过不断地与环境交互来改进自己,进而趋利避害,这就是强化学习。如图8所示,与游戏的一般性机理相比,强化学习更关注决策制定,它内部维护一个策略函数,通过对游戏态势做出决策从而获得反馈,并不断改进策略函数使得针对环境态势、自身决策获得最大报酬值,让游戏结果向着有利于游戏智能体的方向发展,不断迭代这个过程就可以获得态势到决策的最优映射。

图8强化学习游戏机理

强化学习有着坚实的数学基础,也有着成熟的算法,在机器人寻址、游戏智能、分析预测等领域有着很多应用;而且强化学习是一种与问题领域无关的自学习算法,可以在无任何人为参与的情况下实现游戏智能。但是强化学习对于连续、高维的马氏决策问题将面临维数灾难,而且学习效率不高、在理论上的收敛性也难以保证。[4]

5.6DRN

DRN是GoogleDeepMind在“PlayingAtariwithDeepReinforcementLearning”中结合深度学习和强化学习形成的神经网络算法,旨在无需任何人类知识,采用同一算法就可以在多款游戏上从游戏白痴变成游戏高手。如图9所示,与游戏智能的一般性机理相比,DRN将整个处理流程集成于一个神经网络,自主实现逐层抽象,并生成决策方案。首先使用数据预处理方法,把128色的210*160的图像处理成灰度的110*84的图像,然后从中选出游戏画面重要的84*84的图像作为神经网络的输入;接着使用CNN自动进行特征提取和特征表示,作为BP神经网络的输入进行有监督学习,自动进行游戏策略的学习。[5]

DRN在Atari游戏上的应用证明了它的成功:击败了人类顶级玩家。但是DRN底层使用了CNN做特征提取,使得它更适用于以二维数据为输入的游戏。

图9DRN游戏机理

5.7深度学习+强化学习+博弈树

GoogleDeepMind的AlphaGo使用值网络用来评价棋局形式,使用策略网络用来选择棋盘着法,使用蒙特卡洛树预测和前瞻棋局,试图冲破人类智能最后的堡垒。策略网络使用有监督学习训练+强化学习共同训练获得,而值网络仅使用强化学习训练获得,通过这两个网络结构总结人类经验,自主学习获得对棋局的认知;然后使用蒙特卡洛树将已经学得的知识应用于棋局进行预测和评估,从而制定着法的选择。

图10AlphaGo的游戏机理

6、游戏人工智能的复杂性

继图形和交互技术之后,人工智能成为游戏科技发展的瓶颈,人们不再单纯追求更真实、更美丽的画面,而是更人性、更智能的游戏伙伴(对手)。

计算机思考问题的过程其实就是数值计算的过程,游戏人工智能的实现需要坚实的数学理论。最好的浅层机器学习算法SVM,其求解目标在于确定一个二分类的超平面,以最大化样本在特征空间上的间隔,其中涉及线性空间到高维空间的映射、KKT最优化算法等;风头正劲的深度神经网络,无非就是在海量数据的基础上拟合出一个非常复杂的函数来实现特征学习、分类拟合,其中涉及卷积计算、蒙特卡洛方法、最优化求解等;在自主决策独树一帜的强化学习其实就是一个马尔科夫决策过程,通过不断的迭代来不断更新内部的策略函数,最终实现自主决策,其中涉及随机过程、最优化求解等;简单而广泛使用的决策树,其分支依据有信息增益率、Gini准则等,其中涉及信息论等。在高级的人工智能中数学无处不在,也从根本上制约着人工智能的发展,它的每一次突破都能引发人工智能的新一波热潮。

计算机思考问题的过程其实就是移位、与或非等计算的过程,所以任何人工智能算法的成功都依赖于大量的计算。震惊世界的AlphaGo最后一个版本共使用了40个搜索线程,48个CPU和8个GPU;多台机器实现的分布式AlphaGo版本共使用了40个搜索线程,1202个CPU和176个GPU。[3]谷歌大脑运用深度学习的研究成果,使用1000台电脑创造出包含10亿个连接的“神经网络”,使机器系统自动学会识别猫。[6]海量数据的处理也使得并行计算框架Hadoop、Spark等在人工智能中变得炙手可热。

除坚实的数学理论、高效的计算机计算以为,人工智能研究的难点是对认知的解释与建构,而认知研究的关键问题则是自主和情感等意识现象的破解。尽管意识问题如此重要,非常令人啼笑皆非的是:无论过去还是现在,一旦涉及到意识问题,大家不是缄口不提,就是敬而远之,避之唯恐不及。究其因,不外乎意识的变化莫测与主观随意等特点严重偏离了科学技术的逻辑实证与感觉经验验证判断,既然与科学技术体系相距较远,自然就不会得到相应的认同与支持了!然而,最近科技界一系列的前沿研究正悄悄地改变着这个局面:研究飘忽不定的意识固然不符合科技的尺度,那么在意识前面加上情境(或情景)二字呢?人在大时空环境下的意识是不确定的,但“格物致知”一下,在小尺度时空情境下的意识应该有迹可循吧!其中1988年MicaEndsley就提出了SituationAwareness(SA)概念框架(详细了解可参见文章源自公众微信号:人机与认知实验室):“…theperceptionoftheelementsintheenvironmentwithinavolumeoftimeandspace,thecomprehensionoftheirmeaning,andtheprojectionoftheirstatusinthenearfuture.”[7](就是在一定的时间和空间内对环境中的各组成成分的感知、理解,进而预知这些成分的随后变化状况”)。但这只是个定性分析概念模型,其机理分析与定量计算还远远没有完善。

7、游戏人工智能的社会影响

随着计算机硬件水平和软件技术的提升,中国的游戏产业迅猛发展,人工智能在游戏中的应用也更加广泛与完善,游戏的可玩性大幅增强,而游戏人工智能的发展也深受社会的影响,主要体现在以下四个方面:

a.增强游戏的人性化

随着社会老龄化程度的加深,空巢老人越来越多,已经成为一个不容忽视的社会问题;城市中独生子女数量较多,父母工作繁忙致使他们平时缺少玩伴,而人性化的游戏智能能起到陪伴、娱乐的作用,如果使用得当的话,还能寓教于乐。普通人在与计算机游戏对战时,并不希望自己面对的是一个冷冰冰的机器,而是有喜有忧、患得患失的有血有肉的玩家,而计算机的游戏水平也应该与玩家水平相近,既不能让玩家因无法胜利而沮丧,也不能让玩家容易取胜而感到无聊。所以在设计这种游戏智能时除了高超的游戏水平之外,还要让游戏智能人性化,并调节自己的水平以适应玩家。

b.挑战智能极限

近十年来,电子竞技在我国从一个被所有人误解的边缘化产业,逐步变成了一个成熟、庞大的新兴产业链条,电子竞技正在逐渐成长为一个不可忽视的庞大产业。其实自香农提出为计算机象棋博弈编写程序以来,追求更强、更智能游戏智能体的脚步就从未停止,战胜世界冠军李世石的AlphaGo更是被认为突破了人类最后的堡垒。设计这种游戏智能时,更关注的是提高游戏智能体的游戏水平,而不关注是否类人化,所以更像是不通世事的“书呆子”。

c.不完全信息决策

棋类等大多数游戏通常是有限状态、有规则的完全信息条件下的博弈,而像军事等现实世界具有高维、动态、不确定性的特点,是无规则的不完全信息下的决策。所以人们也十分关心如何将游戏智能迁移运用到现实世界中,其中DeepMind团队在战胜李世石后转战星际争霸,试图探索在状态更多、规则性更弱、信息不完全条件下的博弈;更有甚者试图将AlphaGo技术应用到兵棋推演、军事空战决策中。

d.自主学习

与深蓝、Watson不同,DeepMind团队的研究成果除了高超的游戏技能以外,还在于其自主学习的能力和可迁移的能力,这也是它能够大放异彩的原因。人们一直希望建立一种游戏智能框架:它无需任何人为参与就能在不同的游戏中通过自主学习成为游戏高手,其中DeepMind的DRN技术在无需人为参与、无需调整算法框架的情况下,只通过自主学习就能精通7种Atari2600游戏,甚至在某些游戏中超过人类玩家。

8、总结

与模糊人类和机器的边界不同,游戏人工智能更关注挑战智力极限,表征是游戏战胜人类最强者;与教导人类成为领域专家不同,游戏人工智能更关注培育自学习能力的智能体,表征是无经验自主学习;所以当前最先进的两个游戏引擎均使用了深度学习和强化学习两方面的知识,旨在培育具有自学习能力的高智能个体。

当前大家最关注的莫过于2016年3月AlphaGo与李世石的围棋之战。现在的1:4人机比分是否表示机器已经突破人类最后的堡垒呢?是否表示达到智能极限呢?游戏人工智能下一步的研究关注点又应该是什么呢?我认为机器即使战胜李世石也没有达到人类智能的极限,与记忆和速算一样,搜索与前瞻的能力也不能代表人类智能,人类还有情感、有思想、能快速学习等能力,所以AlphaGo战胜了李世石也只是在某个领域里面比人类更强而已;游戏人工智能不能使用图灵测试、中文屋子来衡量人工智能的程度,因为人类在游戏(特别是棋类游戏)上的智能并不突出,因为人脑的复杂度有限,并不能计算游戏的最优值,只是在能力范围内做出较优的决策,所以我认为“游戏人工智能的关注点应该是:同一游戏引擎作为双方对战,总是同一方(先手或后手)取胜,而且能够战胜人类最强者”。所以即使AlphaGo战胜李世石,那么棋类智能仍有探索的空间:游戏决策的最优值!

9、参考文献

[1](美)NilsJ.Nilsson著,郑扣根,庄越挺译.人工智能[M].机械工业出版社,2007

[2](美)MatBuckland著,罗岱等译.游戏人工智能编程案例精粹[M].人民邮电出版社,2008

[3]DSilver,AHuang,CJMaddison,AGuez,LSifre,MasteringthegameofGowithdeepneuralnetworksandtreesearch.《Nature》,2016,529(7587):484-489

[4]陈学松,杨宜民,强化学习研究综述.《计算机应用研究》,2010,27(8):2834-2838

[5]VMnih,KKavukcuoglu,DSilver,AGraves,PlayingAtariwithDeepReinforcementLearning.《ComputerScience》,2013

[6]涂兰敬,谷歌的人工智能.中国计算机报.2015.01.05,第007版

[7]EndsleyMR.Situationawarenessinaviationsystems[M].InGarlandDJ,WiseJA,HopkinVD.Handbookofaviationhumanfactors.Mahwah,NJ:Erlbaum,1999:257-276

[8]JohnD.Lee,AlexKirlik,Theoxfordhandbookofcognitiveengineering[M].Oxford:OxfordUniversityPress,2013:1-218

[9]JoséLuisBermúdez,CognitiveScience[M],Cambridge:CambridgeUniversityPress,2010:1-360

[10]邹会来,人工智能技术在游戏开发中的应用与研究.浙江师范大学,2011

[11]刘伟,袁修干.人机交互设计与评价[M].北京:科学出版社,2008:1-68.

[12]马永杰,云文霞,遗传算法研究进展.《计算机应用研究》,2012,29(4):1201-1206

[13]于永波,基于蒙特卡洛树搜索的计算机围棋博弈研究.大连海事大学,2015

【本文发表在《科学与社会》2016年第6卷第3期】返回搜狐,查看更多

游戏开发中的人工智能(一):游戏人工智能简介

本系列文章对《游戏开发中的人工智能》DavidM.Bourg/GlennSeemann一书进行解读。

这本书谈了很多游戏软件AI的主题,内容深度适合初涉开发人员。所以,无论你是游戏开发新手还是资深游戏开发人员,如果需要尽快掌握AI技术,比如有限状态机、模糊逻辑、神经网络以及其他议题,这本书都非常适合。

针对游戏软件AI的初学者,假定你没有任何AI背景知识,但是假定你知道怎么用C/C++写程序,也假定你懂得基本向量数学在游戏中的应用。

章节概要:

第一章游戏人工智能简介定义何谓“游戏AI”,讨论当前AI技术的发展,以及AI技术的未来。

第二章追逐和闪躲讨论基本的追逐和闪躲技术,以及进级的拦截技术。我们也谈及这些技术在砖块环境和连续环境中的变化。

第三章移动模式许多游戏中经常出现固定模式的移动,比如守卫的巡逻行为,宇宙飞船的降落等。开发者可以将移动模式技术应用于特定行为的程序的编写中。

第四章群聚群居方法是A-life算法的实例。A-life算法除了可以做出效果很好的群聚行为外,也是高级群体运动的基础。

第五章以势函数实现移动靠势能移动在游戏AI程序中还算相当新颖。这个方法的最优越的地方在于可以同时处理追逐、闪躲、成群结队和避免碰撞等行为。

第六章基本路径寻找及航点应用游戏开发人员使用很多技术在游戏环境中寻找路径。本章要谈几种方法,包括航点应用。

第七章A*路径寻找方法路径寻找算法的主力——A*路径寻找方法。

第八章描述式AI及描述引擎程序员通常只写描述引擎,而由设计者使用工具创建内容和定义AI。本章探讨一些开发人员把描述系统应用在游戏中的技巧,以及他们所得到的益处。

第九章有限状态机有限状态机是游戏软件AI的基本要素。本章探讨有限状态机的基础,以及如何予以实现。

第十章模糊逻辑开发人员把模糊逻辑和有限状态机结合起来使用,甚至取代有限状态机。本章将会学到模糊逻辑为什么优于传统的逻辑技术。

第十一章规则式AI技术上而言,有限状态机和模糊逻辑都落在基于规则的方法这个大伞之下。本章将谈这些方法,以及其他变化的方法。

第十二章概率概论游戏开发人员时常使用简单的概率,使游戏较难预测。这种简单的不可预测性让游戏开发人员可以拥有对游戏的实质性控制。本章要谈这种用途的基本概率,顺便作为更高级方法的基石。

第十三章不确定状态下的决策:贝叶斯技术贝叶斯技术是概率技术,本章解释如何运用,以便在游戏中做决策并适应游戏。

第十四章神经网络“神经网络”技术让游戏具有学习和适应的能力。事实上,从决策判断到预测玩家的行为,都可以应用。我们会详谈最广泛使用的神经网络结构。

第十五章遗传算法遗传算法提供游戏软件AI演化的可能。虽然遗传算法不是经常被应用于游戏中,但是它们在某些特定应用方面的潜力是值得令人期待的,尤其是结合其他方法使用的时候。

游戏人工智能介绍

游戏AI的定义相当宽广而且灵活性很大。无论采取何种手段,只要能给人以某种智能程度的“错觉”,让游戏更能令人沉迷于其中,更具有挑战性,最重要的就是要更好玩,那才能看做是游戏AI。

定性与非定性AI

游戏AI通常分成两种,定性和非定性。

定性

定性即行为或表现是特定的,而且可以预测的,没有不确定性。具体实例可以是简单的追逐算法。比如说塑造一个怪物角色,沿着XY坐标轴前进,往某目标点移动,直到该角色的XY坐标和目标点的坐标重叠。

非定性

与定性行为相反,非定位行为有某种程度的不确定性,有点不可预测(不确定到什么程度与人们对所采用的的AI的方法的理解的难易程度有关)。具体实例是让非玩家角色学习到适应玩家的作战战术。这样的学习能力可以利用神经网络、贝叶斯技术或遗传算法得到。

定性AI技术是游戏AI的基础。定性AI技术的结果是可预测的,效率高,易实现、理解、测试和调试。虽然定性方法有很多,但是预先考虑各种场景以及明确写出所有行为的重担都会落在开发者的肩上。而且定性方法无法帮助NPC学习并进化,玩家只要认真观察一下,就可以预测出NPC的定性行为。我们可以这么说,使用定性行为,会限制游戏软件的“寿命”。

非定性技术可以让NPC自己学习,并进化出新的行为,比如说突现行为(没有明确指示而出现的行为),让玩家在玩游戏时难以预测,增加游戏可玩性。开发者也无需事先预先所有可能的场景,写下所有明确的行为。

尽管非定性技术可以增加游戏的可玩性,但是长久以来,开发者对非定性AI保持距离(但现在已逐渐得到改变)。由于无法预测,就很难测试和调试(因为没有办法测试玩家所有可能的行动,以确保游戏软件不会出Bug)。而且游戏开发人员面对的是不断缩短的开发周期,使得开发者难以全部了解最新的AI技术。

另一因素也限制了非定性技术的发展,最近开始,开发者把他们的注意力更多的放在图画的质量上(因为玩家都喜欢美的东西)。结果为了做出更好更快的图画技术,就没有时间开发更好的游戏AI了。

现有的游戏AI技术

有限状态机(finitestatemachine,FSM)是到处可见的游戏AI技术。第九章的时候我们会详细学习这部分,有限状态机的基本概念是列举出计算机控制的角色的一连串动作或状态,再利用if-then条件语句检查各类情况和满足条件,再根据判断结果执行动作或更新角色状态,或者在动作和状态之间做转换。

开发者时常会在模糊状态机(fuzzystatemachine)中用到模糊逻辑,让最后执行的动作难以预测,减少必须以if-then语句大量列举条件的重担。在有限状态机中,你可能有“if距离值为10且健康值为100,then攻击”这样的规则,但是模糊逻辑与此不同,它允许你用不太精确的条件设计规则。比如“if靠近而且足够健康,then强力攻击”。模糊状态机将在第十章时详细介绍。

在各类游戏中,非玩家角色的基本任务是必须找出有效地路径。在战争模拟游戏中,非玩家角色的军队必须能够通过各种地形,避开障碍物,抵达敌军所在地。第一人称射击游戏中的生物,必须能通过地牢或者建筑物以便和玩家相遇或逃离玩家视线。这种场景是数不胜数的。毋庸置疑,AI开发人员会很关注路径寻找。第六章中我们会谈一般的路径寻找技巧,到了第七章才会谈重要的A*算法。

上述的一些技术,只是现有游戏AI技术的少数几种而已,其他还有以规则为主的描述性系统以及某些人工声明技术,种类繁多。人工生命系统是一种人造系统,可以展现出符合人性的行为。这些行为属于突现行为,其发展是结合各种低层次算法运作后的结果。后面我们会讨论人工生命的实例以及其他技术。

游戏AI的未来

游戏AI的下一件大事就是“学习”。游戏上市后,所有非玩家角色的行为,不再事先安排,游戏玩的越久,游戏就会更多地演化和学习,更具适应性。这样的游戏会跟玩家一起成长,玩家也难以预测游戏行为,因此能扩展游戏的生命周期。游戏会学习并演化,造成了游戏本身无法预测的特性。

“学习”与“角色行为反应”技术,属于上文提到过的非定性AI的范围,所以有相当大的难度。明确的说,这种非定性的“学习”AI技术,要花更长的时间开发和测试。再者,要了解AI究竟会做什么也更加困难,这也使得调试变得更困难。这些因素是“学习”AI技术得以广泛应用的巨大障碍。不过,这一切都在改变之中。

几个主流游戏都用了非定性AI技术,比如“Creatures”、“Black&White”、“Battlecruiser3000AD”、“DirtTrackRacing”、“FieldsofBattle”以及“HeavyGear”。这些游戏的成功,重新点燃了人们对“学习”AI技术的兴趣,诸如决策树、神经网络、遗传算法以及概率方法。

这些成功的游戏软件,运用非定性方法时也搭配使用了传统的定性方法,只要在最适合并且需要的地方才使用非定性方法。神经网络不是仙丹,无法解决游戏软件中所有的AI问题,然而你可以在混合的AI系统中,解决特定的AI任务,借此获得令人印象深刻的结果。这样的话,你可以把AI中不可预测而且难以开发、调试和测试的部分隔离出来,同时又能让你的AI系统的大部分,都保持传统的形式。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇