有限状态机(FSM)是最简单的人工智能模型形式之一,通常可被用于大多数游戏中。FSM由有限数量的状态组成,这些状态通过它们之间的转换连接起来。游戏实体从初始状态开始,然后寻找将触发转换到另一个状态的事件和规则。需要注意,在FSM游戏中,游戏实体在任何给定时间只能处于一种状态。
游戏FSM的缺陷
FSM设计的游戏有一个明显缺点是它的可预测性。所有NPC的行为都是预先设定好的,所以在玩了几次基于FSM的游戏后,玩家可能会失去兴趣。
在FSM中,设计人员罗列了AI可能遇到的所有可能情况,然后针对每种情况编写特定的反应。基本上,FSM AI会通过其预编程行为迅速对人类玩家的行为做出反应。例如,在射击游戏中,AI会在人类玩家出现时进行攻击,然后在自身健康水平过低时撤退。
FSM在游戏中的实际应用
AI守卫角色的简单FSM。例如,让我们看一下典型射击游戏中的AI守卫角色。通过FSM,让NPC可以巡逻、追逐和射击。
一个简单的FSM中有四个组件:
状态:该组件定义了游戏实体或NPC可以从中选择的一组状态(巡逻、追逐和射击)
转换:该组件定义不同状态之间的关系
规则:此组件用于触发状态转换,玩家在视线范围内,足够近就攻击;在视野外或玩家已死亡,则保持正常状态。
Events:这是触发检查规则的组件。比如NPC守卫的可见区域,与玩家的距离等。
FSM被广泛用于游戏AI,因为它们易于实现,对于简单和复杂的游戏来说都绰绰有余。使用简单的if/else语句或switch语句,可以快速实现一个FSM。