加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_阳江站长网 (https://www.0662zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 网络游戏 > 网页游戏 > 正文

深度强化学习的人工智能在游戏中的运用:游戏AI入门及AI优化指南

发布时间:2020-03-06 08:26:02 所属栏目:网页游戏 来源:新浪游戏
导读:前言: 现如今,所有电子游戏都离不开AI的运用,对于游戏策划而言AI是什么,AI又是如何运作,可以说是面试时的加分项,本文在这里不探讨理论的AI(采用深度强化学习的智能AI,如腾讯AI Lab、网易伏羲AI等),旨在分享现游戏领域广泛运用的AI,给新人策划针
深度强化学习的人工智能在游戏中的运用:游戏AI入门及AI优化指南

  前言:

  现如今,所有电子游戏都离不开AI的运用,对于游戏策划而言AI是什么,AI又是如何运作,可以说是面试时的加分项,本文在这里不探讨理论的AI(采用深度强化学习的智能AI,如腾讯AI Lab、网易伏羲AI等),旨在分享现游戏领域广泛运用的AI,给新人策划针对游戏AI、游戏脚本有一个初步的了解。

  (本文接下来不包括AI底层代码,AI工具开发等程序向内容,该部分在网络上已经有很多教程大家可以去学习,个人认为策划对于底层AI的具体实现是不需要了解的,而对于AI制作与优化是需要学习的。)

深度强化学习的人工智能在游戏中的运用:游戏AI入门及AI优化指南

  本文的具体结构

  一、AI的应用场景

  人工智能开发是游戏研发中最具挑战性的任务之一[1],那么游戏中AI的具体使用场景在哪里呢?

深度强化学习的人工智能在游戏中的运用:游戏AI入门及AI优化指南

  英雄联盟里怪物战斗AI、场景AI(作用于野怪刷新)、人机挑战中机器人战斗AI

  除了大家熟知的LOL,3A大作里AI一般运用到哪里呢?

深度强化学习的人工智能在游戏中的运用:游戏AI入门及AI优化指南

  巫师3中的NPC AI,怪物AI等AI运用基本可以囊括现有AI的运用场景

  从上面举的两个例子,已经可以看出现在制作游戏离不开AI。

  二、AI通过什么方式进行设计?

  现有游戏AI基本通过下面两个方式进行实现:行为树(Behavior Tree)与有限状态机(Finite State Machines),那么下面我们就对于这两个实现方式进行探讨。

  2.1 什么是有限状态机

  “状态机”是一种表示状态并控制状态切换的设计模式,常常用于设计某种东西的多个状态。而有限状态机是指游戏内的条件逻辑封装到各个状态类里。例如一个人有站立状态,跑动状态,走路状态,蹲下状态,开火状态等[2],当一个事件发生,将会触发一个动作,或者执行一次状态的迁移。

  但却有两个缺陷:

  1。 各个状态类之间互相依赖很严重,耦合度很高。

  2。 结构不灵活,可扩展性不高,难以脚本化/可视化。

  下图是游戏中怪物入战的有限状态机,如果我们想对攻击敌人/追击敌人状态进行修改,是需要程序给我进行状态类中内容修改的。

深度强化学习的人工智能在游戏中的运用:游戏AI入门及AI优化指南

  那如果我们可以把本来的巡逻、追击敌人、攻击敌人等状态先进行更细分的封装,是不是更好呢?那你就可以见到状态机如下图一样的混乱,后期的维护基本很难进行。

深度强化学习的人工智能在游戏中的运用:游戏AI入门及AI优化指南

  结合前面两种情况,我们又可以发现,使用有限状态机,策划不能充分参与其中,只能由程序员来完成,这会增加程序员的工作量。

  综上所述:在游戏开发中使用状态机显然不失为一种选择,首先它的概念并不复杂,其次它的实现也十分简单而直接,所以当一个简单的npc所需AI,使用状态机是完全可行的。

  但它的缺点却也十分明显,例如难以复用,因为它往往需要根据具体的情况来做出反应,当然当状态机的模型复杂到一定的程度之后,也会带来实现和维护上的困难。

  而现在行为树比有限状态的几个优势:

  1。 行为树提供了强大的灵活性,很容易更改行为树的结构,也易于后期的维护与扩展;

  2。 在程序开发了元件后,逻辑层面全部交给了策划,减少程序员工作量的同时,让策划也可以进行AI问题的初步排查。

  正好弥补了我们上面所说的状态机的缺点,那么接下来我们就着重介绍行为树吧。

  2.2 行为树

  行为树就是一棵节点层次分明的树,控制着AI物体的一系列决定。从树延伸出的叶子节点,执行控制AI物体的指令。各种工具节点组成树的分支,来控制AI指令的走向以形成一系列的指令,这样来满足游戏需要。

  它可以是一棵很高的树,可以具有完成特定功能的子树,开发者可以创建行为库并把它们适当地连接起来以达到非常真实的AI行为。开发过程是高度可迭代的,你可以先排出一个基础的行为树,然后创建新的分支来处理各种达到目标的可选方案,这些分支按照它们的优先级排列,这样AI在一个特定的行为失败可以回溯到另一个策略,这是行为树巨大优势所在。[3]

  现在的很多项目就是Lua做逻辑开发,下图分享一下项目中使用的Lua版本行为树。

  Lua行为树执行上图状态机的相同AI功能:

深度强化学习的人工智能在游戏中的运用:游戏AI入门及AI优化指南

  如果对于上图,一个简单的行为树看不懂的话,可以阅读行为树的工作原理:

  AI 行为树的工作原理

  在例子中,行为树的优点是逻辑直观、一目了然,策划可以借助工具直接配置,不需要程序介入。而缺点则是树分支数量庞大,每次遍历寻找合适节点的过程消耗高。

  三、如何优化AI中的设计

  如果仅仅只是讲述前面两点事实,这篇文章就没有什么意义,接下来分享一些自己对于AI方面的经验,也希望在你优化AI的时候,这一部分能够起到帮助。

  3.1 NPC AI

  在RPG游戏发展的过程中,NPC摆脱了原本傻站原地,无脑发放任务的基本模式,融入了各种各样的AI来丰富行为,《巫师3》中,白天开业的商人,巡逻街道的卫兵;《刺客信条》中,围成一团的群众,穿梭街道的小孩;《如龙0》中让玩家印象深刻的勒索哥等等,这些游戏中NPC AI的加入让整个游戏世界更加的真实,也让玩家的沉浸感有着质的提升。

  拿《逆水寒》NPC来举例:

  1。天气影响:下雨时,NPC会自己打伞,或奔跑到屋檐下避雨,天气放晴又会自动收起雨伞。

深度强化学习的人工智能在游戏中的运用:游戏AI入门及AI优化指南

  2。 互动:撞击NPC可以触发奇遇,与NPC好感度不同所进行交流的内容不同。

  3。 行为:NPC有自己的活动路线,他们有自己的生活区域。

  其实在NPC中还有很多其他的内容,更多的天气感应、更多种类的职业配置,工作任务配置等等,都是让游戏内场景显得更鲜活的方式,在AI中实现NPC具体的功能很简单,这里我们分析一下在AI拿到相应的行为前,是如何判定的。

  NPC行为类型可以为两类:

  1。外部互动(玩家进行碰撞NPC等)

  2。系统变化(天气、时间等的变化引发NPC行为变化)

  而一个NPC的智能行为过程主要分为三步:

  1。事件触发检测

  2。触发响应得到候选的可执行行为

  3。决断出最终行为并通知AI

  事件触发

  外部互动行为本身就是一个事件,所以当客户端上传外部事件消息时,直接处理就行了。

  系统变化是一个值变化事件,例如天气值从原来的1(晴天)变为现在的4(小雨),这时系统特征变化事件被触发。

  触发响应

  1。优先级高的行为触发时,将打断当前正在执行的低优先级行为。

  2。优先级相同的行为触发时,根据设定的行为类型优先级进行判定,如躲雨被撞击,触发外部互动。

  3。当前帧在触发过程中产生的新的触发,会在下一帧执行,防止循环触发。

  行为决断

  通过触发响应,得到了对应的候选可执行行为,此时我们就需要根据当前状态得到最终执行的行为:

  1。排除与当前正在执行的行为互斥的行为(行为互斥机制)。

  2。优先挑选可持续的行为。

  3。进行行为的更新。

  在这样一套流程下来后,AI就可以拿到NPC相应的Action,而具体需要触发喊话,还是打伞,躲雨等动作,简单的写出行为子图即可。

  3.2 机器人AI

  机器人AI,在这里不是指传统Robot的AI,而是指游戏中各种活动需要,而生成的玩家镜像机器人的AI。

  在制作机器人AI,首先要知道机器人AI设计的主要目标:

  ◆ 模拟玩家进行对战,用于PVP破冰和体验提升。

  ◆ 新手过渡,让玩家体验活动时,培养成就感,避免尚未熟悉游戏导致的挫折流失。

  ◆ 陪伴玩家,用强度合理的AI来陪伴玩家参与活动,减少玩家单人参与的有损体验。

  那么机器人AI所需要参考的具体内容是哪些呢?

  如果按照功能点维度,游戏中运用到的机器人战术一般分为三种:

  ◆ 单体战术AI——AI的战斗细节

  ◆ 事件响应AI——AI对于事件的响应

  ◆ 协同战术AI——AI能够互相配合

  而机器人本身一般需要涵盖以下特性:

  ◆ 流畅性——技能释放与衔接,追击与逃跑等战斗效果。

  ◆ 拟真度——符合常识的PK反馈,让玩家没有违和感。

  ◆ 环境适应——机器人能够适应游戏内不同情境/活动的需要(机器人的广度)。

  ◆ 难度可调——机器人的难度(战斗能力)可调(机器人的深度)。

  那么你具体的优化方向就可以往三种战术、四种特性上扩展,以《英雄联盟》与《逆水寒》为例:

  《英雄联盟》[4]

  单人战术:濒死逃亡,当电脑在较低血量会逃走。

  事件响应:尾刀响应,玩家残血时,电脑会感知到,并使用全图技能进行攻击;推塔响应:玩家推完一塔后,二塔电脑玩家都会响应前来防守;换线响应,上路机器人来中路补线的时候,原本中单机器人会前往上路。

  协同战术:Gank行为:电脑帮助其他线玩家进行多打少局部战斗。

(编辑:应用网_阳江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读