游戏AI实现-GOAP

devtools/2025/4/1 19:27:21/

GOAP原理:

GOAP(面向目标的行动规划,Goal - Oriented Action Planning) 旨在让智能体通过选择一系列行动来达成特定目标。它基于对世界状态的理解,每个行动都有前提条件和效果。智能体通过分析当前世界状态与目标状态的差异,选择能缩小这种差异的行动,直到实现目标。

关键组件:

世界状态(World State):用一组属性 - 值对来描述游戏世界的当前情况。例如,“playerHasAxe” 为true表示玩家拥有斧头,“woodCollected” 为0表示收集的木材数量为 0。世界状态会随着行动的执行而改变。
行动(Action):每个行动都包含前提条件(preconditions)和效果(effects)。前提条件是行动能够执行所必须满足的世界状态,效果则是行动执行后对世界状态的改变。比如 “砍树” 行动,前提条件可能是 “playerHasAxe” 为true,效果是 “woodCollected” 增加,“treeCount” 减少。
目标(Goal):也是用一组世界状态来定义代表智能体期望达到的最终状态。例如,目标可能是 “woodCollected>= 10” 且 “hasShelter” 为true。
规划器(Planner):负责搜索一系列行动以实现目标。常用的方法是 A* 算法的变体,通过评估不同行动序列的成本来找到最优解。成本通常基于行动的执行代价以及该行动对接近目标的贡献程度。

代码实现:

测试Demo实现:

未完待续。。。

参考书籍和链接:

《AI FOR GAMES》

Hybrid GOAP AI in Unity (Package Overview) (youtube.com)

Better AI in Unity - GOAP (Goal Oriented Action Planning) (youtube.com)

Goal-Oriented Action Planning Part 1 (youtube.com)

面向目标的 AI 行动计划 |Envato Tuts+ (tutsplus.com)


http://www.ppmy.cn/devtools/172447.html

相关文章

使用msmtp和mutt在CentOS上发送指定目录下的所有文件作为邮件附件

1.安装 msmtp: 如果尚未安装,请先通过以下命令安装msmtp。 sudo yum install msmtp 2.配置 msmtp 使用新浪邮箱: 创建或编辑配置文件~/.msmtprc,输入以下内容(记得替换授权码)。 defaults tls on tls_st…

第十五章:Python的Pandas库详解及常见用法

在数据分析领域,Python的Pandas库是一个不可或缺的工具。它提供了高效的数据结构和数据分析工具,使得数据处理变得简单而直观。本文将详细介绍Pandas库的基本功能、常见用法,并通过示例代码演示如何使用Pandas进行数据处理。最后,…

在Qt中判断输入的js脚本是否只包含函数

目前在使用QtScriptEngine,在利用evaluate注册子函数时,要求用户输入的js文件中的内容仅仅是函数,函数体外,不能出现一些变量的声明、函数的调用等其他代码。 反复咨询DeepSeek后,终于给出了一个目前测试可用的代码&am…

Sentinel 相关知识点

Sentinel 实现原理? Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护等多个维度来帮助开发者保障微服务的稳定性。以下是 Sentinel 的实现原理: 核心概念 资源&…

[Mac]利用Hexo+Github Pages搭建个人博客

由于我这台Mac基本没啥环境,因此需要从零开始配置,供各位参考。 注意⚠️:MacBook (M4)使用/bin/zsh作为默认Shell,其对应的配置文件为~/.zshrc 参考文档: HEXO系列教程 | 使用GitHub部署静态博客HEXO | 小白向教程 文…

基于Flask的防火墙知识库Web应用技术解析

基于Flask的防火墙知识库Web应用技术解析 一、系统概述 本系统是一个结构化网络防火墙知识库的Web实现,采用Python Flask框架构建,提供章节导航、知识点检索、详情展示等功能。系统整合了100条防火墙领域核心知识点,涵盖基础概念、配置实践…

SylixOS 中 select 原理及使用分析

1、select接口简介 1.1 select接口使用用例 select 是操作系统多路 I/O 复用技术实现的方式之一。 select 函数允许程序监视多个文件描述符,等待所监视的一个或者多个文件描述符变为“准备好”的状态。所谓的”准备好“状态是指:文件描述符不再是阻塞状…

windows磁盘管理

简介 Windows 磁盘管理是 Windows 操作系统中的一个功能强大的工具,用于管理和维护计算机的磁盘分区、卷和存储设备 磁盘管理的主要功能 查看磁盘分区信息: 可以查看所有磁盘的分区情况,包括分区大小、分区类型(如 NTFS、FAT32 …