GOAP v3
GitHub | Online Documentation | Discord | Forum | Support Edition
v3 introduced many new improvements over v2 allowing for greater control, performance and insights!
What is GOAP?
GOAP stands for Goal Oriented Action Planner. It is an AI architecture that simplifies the process of building complex Finite State Machines (FSMs) by allowing you to define goals and actions, and automatically figuring out which actions to take to achieve those goals. Most famous of powering the AI used in F.E.A.R.
How can it help you?
GOAP can help you building complex AI by defining simple actions which GOAP connects together. It also resolves the best action to take based on the game state. This should make managing a complex decision graph much easier!
Core features
- The resolver is multithreaded (using jobs).
- GOAP visualizer window.
- Setup using two methods: ScriptableObject configuration in the editor, or by using code.
- Two example scenes using both setup methods.
- Support for data injection using your favorite IoC.
- The core is unit tested.
- Well documented.
Release Notes
3.1.1
- Breaking: Two new methods are added to `IGoapInjector`
- Feature: Dynamic conditions (code only)
- Feature: Made AgentTypeFactory and CapabilityFactory injectable
- Feature: Don't call GetCost when action is disabled
- Feature: unity 6.3 support
- Fix: Lowered scriptable GC
3.0.34
- Feature: Easier enable/disable of actions
- Fix: out of date docs about enable/disable
3.0.33
- Fixed: Goal conditions not being marked as met
- Fixed tutorial movement bug
3.0.32
- Fixed GoapActionBase subclasses not rendering ActionProperties in Capabilities
- Fixed missing distance multiplier field in GoapActionProviderEditor
3.0.31
- Feature: Rabbit Logger support
- Docs: Added extra info about generator
3.0.30
- Enhancement: GoapActionBehaviour IsInRange overriding
- Enhancement: Allow AgentTypeBehaviour to be more easily subclassed
- Fix: Creating an agent outside of IdleTargetSensor bounds would result in an endless loop
3.0.29
- Feature: pause agent.
- Fix: Minor docs mistake.
3.0.28
- Enhanced Goal Request Flexibility in GoapActionProvider
- Fix: Demo cleaner not cleaning last item
- Fix: docs unclear about generator namespace
- Fix: Complex example never fixes hunger
- Fix: docs unclear about generator namespace
3.0.27
- Fixes: Action disabler being implemented incorrectly
3.0.26
- Fix: Invalid target's position being used
3.0.25
- Feature: Added xml comments to various classes.
- Feature: Toggle show config during play
- Fix: Corrects agent type string
- Fix: Prevent connecting actions with conflicting effects
3.0.24
- Fix: Missing reference in tutorial
- Fix: Fixes various SO config errors
- Fix: Removed test folder from Asset Store version
3.0.23
Enhanced Resolver:
Choose the best action with smarter heuristics and support for multiple goals.
Action Enhancements:
New lifecycle events and re-validation for finer control over actions.
Agents and Action Providers:
Separate action execution and provisioning for clearer, more modular AI design.
Graph Viewer
Rewritten from the ground up, providing you with more information!
AgentType and Capabilities:
Combine capabilities to create diverse agent behaviors with ease.
Scriptable Configurations:
Completely rewritten SO configs, making it much easier!
Boilerplate Code Generation:
Automate Goal, Action, and Sensor setup for faster development.
Simplified Namespaces:
Streamlined namespaces for better code organization and readability.
A complete overview of the changes can be found here.
To upgrade from v2.1, please reference the upgrade guide.