因为在现在的项目中花了很大精力设计和制作怪物AI和技能,所以在这里也做个小总结。

什么叫做游戏中的AI

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


AI的行为类型
1,感知(Perception)
       感知是指AI在所处环境或世界中,侦测周遭环境或者事件变化的能力,这种能力是由游戏设计者决定的并且赋予的。比如潜行游戏中,敌人的视野只有他前面90度角的扇形范围,如果游戏设定这个AI只具有视野这唯一的感知能力,也就是说玩家只有进入敌人视野才会被发现,那么,玩家不管是在AI的周围大声的开枪,还是用枪去顶AI的菊花,甚至开枪打伤它,AI都不会感知玩家就近在咫尺。当然作为游戏设计者需要全面的考虑游戏中AI的应该侦测哪些,赋予AI完美生动的感知能力。
2,行动(Action)
      行动是指AI自己决定去做一系列行为, 游戏设计者通过一系列的规则和逻辑次序的设定来控制这些AI的行动。例如,WOW中有个NPC,白天时守着一个熄灭的火堆面前,来回的巡逻,而夜晚降临时则会去点燃火堆,静静的坐着不动。如果游戏设计者想制作一个热闹的城市,可以制作很多不同的AI角色,有的沿着街道从一个地方跑到另外一个地方,有的小贩站在原地不动吆喝,甚至可以让两个NPC在走路的过程中相遇然后聊上一会天。我想一个有着丰富的AI角色的世界,一定会让玩家很容易的融入这个游戏世界。
3,反应(Reaction)
     反应是指 AI在感知到玩家的行为所引发的刺激信息时所触发的行为。比如,Left 4 dead(生存之旅)里面的Hunter,在探测到玩家的位置之后hunter会伺机从远距离扑到玩家,如果玩家朝hunter开枪的话,hunter会尝试在远处使用天花板跳、三级跳等技能躲避玩家的射击,如果玩家并不射击hunter,他则会直接从远距离扑过来。这种反应又可以称之为怪物攻击策略,有趣而生动的AI反应会让玩家觉得挑战的乐趣。
      大多数游戏AI主要能做到上面三点,就算是能满足游戏设计者的基本需要了。
4,学习(Learning)
       比较复杂的游戏AI会记录玩家的行为变化,比如策略游戏的AI可能会根据玩家的策略变化,不停的分析玩家的行为,从而做出更为复杂的行为,是同玩家结盟,还是联合其他国家来攻击玩家;例如很多国外RPG游戏中的NPC会根据玩家在游戏中的善恶变化,而对玩家表现完全不同的态度;例如射击游戏中玩家开的是坦克,AI用的是步枪,当两者遭遇时,AI一开始还拿着步枪攻击了一阵,发现步枪完全没有用,于是就去寻找反坦克导弹来摧毁坦克。
      高级AI的学习,需要随时记录玩家的行为变化,并把这些信息放到一个专门的分析系统中逐一分析,从而得到最有利于自己的反应。会学习的AI相当的聪明,但是更聪明的游戏设计者则需要设计一个完善的分析系统,这样的系统通常会用来控制一个游戏的难度,当玩家尝试很多次失败之后,我们的高级AI则会分析得到玩家的优缺点,比如玩家的射击能力实在太差了,于是便略微的降低自己的移动反应速度,让玩家更容易击中自己。
AI的基本能力
        作为游戏AI设计者首先要分析并且归纳出自己这款游戏AI的基本能力,定义好这些基本能帮助游戏设计者很方便的制作更多更有趣的AI。
大多数游戏中AI能力大致上可以有以下几种:
  • 检测潜在威胁
  • 确认对方身份(敌人还是朋友)
  • 确认威胁级别(专注于威胁最大的目标)
  • 与敌对者交战(战斗技能)
  • 特殊行为(根据游戏需要特意设计的AI行为)
AI的基本属性
        设计好AI的基本属性极其重要,游戏设计者可以通过调整基本属性设计出“个性”不一的AI。
大多数游戏中AI基本属性大致可以分为:
  • 身份(阵营)
  • 战斗参数(生命值,攻击力,防御力)
  • 交互范围(追击距离,仇恨侦测距离,攻击交互距离)
  • 侵略性(攻击技能使用频率)
  • 仇恨(主要攻击目标查找)

如何设计游戏中的AI
        
         第一步,定义游戏中AI的基本挑战。单个的AI挑战往往需要结合关卡设计的挑战组成一个基本的挑战模式(Challenge Pattern )。在游戏设计者拿到怪物详细概念设计之前,首先必须清楚本款游戏中最重要的游戏挑战在哪里(Where is the main GamePlay in my game?),也就是玩家玩游戏的乐趣是什么,以及我们所设计的游戏AI会出现在游戏的哪个部分,扮演着什么样的角色。例如,超级玛丽中,玩家需要利用跳跃来躲避怪物的直接接触(一碰即死),或者准确的跳到怪物头上从而消灭怪物,游戏中最简单的怪物AI表现为在两个点之间保持匀速的来回巡逻,这个就可以成为一个基本的挑战模式(Challenge Pattern)。越往后的关卡中的怪物AI则略微复杂,比如有的怪物会使用技能主动攻击玩家,则需要玩家即要躲避怪物的直接接触,又要躲避怪物不断发出的攻击子弹,这个就又是难度更高的挑战模式了。
       第二步,设计挑战中的AI基本能力和基本属性。同样以超级玛丽为例,怪物的基本能力、基本属性和挑战模式如下表。
 怪物  能力  属性  挑战
 蘑菇  一触即死(伤害玩家) ,移动  敌对  踩一次,躲开
 绿色乌龟  一触即死 ,移动  敌对,龟壳  踩两次,躲开
 红色乌龟  一触即死, 移动 ,识别悬崖  敌对,龟壳  踩两次,躲开
 红鱼  一触即死 ,移动  ,穿过珊瑚  敌对  子弹打死,躲开
 蓝鱼  一触即死 ,移动  ,不能穿过珊瑚  敌对,无敌  躲开
 绿鱼  一触即死 , 高速移动   ,穿过珊瑚  敌对,尸体有毒  子弹打死,躲开

        由上表我们不难得知,游戏中的AI设计,其实就是各种能力和属性的组合,而达成不同的游戏挑战。
        第三步,设计AI的状态和逻辑。这一步往往是由游戏设计师和游戏程序员共同商讨来完成,如果游戏设计师能提供一个结构清晰的游戏AI运行流程,那将帮助程序员能够更好的理解游戏中怪物的行为,而且有的时候可能会需要设计者自己动手去制作AI(比如我。。。)
        如下图是一个简单的RPG游戏中怪物的AI运行流程,也可以叫AI逻辑转换结构图。
AI的状态
        也可以理解为程序员经常说的状态机。AI会在一个状态里面完成一个指定的行为,当指定的条件达成时,AI会从一个状态转到另外一个状态。如上图绿色方框,出生、待命、战斗判定、技能、追击....
AI的逻辑
        AI的逻辑也就是AI状态之间来回转换的条件。如上图灰色菱形,出生状态是否完成,是否巡逻,玩家是否在仇恨范围内...
        第四步,测试游戏中的AI。没人能保证自己的设计从一开始就是完美的,作为游戏设计者更要常常抱着玩家的心态去不断的测试体验自己的设计。
转载至  http://jianganxi.blog.163.com/blog/static/12124245220124291119413/

游戏中的人工智能AI设计相关推荐

  1. 《百面机器学习》试读 | AI热门应用之游戏中的人工智能

    小编温馨提示 首先掌声恭喜上周第五个留言获得福利的幸运小伙伴 @羊????????????,请通过后台联系我们,我们会将奖品尽快寄出噢- 铛铛铛,本周将会连载<百面机器学习>人工智能领域热 ...

  2. Unity3D游戏开发中的人工智能AI 简单实例

          今天我想说的是游戏中的人工智能.人工智能这个东西在游戏中是非常重要的,人工智能说简单了就是根据随机的数字让敌人执行一些动作或逻辑,说难了TA需要一个非常复杂的算法,本文我主要说说Unity ...

  3. Unity3D研究院之游戏开发中的人工智能AI

        很久没有写Unity3D相关的东西了,是因为这段时间我深陷一款IOS的软件开发中.不过以后我还是会回归Unity3D游戏开发的.什么语言都在用,生活与工作都挺给力的嚯嚯.今天还是打开了久违的U ...

  4. 网易游戏人工智能实验室分享:游戏中应用的AI技术

    在2019网易游戏开发者峰会上,网易游戏人工智能实验室技术总监Weldon Zhang,分享了人工智能实验室在游戏AI上的探索和成果,对游戏中应用的AI技术进行了盘点. 总体来看,AI技术可以在游戏中 ...

  5. 漫谈游戏中的人工智能

    今天我们来谈一下游戏中的人工智能.当然,内容可能不仅仅限于游戏人工智能,还会扩展一些其他的话题. 游戏中的人工智能,其实还是算是游戏开发中有点挑战性的模块,说简单点呢,是状态机,说复杂点呢,是可以帮你 ...

  6. 游戏设计之我见 —— 动作游戏中的敌人移动设计

    这篇博客结合了一些游戏案例,介绍了在3D动作游戏中常用的AI移动规律的设计. 移动方向 在3D游戏中,所有的物件都是以"横·纵·高"三个轴为基础进行移动. 但是对于动作游戏来讲,如 ...

  7. 基于虚拟现实的游戏中的人工智能:如何使用Python和Pygame实现人工智能

    作者:禅与计算机程序设计艺术 <基于虚拟现实的游戏中的人工智能:如何使用Python和Pygame实现人工智能> 1. 引言 1.1. 背景介绍 随着虚拟现实 (VR) 和增强现实 (AR ...

  8. 关于游戏中仓库类的设计

    前言 这个游戏中的仓库类设计开始于春节前,和大家一样,我也是期盼着放假而无心工作,所以在放假前一天虽然蹦出了思维的火花,我却没有使用文字记录下来,但是大致的思路我已经记录到脑子中了,这一次的突然感悟, ...

  9. 游戏中的人工智能(一)

    人工智能的本质:让计算机能够像生物体一样,具有思考和决定的能力来执行某些特定操作. 人工智能研究的三个主大类领域: ① 计算机视觉: 从视觉输入源获取信息并对它们进行分析,以执行特定操作.(ex:脸部 ...

最新文章

  1. CentOS7编译安装mysql-5.6.28和编译参数
  2. Ubuntu 16.04 amd64 bond mode6 配置
  3. Java: 面向对象程序设计(上)
  4. shell中join链接多个域_shell 如何实现两个表的join操作
  5. 连接查询中的ON 子句和 WHERE 子句
  6. MS BizSpark计划-免费提供软件和服务
  7. hdu 5045 Contest(状态压缩DP)
  8. Java基本语法(9)--逻辑运算符(逻辑短路)与或非
  9. 1 1 2 3 5 8 java_1 1 2 3 5 8 13 21 34规律:一个数据等于前两个数之和.用java做,输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值....
  10. 通俗易懂的堆排序C++实现
  11. final—前后端分离的网站
  12. iNOC产品部--完全数计算
  13. 光纤跳线接口_你知道光纤接头、尾纤、终端盒的作用与接法嘛?读懂这篇足够...
  14. 情感分析资源大全(语料、词典、词嵌入、代码)
  15. matlab程序改写python3
  16. Skew Heaps
  17. arm交叉编译ntpdate与服务器进行时间同步
  18. 傲慢与偏见之 - 因果倒置的锦上添花
  19. 一堂难忘的计算机课作文,一节电脑课作文600字
  20. java处理图片与base64编码互相转换

热门文章

  1. 控制类(Controller)
  2. linux修改文件名的三种方法
  3. 归并排序算法(C语言)
  4. vue 创建一个登录界面
  5. 对php进行开发的环境,PHP开发环境搭建(一):PHP简介及开发工具
  6. 精确到秒!一位清华学霸的学习生活计划表,值得借鉴!
  7. 3D游戏建模线上和线下学习的区别
  8. 百万冲顶 获取复活币
  9. Xiaomi Redmi Note7刷机
  10. 硅芯思见:SystemVerilog中的packedarray和unpacked array