Three States and a Plan: The A.I. of F.E.A.R.(笔记)
Source: Jeff Orkin, GDC 2006. Monolith / MIT Media Lab. URL: http://alumni.media.mit.edu/~jorkin/gdc2006_orkin_jeff_fear.pdf Mirror: https://www.gamedevs.org/uploads/three-states-plan-ai-of-fear.pdf Author site GOAP: http://alumni.media.mit.edu/~jorkin/goap.html
核心主张
- 传统游戏 AI 两大支柱:FSM + A*。F.E.A.R. 的角色 FSM 只有三个状态:Goto、Animate、UseSmartObject(后两者本质都是播动画)。
- 决策「何时切换、带什么参数」不写死在状态里,而交给 规划 (planning):搜索满足目标的行动序列。
- 规划近似 STRIPS:目标 = 期望世界状态;行动 = 前提 (preconditions) + 效果 (effects)。
- 称自家系统为 GOAP (Goal-Oriented Action Planning)。
相对 STRIPS 的四处改动(实用化)
- 每行动成本 (cost):用 A* 在「世界状态图」上搜最低成本计划(与导航 A* 共用算法、不同数据结构)。
- 不用 Add/Delete List:固定大小世界状态数组,便于链式匹配。
- 过程式前提:昂贵检查(如逃命路径是否存在)按需算,不塞进常驻世界状态。
- 过程式效果:激活行动时设置 FSM 状态与参数(计划连到执行)。
三大收益
- 目标与行动解耦:同 Goal Set、不同 Action Set → 士兵/刺客/老鼠同目标不同表现;晚加无人机可拼装既有目标/行动。
- 分层叠加简单行为得到复杂战术(开火→闪避→近战→掩体→盲射→换掩体→对话)。
- 失败后重规划:门被堵 → 踢门失败 → 跳窗近战,动态解题。
小队
- 全局协调器按邻近重聚类;简单小队行为发「命令」,个体用目标优先级决定是否服从。
- 「复杂侧翼」常是个体寻掩体路径的涌现,而非独立复杂小队规划。
- 对话在行为决定之后补上,制造「理解命令」的错觉。
与 FSM 对照
- FSM:程序性,手工写转换。
- Planning:声明式,告诉目标与行动,让 AI 自己排序列。
- F.E.A.R.:极薄 FSM + GOAP 互补。