The HTN Planning plugin lets you create AI that can plan multiple steps ahead by predicting the consequences of its actions. Here are some examples:
- Video: an HTN-based character inventing the optimal plan to attack a target
- Video: two groups of HTN-based characters tactically fighting in a simple FPS arena
Just like with Behavior Trees, you can easily create Tasks, Decorators, and Services from either C++ or Blueprints, and arrange them in a visual graph editor. The HTN planner uses Blackboard data to store knowledge about possible future worldstates. Nodes check and modify values in the worldstate during planning, which makes it possible to make decisions based on possible future states. The planner efficiently finds the plan with the lowest cost, or the one with the highest priority.
Compared to other planning techniques like Goal-Oriented Action Planning, HTN planning is more efficient and gives designers much more control over the AI. It can be as rigid as Behavior Trees, or as flexible as GOAP. You can create AI with just as much autonomy and flexibility as you need: an AI that selects between predefined sequences of tasks, or an AI that is free to arrange its tasks in any order to achieve a goal, or anything in between.
Features:
- Node-based HTN graph editor
- Seamlessly use Blackboard data as worldstate
- Make custom Tasks, Decorators, and Services in both C++ and Blueprints
- Create composable behaviors using subnetworks
- Make subplans within plans to freely mix planning and on-the-fly decision-making
- Cost-based or priority-based planning
- Parallel planning
- Any-order planning
- Integration with the Visual Logger, including visualizing the current plan
- Integration with the Environment Query System for complex movement planning and decision-making
- Realtime debugging features
- Extend the HTN Component with HTN Extensions
- Full source code access
For more info, check out the documentation website, the tutorials, and the official Discord community.
Technical Details
Code Modules:
- HTN [Runtime]
- HTNEditor [Editor]
Number of Blueprints: 0
Number of C++ Classes: 70
Network Replicated: No (not needed for AI)
Supported Development Platforms: Windows, macOS, Linux
Supported Target Build Platforms: Windows 64-bit, macOS, Linux, Android, iOS
Documentation: HTN Documentation
Example Project: HTN Example Project