ConstructASI

Daywalker

Project Summary

Daywalker is an open-source Unreal Engine 5 developer plug-in that lets teams prototype conversational NPCs locally, offline, and directly inside the Editor. The plug-in exposes a Blueprint-callable node that talks to a small local language-model runner (llama.cpp-class) on the developer’s machine. A minimal persona file and a fixed PromptComposer template shape behavior, while a simple Memory store (JSON file) preserves a few salient facts across the session so NPCs can recall prior interactions.

Daywalker targets the gap between cloud-only character engines and ad-hoc wrappers by providing a cohesive, documented, and extensible local-first workflow. The v1 deliverable includes the UE5 plug-in, runner, persona schema/loader, PromptComposer, a basic Memory slot, a small demo map with two NPCs (guard and merchant), and concise documentation. Code will be released under a permissive license to encourage adoption and community contributions.

Technical Approach

Architecture consists of five parts:

  1. UE5 plug-in in C++ exposing a DaywalkerAgent Blueprint node (Initialize, QueryLLM) and editor settings for runner host/port and model name.
  2. Local runner process with /health and /generate endpoints; initial output is buffered text for simplicity.
  3. Bridge client in the plug-in with timeouts and error surfacing to the UE log.
  4. Persona schema (JSON) loaded at init; a fixed PromptComposer template inserts role, goals, style, and safety note.
  5. Memory store as a JSON file holding the last N utterances with a small size guard to keep prompts bounded.

The MVP acceptance tests are: plug-in loads; runner responds; end-to-end echo in PIE; persona alters style; memory enables a single fact recall on re-engagement. Post-v1: optional streaming, SQLite store, voice/TTS, behavior-tree hooks, and future UEFN exploration when platform pathways allow.