OWNPC Tool is an award-winning (2nd Place 'Masters Design' GradEx 2024) that was created for Unreal Engine 5.2 with the purpose of solving the problem of under-developed friendly NPCs in contemporary video games. Its aim was to empower designers with its simple-use character setup, and assist programmers via its easy-to-extend systems.
By default, each NPC contains statistics for fullness, social battery, and contentedness, as well as a current emotion. These values change over time depending on additional threshold values and external factors (settings for extroversion/introversion, activity/laziness, emotion state). This ensures characters feel dynamic and individual as they wander around the game world. A scheduling system works in tandem with NPC stats to constrain each character's agency within the game world.
An additional querying system identifies tags from 'SmartObject' actors in the world, only storing their name, position and interaction state, to keep the query data lightweight and efficient. This is used with the NPC stats, in-game time (seen in the demonstration project as a day-night cycle), and scheduling system to point agents to their appropriate objectives within the game world. All evaluations of agent behaviors are handled entirely within a set of hierarchical state machines via Unreal Engine's new StateTree feature.
To inform the project's development, research was undertaken exploring the history, best practices, and test participation for an understanding of which features should be prioritized and how they should be implemented during the development of the tool. A paper was created on the conclusion of the test, which can be viewed below.