在这本书中有大量的算法和技术。读者很容易迷失其中,所以从全局着眼去了解各个部分是如何组合在一起的十分重要。

为了有所帮助,我使用了一个统一的结构来讨论游戏中使用的AI。这不是唯一可选的模型,也不是唯一贴合本书中技术的模型。但是为了使讨论更清楚,我将展示每种技术如何适用于制作游戏 AI 角色的通用结构。

下图描述了这个通用模型。它将人工智能任务分成三个部分:运动、决策和策略。前两个部分包含基于字符的算法,最后一个部分针对某一团队或某一方进行操作。围绕着这三个AI元素的是一套完整的附加基础设施。

并不是所有的游戏应用程序都需要全部三个组件的AI

一方面,棋盘游戏,如象棋或冒险只需要战略层面,游戏中的 AI 玩家不需要自己做决定,也不需要担心如何移动棋子或角色。

另一方面,在许多游戏中根本没有策略。平台游戏中的 NPC 角色,比如《超级马里奥兄弟》(Super Mario Bros),是纯粹的反应型游戏,他们自己做出简单的决定并根据这些决定行事。AI逻辑并没有协同这些敌人角色来让他们将阻挠玩家的任务做到最好。

一、运动

移动是指将决策转化为某种运动的算法。在《超级马里奥·阳光》游戏中,当一个没有投射攻击的敌人角色需要攻击玩家时,它首先会直接面向玩家。当它足够近的时候,它就能发动攻击。攻击决定是由一组追踪玩家位置的移动算法来执行的。只有这样,攻击动画才能播放,玩家的生命值被消耗。

移动算法可能比简单的直接去某个点更复杂。一个角色可能需要避开路上的障碍,或者甚至通过一系列的房间。《分裂细胞》(Splinter Cell)游戏中某些级别的守卫会对玩家的出现发出警报。这可能需要导航到最近的壁挂式警报点,但可能很远,可能涉及复杂的绕过障碍物或穿过走廊的导航。

许多动作都是通过动画直接执行的。如果《模拟人生》中的一个模拟人物坐在桌子旁边,面前放着食物,想要进行一个吃的动作,那么就简单地播放吃的动画。一旦人工智能决定了角色应该吃东西,就不需要人工智能了(使用的动画技术不在这本书中)。然而,如果同样的角色在想吃东西的时候在后门,移动AI需要引导她到椅子(或附近的其他食物来源)。

二、决策

决策包括一个角色制定下一步该做什么。通常,每个角色都有一系列他们可以选择的不同行为:攻击、站立、隐藏、探索、巡逻等等。决策系统需要找出在游戏的每一个时刻,哪种行为是最合适的,然后被选择的行为就可以使用移动AI和动画技术来执行。

最简单地说,角色可能有非常简单的选择行为的规则。例如,在《塞尔达》游戏的各个级别中,农场里的动物会站着不动,除非是玩家靠得太近的,靠得太近它们会离开一段距离。
另一个极端的例子是,《半条命2》中的敌人会做出复杂的决策,他们会尝试多种不同的策略来接触玩家:组合一些过渡动作,如投掷手榴弹和镇压火力,以实现他们的目标。

有些决策可能需要移动人工智能来执行。近战(近身)攻击需要玩家靠近目标。在诸如《黑暗之魂》这样的重型战斗游戏中,决策会让角色向他们的目标移动,也会决定执行哪种攻击和动画。在其他游戏中,一旦作出决定,预定的动画是没有任何的移动(例如模拟人生中的任务吃东西)或直接修改游戏的状态没有任何形式的视觉反馈(比如《文明VI》中当一个国家AI选择研究一项新技术,它只是发生在玩家没有视觉反馈)。

三、策略

你可以通过移动AI和决策AI走得很远,而大多数基于动作的三维(3D)游戏只使用这两个元素。但是为了协调整个团队,需要一些战略性的人工智能。

在这本书的上下文中,策略是指一组角色使用的整体方法。这一类的人工智能算法不只是控制一个角色,而是影响整个角色集合的行为。群体中的每个角色通常会有自己的决策和运动算法,但总体而言,他们的决策将受到群体策略的影响。

在最初的《半条命》中,敌人以团队的形式包围并消灭玩家。一个人通常会冲过玩家,占据侧翼位置。这在最近的游戏中也得到了遵循,比如《荣誉勋章》系列中不断发展的AI引擎。随着时间的推移,我们已经看到一个敌人团队所能执行的各种战略行动越来越复杂。

四、基础设施

然而,人工智能算法本身只是故事的一半。为了真正为游戏构建 AI,我们需要一整套额外的基础设施,移动指令需要在游戏中通过动画或物理模拟等基础设施转化为动作。

同样的,人工智能需要从游戏中获得信息来做出明智的决定。这有时被称为“感知”:计算出角色知道什么信息。实际上,它的范围远不止模拟每个角色的所见所闻,它还包括了连接游戏世界和 AI 之间的所有 API,这些 API 通常是 AI 程序员工作的一个重要部分,而且根据我的经验,它是 AI 调试工作的很大一部分。

最后,需要对整个 AI 系统进行管理,使其使用正确的处理器时间和内存。类似于游戏不同模块通常存在某种类型的执行管理(比如渲染分层级),管理AI也需要一整套自己的技术和算法。
这些组件中的每一个都可能被认为超出了 AI 开发人员的职责范围,有时候确实是这样,特别是,动画系统通常是图形引擎的一部分,或者越来越多地有自己的专门程序员。但是大多数基础设施对于 AI 的正常运作是必不可少的。在这本书中,我在一定程度上介绍了除动画之外的每个基础设施组件。

五、基于代理的AI

在这本书中,我并不经常使用术语“代理”,尽管我所描述的模型是基于代理的模型。
在这种情况下,基于代理的 AI 是关于从游戏数据中获取信息,决定根据这些信息采取什么行动,并执行这些行动的自主角色。

它可以被看作是自底向上的设计:你首先计算出每个角色的行为,然后实现支持它的人工智能;而游戏的整体行为是由个体角色行为的协同工作体现出来的。我们将使用的 AI 模型的前两个元素,移动和决策,来构成了游戏中一个代理的 AI。

相比之下,非基于代理的 AI 则试图从上到下计算出所有事物的运行方式,并构建一个单一系统来模拟所有事物。例如《侠盗猎车手3》中城市的交通和行人模拟。总体交通流量和行人流量是根据时间和城市区域来计算的,只有当玩家能够看到它们时,才会变成单独的汽车和人。

然而,这种区分是模糊的。我们将看到非常自上而下的细节技术,而大多数角色 AI 是自下而上的。**一个好的 AI 开发人员会混合和匹配任何可靠的技术来完成工作,而不考虑方法。**这种务实的方法是我一直遵循的。所以在这本书中,我避免使用基于代理的术语,而是更喜欢笼统地讨论游戏角色,无论他们是如何构造的。

六、关于本书

在这本书的正文中,每一章都将回顾这个 AI 模型,指出每章主题与该 AI 模型的联系。这个模型对于理解“事物是如何连接的”、以及“哪些技术是其他技术的替代品”非常有用。

但分界线并不总是泾渭分明;这是一个通用的模型,而不是一个紧箍咒。在最后的游戏代码中,每个类别的全部人工智能技术,以及大量的基础设施,都将无缝地运行在一起。

许多技术也可能在多个类别中扮演着角色:例如,寻路既可以是一种移动,也可以是一种决策技术;类似地,一些分析游戏环境中的威胁和机会的战术算法可以同时作为单个角色的决策者或决定整个团队的策略。

【游戏AI】2 - 游戏AI模型相关推荐

  1. 云游戏、VR、AI,云计算给元宇宙提供了哪些想象力?

    2021 最火的新概念,莫过于元宇宙.2021 年 10 月 29 日,Facebook 宣布改名 Meta:2021 年 11 月 1 日,"元宇宙第一股"    Roblox ...

  2. AI版「按图索骥」,比猜画小歌更复杂的的AI交互游戏

    郑集杨 发自 凹非寺  量子位 报道 | 公众号 QbitAI 你能在时间结束前根据Emoji找到你身边的物品吗?大概,像这样: 跟我玩?不不不,是你自己跟这个AI玩,找出东西然后让AI辨认它. 这并 ...

  3. 说人话教AI打游戏,Facebook开源迷你版星际争霸,成果登上NeurIPS 2019

    鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 怎么教AI打游戏呢?当然是直接下指令啦. 告诉AI造农民,基地就开始唰唰往外吐农民: △下方英文指令:创造新农民 指挥农民挖矿造兵工厂,一句 ...

  4. Paddle.js PaddleClas 实战 ——『寻物大作战』AI 小游戏

    1. 前言 AI 自诞生以来就应用在各个科技前沿领域,随着发展进程加快,在娱乐方面也有越来越多的趣味性游戏开始将AI融入其中.『寻物大作战』正是一款基于 AI 能力打造的趣味性小游戏,目的就是让玩家通 ...

  5. 人工智能(AI)在游戏中的应用(下)

    再回来看异形AI 我们知道,异形AI是控制异形行为的系统.它永远不会从管理者AI哪里得到有关玩家位置的信息.它会得到的信息包括大概在什么位置进行搜寻.剩下就只能靠自己来找到玩家了.它确实有一些工具可以 ...

  6. c++ ea 代码 生成_EA公司教AI制作游戏角色,行动流畅自然,全程无需人类介入

    想开发出一款爆款游戏,是一件难度极高的事情,不仅要有精妙的内容设计,精致的光影效果,自然的动画建模,还要投入相当多的资金和时间.现在,美国游戏公司艺电(EA)正在与加拿大不列颠哥伦比亚大学(UBC)合 ...

  7. 拼图游戏和它的AI算法

    写了个拼图游戏,探讨一下相关的AI算法.拼图游戏的复原问题也叫做N数码问题. 拼图游戏 N数码问题 广度优先搜索 双向广度优先搜索 A*搜索 游戏设定 实现一个拼图游戏,使它具备以下功能: 1.自由选 ...

  8. 教ai玩游戏_简单解释:DeepMind如何教AI玩视频游戏

    教ai玩游戏 by Aman Agarwal 通过阿曼·阿加瓦尔(Aman Agarwal) 简单解释:DeepMind如何教AI玩视频游戏 (Explained Simply: How DeepMi ...

  9. 人工智能(AI)在游戏中的应用(上)

    AI在视频游戏中的应用 副标题:游戏AI技术的发展现状以及在视频游戏领域的应用概览 (原作者:)Written by Laura E. Shummon Maass and Andy Luc 大多数人可 ...

  10. MMORPG游戏的人工智能(AI)和行为树设计

    文 / alchemistli 什么是MMORPG的AI? 玩MMORPG的地球人都知道,MMORPG的AI实在是弱智的要死.即使是在WOW这样顶级的游戏中,AI也是有限得掉渣,绝大部分NPC都像一个 ...

最新文章

  1. 用深度优先搜索解迷宫问题
  2. Jquery中发送ajax请求示例代码
  3. bib config_OEMAddressTable,config.bib详解
  4. GridView 梆定一个实体类
  5. Django中--自定义模型管理器类
  6. js 数字序号 转 字母序号
  7. Windows10上安装Kali并设置apt源
  8. linux内存专题,linux内存浅析
  9. 认识Blend 3工作区
  10. html固定悬浮窗效果,js 固定悬浮效果实现思路代码
  11. python办公实例100例-Python 100例(上)
  12. 【TSP】基于matlab狼群算法求解旅行商问题【含Matlab源码 211期】
  13. SaaS、PaaS、IaaS典型的云计算解决方案架构
  14. Fabric.js 文档
  15. 【实验技术笔记】基因沉默:siRNA/shRNA
  16. php rabbit pie broke,英语拟声词大全
  17. 淘宝店如何加入全屏轮播图片
  18. 完美世界前三季营收57亿同比降15% 净利14.4亿同比增80%
  19. 人体的能量场是什么?
  20. ffmpeg播放器实现详解 - 快进快退控制

热门文章

  1. 【C语言】C语言FILE详解
  2. 腾讯网关TGW基础原理入门
  3. 面向计算思维培养的PBL教学模式设计以模式识别课程为例
  4. 分析BGP协议(EBGP/IBGP)
  5. python实现自动下载软件怎么办_打造一款Python实现自动下载电影的“脚本”!那种电影也可以哦!...
  6. Android 屏幕横屏和旋转问题
  7. Element制作一个简洁的个人信息界面附带简单的双向绑定
  8. Linux 基金会执行董事 Jim Zemlin:开源如何成为创新的关键推动力
  9. zabbix监控windows磁盘读写速度
  10. 笑来校园巡讲:但行好事,莫问前程