基于强化学习的UE4 GOAP插件——需求分析与设计

m0_59911267 2022-01-08 20:37:44

一、项目背景

GOAP(Goal-Oriented Action Planning)框架是一种决策架构,通过对智能体制定目标,使智能体根据自己当前所处的状态和环境制定相应的行动计划。与传统游戏当中的FSM有限状态机等方法相比,GOAP框架智能体能够应对更加复杂的游戏场景。当前GOAP插件一般使用A*等算法搜索路径,不能接收过多的状态、动作内容,不能适应某些应用场景,而强化学习于环境、状态、行动、奖励机制的特点完美契合于GOAP框架,本课题将实现一个基于强化学习算法的GoapUE4插件。

二、项目内容

本课题主要是在Ureal engine软件中实现基于goap决策算法的智能npc插件。目标导向型行动计划(GOAP)是代理的一种人工智能系统,让你能够计划一系列行动去满足一个特殊的模板。特殊的行动序列不仅依靠于目标,同时也依靠于世界和代理当前的状态。根据npc在环境中的信息决策出最佳和行动方案或者路线。

三、需求分析

需求类型可分为功能需求、质量需求、设计限制、过程需求,本项目插件分析如下:

 四、用例分析

Goap行为插件主要面向游戏开发者和管理员。根据分析,游戏开发者主要可以使用以下功能,有以下用例。

  1. 建立自己的游戏场景
  2. 根据游戏场景训练算法模型
  3. 根据游戏状态获取对应的最优动作输出

 五、功能模块图

本人在实践工程中主要负责强化学习算法部分,强化学习算法模块如下。

 六、设计

工程实践所使用的设计模式有:

1.代理模式:强化学习算法与Goap插件主体之间是独立的,为降低耦合,采用代理模式。

2.工厂设计模式:Goap插件中定义的动作等所需实例化的对象较多,使用工厂设计模式。

3.单例设计模式:强化学习算法是唯一的,使用单例设计模式。

对应的强化学习场景算法AgentUML图如下:

采用的开发平台和框架为:

算法开发平台:Python

强化学习框架:parl/tensorflow

强化学习工具库:gym

服务器:Gpu云服务器

Goap插件开发平台:UE4

演示Demo开发平台:UE4

作者:487

...全文
673 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

571

社区成员

发帖
与我相关
我的任务
社区描述
软件工程教学新范式,强化专项技能训练+基于项目的学习PBL。Git仓库:https://gitee.com/mengning997/se
软件工程 高校
社区管理员
  • 码农孟宁
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧