C+游戏编程:创建3D游戏

原书来自:异步社区

翻译by曾小健

第4章 人工智能

人工智能算法用于确定计算机控制的实体在游戏中的动作。本章介绍三种有用的游戏人工智能技术:1.用状态机改变行为2.实体在世界中移动的计算路径(寻路),3.在双人回合游戏(极小化极大和游戏树)中作出决定。本章将向读者展示如何应用这些AI技术来创建塔防游戏项目。

4.1状态机行为

对于非常简单的游戏,AI始终具有相同的行为。例如,双人兵乓中的AI只需跟踪移动中球的位置。 因为此行为在游戏中并没有改变,所以它是无状态的。但对于更复杂的游戏,AI在不同的时间点表现不同。 在吃豆人中,每个幽灵都有三种不同的行为:追逐玩家,散开(幽灵回到设置的“起始位置”),或者跑离玩家。在行为中表示这些变化的方式就是用状态机(statemachine),其中每个行为对应于一个状态。

4.1.1设计状态机

状态本身只是部分定义状态机。 同样重要的是状态机决定如何改变或在状态之间转换。此外,每个州可以有进入或退出州时发生的行为。

在为游戏角色的AI实现状态机时,首先谨慎规划不同的状态以及它们如何互连。以隐形游戏中的基本防卫角色为例。 默认情况下,守卫在预定义路径上巡逻。 如果守卫在巡逻时检测到玩家,则会开始攻击。如果在任何时间点,守卫受到致命伤害,它就会死亡。在这个例子中,守卫AI有三种不同的状态:巡逻,进攻和死亡。

接下来,读者需要为每个状态定义转换。死亡状态转换非常简单:当守卫造成致命伤害时,转换为死亡。 无论当前状态如何,都会发生此情况。 如果在巡逻状态期间发现了玩家,则守卫进入攻击状态。图4.1中的状态机图表示状态和转换的组合。

图4.1基本的隐形AI状态机

尽管这个AI是功能性的,但大多数隐形游戏中的AI角色更为复杂。 假设守卫在巡逻状态时听到可疑声音。 目前的状态机决定守卫继续巡逻。理想情况下,声音应该惊动守卫,并让守卫去搜索玩家。 调查状态可以代表这种行为。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180702A0F32Y00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券