This project addresses the challenge of generating varied, context-appropriate behavior for large populations of ambient NPCs in open-world games without exceeding tight runtime budgets. The core contribution is a memory-driven action selection framework where NPC behaviors are defined as directed graphs of actions and a bounded memory mechanism favors untried or least-recently used transitions, producing behavioral variety without requiring online planning or search. The framework is implemented as an engine-agnostic C++ shared library with a public C API and JSON-defined behavior configurations. It has been integrated and validated in both Unity and Unreal Engine, demonstrating cross-engine portability and sub-linear performance scaling from 50 to 200 NPCs while remaining well within per-frame budget targets.
Eric Buitron-Lopez and Roberto Solis-Oba, "A Memory-Driven Action Selection Framework for Scalable Ambient NPC Behavior," to appear in Proceedings of the 2026 IEEE Conference on Games (CoG), Madrid, Spain, September 1–4, 2026.
@inproceedings{buitronlopez2026,
author = {Buitron-Lopez, Eric and Solis-Oba, Roberto},
title = {A Memory-Driven Action Selection Framework for Scalable Ambient {NPC} Behavior},
booktitle = {Proceedings of the 2026 IEEE Conference on Games (CoG)},
year = {2026},
note = {To appear}
}
This entry will be updated with the final page numbers and DOI once the proceedings are published.
The framework was integrated and validated in two demonstration scenarios. Voiceover commentary will be added in a future update.
30 NPCs across three character types (vendors, guards, visitors) exhibiting ambient behavior driven by the same configuration files.
10 NPCs across two character types (dancers, visitors) in a dance club environment. The same compiled framework DLL drives behavior in both scenarios, illustrating the engine-agnostic design.
C++ source code, build instructions, and integration headers.
Full MSc project report.
PowerPoint slides from the final defense presentation.
Sample Unity project demonstrating framework integration, including a reusable C# wrapper layer and JSON behavior configurations.
Sample Unreal Engine project demonstrating framework integration, including a reusable C++ wrapper module and JSON behavior configurations.