`
yuanlanxiaup
  • 浏览: 859771 次
文章分类
社区版块
存档分类
最新评论

游戏AI基础

 
阅读更多

GameRes游戏开发资源网 http://www.gameres.com

游戏AI基础

作者:Geoff Howland

出处:http://www.lupinegames.com/articles/basicai.htm

译者:张戴维

译者Bloghttp://www.5DBlog.com/user1/Davidz

译者E-mailDIVSupport@163.com

游戏AIartificial intelligence,人工智能)成为近来讨论较多的主题,这是有充分根据的。随着游戏中画质与音效的稳步提高和改善,游戏控制的玩家(game controlled players)的行动不以“聪明的”方式进行变得越来越明显。

比游戏控制的玩家的“聪明”更重要的是他们的愚蠢。多数游戏玩家不期望去运行一款最新的第一人称射击游戏,用射钉枪(nail gun)与莫里亚蒂教授[1]对抗。他们更不希望去对抗一个被复杂的拐弯搞得不知所措的先天性白痴病人。

[1] 英国作家柯南道尔福尔摩斯探案集里的人物,被福尔摩斯喻为“犯罪界的拿破仑”。

单位活动AIUnit Behavioral AI

游戏AI总是标准含义上的AI。单位游戏AI是为设计出具有提供某种挑战或某种真实体现的生命特征的一次真正的尝试。

在游戏中,只站在一处、从不移动的警卫会显得非常不真实。不过,如果你创建一个例行程序(routine),使他不时的朝四周张望,或变换他的姿势,他会看起来更具活力。通过创建一个在预设的路径上行走的警卫偶然停在站岗的警卫前,并好像与他谈话这样的情景,真实的体现能被极大地提高。

在单位AI中,动作分为反应性(reactionary)与自发性(spontaneous)两类。

在反应性的方式下,单位随时会对自身环境中的变化做出响应。如果一个敌人发现了你,开始向你跑来,并朝你射击,那么他们已经做出了看到你的反应。

在自发性的方式下,单位做出行动时并不依赖于自身环境中的任何变化。一个单位决定从其所站立的岗哨移向基地周围的某个游动岗哨,则这个单位已经做出了一次自发性的行动。

通过在你的游戏中使用这两种类型的单位活动,你就能创造出你拥有自主“聪明”的单位的假象,而不一定是简单的机器。

反应性AIReactionary AI

反应性输入应当总是基于单位的感觉。当依照人类的特征对AI建模时,你需要考虑单位的视线范围与距离,他们的听觉,如果适用还有嗅觉。

制定警报级别是处理不同感觉输入的一种有效方法。如果一个单位在其视野中直接看到了敌人,那么单位应切换到与如何对抗敌人相符合的警告模式。如果单位没有看到敌人,而是听到了脚步声或枪声,那么单位应转到适用于与间接情景相一致的警报级别。

这里有一个警卫单位的例子。听到枪声时,会使其采取行动去调查枪响的区域;听到脚步声时,可能会使其守候着去伏击移动的单位。所有这些不同类别的活动和警报都能被一个基于规则的(ruled-based)或模糊逻辑的(fuzzy logic)系统所建立,以便你能对每个单位产生的每次声响或目击做出解释,并使他们采取适当的方式做出反应。

一个具有普遍意义的警报也是游戏中真实与智力体现的一个重要因素。假如你一直东奔西跑的朝充满敌人的基地开火,并不断的遭遇新的敌人,而这些敌人对过去持续10分钟的炮火这个事实竟然一无所知,这会显得非常不合适。通过为所有的单位建立一个警报系统(alert system),或一个警报方案(alert plan),能够在你的游戏世界中增强真实的体现。

一个警报方案应该由有警报时各单位应共同遵循的规则组成,而非由无警报情况下的规则构成。例如,如果出现警报,你要能使所有处在安全区域内的单位快速移向基地入口以加强防御。

自发性AISpontaneous AI

在你的游戏世界中,自发性AI对于创建生命的感觉(sense of life)极为重要。如果你遇见的每个人只是站在那里等着你与他们交谈或杀死他们,抑或更糟,毫无目标的漫游,这将不会使玩家非常信服。

解决上述问题(standing around problem)的方法之一是为每个单位设置一组非警报状态时的目标。这些目标可能包括预设移动路径,随机移动到预设区域,当路过其他单位以及与其他单位移动到预设目的地时,偶然停在其他单位旁。在所有的这些情景中,我总是说预设(pre-set),因为除非你提出一个很好的设置目的地与路径的算法,否则你的单位看起来会像是在毫无目的地漫游。

单位行动(Unit Actions

真正让一个游戏单位看起来很聪明的是他们的行动。如果他们以玩家可能的方式移动,或在玩家可能的情景下做如闪避这样的动作,那么单位看起来会很聪明。你不一定需要很多的动作来创建聪明动作的假象,你只需要包含足够的与你的单位相关联的任何基本情景。

如果你处理的恰当,且包含的范围越广,你的玩家相信你的单位在“聪明地”行动的机会就越大。把自己放在你的单位的位置上,在他们的情景中你会怎么做?你将怎样回应各种各样的攻击或遭遇敌人?如果什么事都根本没发生,你又将会做些什么?

如果你回答了这些问题,并针对你的单位将遇到的每种情景正确的实施了它们,你将把你拥有看似聪明的单位的机会最大化,这也是创建一个优秀的、稳健的游戏AI的第一步。

分享到:
评论

相关推荐

    电脑游戏中的人工智能制作[含代码]java/c++

      电脑游戏中的人工智能制作   棋类编程 部分1: 开始   棋类编程 部分2: 数据结构   棋类编程 部分3: 产生移动   棋类编程 部分4: 基础搜索   棋类编程 部分5: 高级搜索   棋类编程 部分6: 评估函数   工人...

    人工智能基础与应用课件.pptx

    艾智讯AI小课堂:一起来了解"云""物""大""智" 【相关知识】 (点击播放视频 ) 人工智能基础与应用课件全文共246页,当前为第7页。 人工智能是什么? 人工智能是计算机科学的一个分支,它企图了解智能的实质,并...

    人工智能课设基于C语言实现的AI中国象棋游戏源码.zip

    人工智能课设基于C语言实现的AI中国象棋游戏源码.zip 人工智能课设基于C语言实现的AI中国象棋游戏源码.zip 人工智能课设基于C语言实现的AI中国象棋游戏源码.zip 1、该资源内项目代码都是经过测试运行成功,功能ok的...

    人工智能与游戏的基础知识.pptx

    人工智能与游戏的基础知识

    基于强化学习与深度强化学习的游戏AI训练python源码.zip

    基于强化学习与深度强化学习的游戏AI训练python源码.zip基于强化学习与深度强化学习的游戏AI训练python源码.zip基于强化学习与深度强化学习的游戏AI训练python源码.zip基于强化学习与深度强化学习的游戏AI训练python...

    人工智能小游戏——21点游戏

    应用程序向导已为您创建了这个 21点游戏 应用程序。此应用程序不仅演示 Microsoft 基础类的基本使用方法,还可作为您编写应用程序的起点。

    python游戏编程课程设计大作业贪吃蛇之与蛇共舞AI智能小游戏源码.zip

    基于snake贪吃蛇,再结合百度AI人工智能平台中人体关键点分析,小蛇吃苹果,我来做运动,我与小蛇共舞。通过手的围绕身体进行转动,控制小蛇的运动方向。百度AI人工智能平台人体关键点分析,使用史然飞的《中学生都...

    人工智能项目资料-基于yolov5的ai自瞄,理论使用于所有fps游戏.zip

    基于yolov5的ai自瞄,理论使用于所有fps游戏,本程序基于原始yoloV5进行二次开发,项目结构与内容,以及使用方法和源yoloV5没有任何区别,并且添加了GUi,增加交互性,启动设置参数更加,方便,驱动部分使用了市面上...

    人工智能项目资料-基于图像的游戏AI自动化框架.zip

    【探索人工智能的宝藏之地】 无论您是计算机相关专业的在校学生、老师,还是企业界的探索者,这个项目都是为您量身打造的。无论您是初入此领域的小白,还是寻求更高层次进阶的资深人士,这里都有您需要的宝藏。不仅...

    人工智能寻路算法在电子游戏中的研究和应用.pdf

    在当今游戏工业界,A*算法是被大家最广泛使用的人工智能寻路算法,也是最有效的最短路径搜索算法。A*算法实际上是一种基于广度优先搜索基础上的启发式搜索算法,通常采用估价函数:f(n)=g(n)+h(n)对当前的搜索位置...

    人工智能项目资料-基于权重的斗地主游戏AI算法.zip

    【探索人工智能的宝藏之地】 无论您是计算机相关专业的在校学生、老师,还是企业界的探索者,这个项目都是为您量身打造的。无论您是初入此领域的小白,还是寻求更高层次进阶的资深人士,这里都有您需要的宝藏。不仅...

    人工智能项目资料-基于yolov5的FPS游戏AI。.zip

    【探索人工智能的宝藏之地】 无论您是计算机相关专业的在校学生、老师,还是企业界的探索者,这个项目都是为您量身打造的。无论您是初入此领域的小白,还是寻求更高层次进阶的资深人士,这里都有您需要的宝藏。不仅...

    人工智能介绍PPT.pptx

    选择棋类游戏作为人工智能研究的对象,不仅是因为棋类游戏规则清晰,胜负判断一目了然,而且也更容易在爱好者群体中产生共鸣,因此人工智能研究者前赴后继投身到对不同棋类游戏的挑战中。 互动环节: 人机小挑战 ...

    人工智能项目资料-基于深度强化学习DQN的FlappyBird游戏AI开发 .zip

    【探索人工智能的宝藏之地】 无论您是计算机相关专业的在校学生、老师,还是企业界的探索者,这个项目都是为您量身打造的。无论您是初入此领域的小白,还是寻求更高层次进阶的资深人士,这里都有您需要的宝藏。不仅...

    贪吃蛇游戏的人工智能Snake-AI.zip

    Snake-AI,这是一个用 C/C 语言编写的贪吃蛇游戏的人工智能。AI 的目的是让蛇尽可能的吃更多的食物,直到吃满整个地图。想参与这个项目,请查看todos。Demo使用方法编译与运行:$ make $ make run为了解详细使用...

    2048小游戏-AI程序算法分析.pdf

    针对目前火爆的2048游戏,有人实现了一个AI程序,可以以较大概率(高于90%)赢得游戏,并且作者在stackoverflow上简要介绍了AI的算法框架和实现思路。但是这个回答主要集中在启发函数的选取上,对AI用到的核心算法并...

Global site tag (gtag.js) - Google Analytics