news 2026/9/8 9:31:45

GOAP 目标导向行动规划:从 STRIPS 算法到 F.E.A.R. 商业实现的工程化实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GOAP 目标导向行动规划:从 STRIPS 算法到 F.E.A.R. 商业实现的工程化实践

一、开场:FSM 的「死亡螺旋」与 GOAP 的「破局点」

想象一个潜入类游戏:玩家躲在墙角,敌方哨兵发现了你。按传统 FSM(Finite State Machine,有限状态机)实现,NPC 的反应路径是写死的——

if (发现玩家) → 切换到"警戒状态" 警戒状态 = 固定动作序列:拉警报 → 走向玩家 → 攻击

如果警报器恰好坏了呢?程序员没预料到这个 corner case,NPC 就会卡死或者穿墙走过去硬拉。这种行为在玩家眼里就是「智障」。

问题的根源不是程序员偷懒,而是 FSM 的结构性缺陷:它把「决策」与「执行」绑死在状态转移表里。当世界状态偏离预设剧本,状态机就走不下去。

GOAP(Goal-Oriented Action Planning,目标导向行动规划)的破局思路是:把决策和执行解耦

  • 决策层:给定当前世界状态(WorldState)和目标状态(GoalState),由规划器(Planner)动态算出动作序列;
  • 执行层:NPC 按规划好的动作序列一步步执行,每执行一步就更新世界状态,遇到失败就重新规划。

这听起来像 A寻路,没错,GOAP 本质上就是 A在抽象状态空间里的应用**。但它的独特之处在于把「NPC 想要什么」和「NPC 能做什么」分成了两套声明式数据结构,由规划

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/8 9:30:44

SVD海杂波抑制实战:原理、参数调优与工程避坑指南

简介:这是一套用于海杂波抑制的奇异值分解(SVD)算法实现资源,面向雷达信号处理、海洋遥感及弱小目标检测方向的研究者与工程师。核心思路是将雷达回波矩阵分解为U、Σ、V三部分,通过分析奇异值大小区分海杂波与目标分量…

作者头像 李华
网站建设 2026/9/8 9:30:21

ILSpy汉化版使用指南:.NET反编译与源码恢复实战

简介:一款基于.NET的免费开源反编译器,中文汉化版,面向.NET开发人员、逆向工程爱好者及需要无源码调试的程序员。它可将编译后的.dll或.exe程序集反编译回C#、VB.NET等可读源码,帮助初学者快速理解第三方库的实现逻辑,…

作者头像 李华
网站建设 2026/9/8 9:30:12

嵌入式内存管理面试全攻略:堆栈、对齐、大小端与MMU/MPU

我带了几年嵌入式团队,面试时几乎每次都会聊到内存管理。不是我喜欢抠八股文,而是这块真能筛出两类人:一类背过答案,另一类是真的被段错误、HardFault折磨过。标题里写的“堆栈、对齐、大小端”其实只是三个关键词,真正…

作者头像 李华
网站建设 2026/9/8 9:29:53

从“抽卡”到“可回滚”:AI生图工作流的状态管理实践

1. 抽卡式出图为什么越抽越累:问题出在"没有状态" "别把 AI 生图当抽卡"这句话,听起来像是一句正确的废话,但真正做到的人极少。我们中的大部分人,用完 Midjourney、SD 这类工具后,产出过程其实就…

作者头像 李华
网站建设 2026/9/8 9:26:52

SquadLink服务器列表“网络不可达”报错排查指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/8 9:25:46

基于Django的智慧学习平台系统Python(源码+lw+部署文档+讲解等)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

作者头像 李华