Goal-Oriented Action Planner
Custom AI System - Unreal Engine 5
Developed in equal partnership with Kaleb Schmenk, now working at EA on the Madden series.
Custom AI System - Unreal Engine 5
Developed in equal partnership with Kaleb Schmenk, now working at EA on the Madden series.
This project is a fully custom Goal-Oriented Action Planning (GOAP) system built from scratch in Unreal Engine, without Behavior Trees, State Trees, third-party plugins, or pre-built planning frameworks. Kaleb and I jointly designed and implemented the entire system, combining C++ for its core data structures and planning algorithm with Blueprints for individual actions, goals, and AI orchestration.
Rather than following scripted behavior sequences, agents reason about a set of world-state facts and dynamically determine which actions can transform their current situation into a desired goal. Our planner searches backward from that goal using an algorithm similar to A* Pathfinding, accumulating action costs and rejecting actions whose side effects would conflict with other requirements. Actions themselves are data-driven: new behaviors can be authored in Blueprint by defining their preconditions and effects without modifying the underlying planner.
Agents also continuously validate their plans as the simulation changes. Before executing each step, the system simulates the entire remaining plan against the latest world state; if another agent has destroyed a target or otherwise invalidated an assumption, the plan is abandoned and rebuilt. Combined with priority-based goal selection, this allows groups of agents to independently patrol, engage targets, retreat, and change objectives through emergent planning rather than hand-authored behavior sequences.
Emergent planning behavior is done through Actions, which have Preconditions, Effects, and Costs. For example, to get a fighter as your target, it is required that you don't already have one. Once you gain a target, "Has Target" and "Target is Fighter" are set to true! This allows designers to add new AI behaviors with zero code.
My Role: AI Programmer and Designer
Responsibilities: AI Architecture • C++ Development Unreal Blueprints • Algorithms • Systems Design • Debugging and Visualization
Showcase of a giant space battle of autonomous, planning, goal-oriented AI agents! Every different type of ship has different goal priorities. Read the video description for more details!
The system can also be used seamlessly for player control, if autonomous movement is not adequate.
We wrote our architecture for different types of ships around Unreal's Data Table system to ensure a scalable, data-driven approach: and to make adding new types of ships a breeze!