# 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 的四处改动（实用化）

1. **每行动成本 (cost)**：用 A* 在「世界状态图」上搜最低成本计划（与导航 A* 共用算法、不同数据结构）。
2. **不用 Add/Delete List**：固定大小世界状态数组，便于链式匹配。
3. **过程式前提**：昂贵检查（如逃命路径是否存在）按需算，不塞进常驻世界状态。
4. **过程式效果**：激活行动时设置 FSM 状态与参数（计划连到执行）。

## 三大收益

1. **目标与行动解耦**：同 Goal Set、不同 Action Set → 士兵/刺客/老鼠同目标不同表现；晚加无人机可拼装既有目标/行动。
2. **分层叠加简单行为**得到复杂战术（开火→闪避→近战→掩体→盲射→换掩体→对话）。
3. **失败后重规划**：门被堵 → 踢门失败 → 跳窗近战，动态解题。

## 小队

- 全局协调器按邻近重聚类；简单小队行为发「命令」，个体用目标优先级决定是否服从。
- 「复杂侧翼」常是个体寻掩体路径的涌现，而非独立复杂小队规划。
- 对话在行为决定**之后**补上，制造「理解命令」的错觉。

## 与 FSM 对照

- FSM：程序性，手工写转换。
- Planning：声明式，告诉目标与行动，让 AI 自己排序列。
- F.E.A.R.：**极薄 FSM + GOAP** 互补。
