Skip to content
This repository has been archived by the owner on May 3, 2020. It is now read-only.

midgen/GOAPerDemo

Repository files navigation

GOAPer

This plugin as an incomplete WIP, (attempt) to use at your own risk

It's not been in active development for some time, although I do plan to come back and refactor/clean it up in the near future with a view to building a decent sized test prototype.

A simple STRIPS-like Goal Oriented Action Planning Framework for UE4

This branch is built on UnrealEngine 4.15.0. See branches for previous engine versions.

C++ plugin designed to be used in Blueprints (although can be used in C++). Includes editor customisations and per-project state configuration.

Based on:

http://alumni.media.mit.edu/~jorkin/goap.html

https://en.wikipedia.org/wiki/STRIPS

Includes a sample project with a (very) basic shooter agent. Otherwise follow the intructions for install and use.

Using a very crude forward search planning algorithm starting from current state at present. Needs work.

##Instructions

  1. Install the GOAPer Plugin
  2. Create a project
  3. Go to Project Settings -> Plugins -> GOAPer
  4. Here you configure all the state atoms you want to use
  5. Create Blueprints based on GOAPAction for each action
  6. Set the PreConditions and Effects in the blueprint defaults (you will see the values from the plugin settings)
  7. Set other parameters such as tick rate, interaction radius etc.
  8. Override the 'Execute' method. This should return false until the action completes, then return true
  9. Remember to set the GOAPState effects before returning true
  10. Create a Blueprint based on GOAPAIController
  11. Set the AvailableActions, consisting of the GOAPActions you have created
  12. Set the Starting State
  13. Set the default Goal

##Todo

  1. Add more comprehensive and robust planning algorithms
  2. Continue building out demo project

About

Demo project for GOAPer plugin

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published