# Handling Complexity in the Halo 2 AI（笔记）

Source: Damian Isla, GDC 2005 Proceeding. Game Developer / Gamasutra, 2005-03-11.
URL: https://www.gamedeveloper.com/programming/gdc-2005-proceeding-handling-complexity-in-the-i-halo-2-i-ai

## 复杂性的代价

- Coherence（勿 dithering）、Transparency（玩家能猜意图）、Run-time、Mental bandwidth。
- 另有 Usability（关卡设计师可导控）、Variety、Variability。

## 决策结构

- Halo 2 用 hierarchical FSM / behavior tree / behavior DAG。
- 子行为竞争：相关性改为**二元**，标准方案以 **prioritized-list** 为主（高优先级可打断）。
- **Impulse**：游离触发器，引用完整行为；用于条件优先级翻转与树内跳转。
- **Behavior tagging**：公共条件用 bitvector 预过滤。
- **Stimulus behaviors**：事件驱动动态插入树，仍在完整优先级语境下竞争。
- **Custom behaviors**：角色变体预处理插入。

## 记忆 / 知识模型

- 树静态共享；每 actor 只为激活路径分配短时状态。
- **Props**：目标对象的感知信念（可与真实世界偏离）→ 可被骗/惊讶；兼作 per-object per-behavior 存储。

## 设计师控制

- Firing positions + Orders + Styles（允许/禁止行为集）。
- Character 参数分层继承，抑制参数爆炸。

## 原则摘录

- Everything is customizable；Value explicitness；Hackability is key；Take something that works and then vary；关键在**表示**。
