• 联系我们
  • 地址:湖北武汉三环科技园
  • 电话:159116031100
  • 传真:027-68834628
  • 邮箱:mmheng@foxmail.com
  • 当前所在位置:首页 - c++培训
  • C++游戏编程:创建3D游戏 第4章 人工智能
  •   人工智能算法用于确定计算机控制的实体在游戏中的动作。本章介绍三种有用的游戏人工智能技术:1.用状态机改变行为2.实体界中移动的计算径(寻),3.在双人回合游戏(极小化极大和游戏树)中作出决定。本章将向读者展示如何应用这些AI技术来创建塔防游戏项目。

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

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

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

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

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

      本文由 325游戏(m.325games.com)整理发布