Utility AI Plugin

Utility AI Plugin Unreal Engine C++ (WIP)

Proctored By: Sercun Sengun

Start Date : January 2026

Current State: Work in Progress

I am looking to create a Utility AI plug-in for Unreal Engine 5. I am working on this project as a part of my Independent Research with the University of Central Florida. I am looking to understand the behavior tree while it’s already strict nature while creating complex dynamics to react alongside that component. This mathematical model used to score the AI’s decision is well documented throughout the internet, but I would like to recreate something and make a simple AI plugin for projects that could utilize a modular kit.

Core Concept

Each AI agent maintains a list of possible actions.

Each action contains several considerations.

Each consideration evaluates part of the world or agent state and returns a normalized score between 0 and 1.

At runtime:

  1. Build a context object

  2. Score all actions

  3. Select the highest scoring action

  4. Execute or switch if necessary

The system reevaluates at a configurable interval, allowing decisions to adapt dynamically.

X4HXhYAAAAGSURBVAMAoot8N4dX3XQAAAAASUVORK5CYII=

What I have learned from this Independent Research

Throughout this project, I gained a deeper understanding of both Utility AI systems and Unreal Engine 5’s C++ architecture. As I went through my last semester at the University of Central Florida and learning more on optimizations and overhead I tend to find myself having to redo; I found a lot of new ways to create finite functions and better understand ways to create complex bottlenecks on the CPU.

On the AI side, I explored how decision-making can be handled through continuous evaluation instead of more rigid approaches like Behavior Trees. Building a scoring-based system showed me how even small mathematical tweaks can have a big impact on how that character behaves. It also made it clear how important things like normalization, weighting, and response curves are when trying to create behavior that feels natural and responsive. As I continue on this research, I hope to find a way to downsize the amount of actions and consideration as having multiple AI agents can cause a lot of overhead with the CPU, maybe having a shared hive-mind with agents to create the illusion of it but still randomize part of that.

From an engineering standpoint, this project helped me get more comfortable designing modular and scalable systems in Unreal Engine. Working in C++ improved my understanding of memory management and class structure, and pushed me to think more carefully about separating responsibilities between components, actions, and considerations. Integrating everything with Blueprints also gave me hands-on experience making C++ systems accessible and flexible for designers. As I continue to work on the Technical Design aspect of it like creating more open ended functions or find an ease of input for this as its current iteration still feels complicated I would like to evolve as a Programmer to extend more help to the technical design team. This is what I mostly focused on towards the end of the semester was creating something more design friendly before things got way too complicated for designers.

Overall, this project helped me connect AI theory with real-time game implementation. I think I am understanding the bridge between Programmer/Engineer to Technical Designer. I do believe that it made me more confident in building reusable systems in Unreal Engine. I am looking forward to having more time to work on this project post graduation.

Scroll to Top