
引言:从状态机爆炸到目标驱动规划FSM 管理怪物行为时,状态转换条件膨胀到数千行,新增一个"寻找掩体"逻辑就引发状态爆炸;行为树结构清晰,却难以表达多步推理(没血找药、药在锁箱里、先找钥匙)。GOAP(Goal-Oriented Action Planning)把 AI 行为重构为"从当前世界状态到目标状态的路径搜索",NPC 不再被硬编码流程驱动,而是按环境动态生成行动计划。一、数据模型:世界状态与动作1.1 世界状态表示世界状态是一组命题的集合(HasKey、TargetAlive、HealthLow)。MMORPG 服务端对 GC 敏感,状态表示应避免字典:位掩码(命题数有限时)或紧凑结构体是标准选择,状态的比较与拷贝都是常数时间操作。1.2 动作的前置条件与效果每个 Action 定义三元组:Preconditions:执行该动作要求的世界状态子集;Effects:动作完成后对世界状态的修改;Cost:规划代价,可为静态配置加动态权重函数。规划的本质是在"状态空间"中搜索:动作是状态之间的边,起点是当前状态,终点是满足目标的状态。二、规划算法:逆向 A* 搜索规划器从目标状态出发逆向推导至当前状态(逆向搜索的优势在于目标空间通常远小于可达状态空间,剪枝更早生效):// GOAP 规划:逆向 A* 搜索 publi