Overview
A working prototype of a context-keyed dialogue system for games. It follows Elan Ruskin’s GDC 2012 talk “AI-driven Dynamic Dialog” — the system behind the Left 4 Dead / Team Fortress 2 barks, and an ancestor of the dialogue in Firewatch and Hades — which is also, in spirit, how Arthur worked in The Journeyman Project 3: Legacy of Time.
How It Works
It comes in three escalating parts. First, the base game: a repository of lines scored against the current context, no dependencies, Python 3.9+. Second, an n-gram demo — the moment the lookup table quietly becomes a model. Third, optional NLU layers: an embedding-based intent layer (via model2vec), and a local-LLM voice (via Ollama) where the engine picks the content and the model just voices it — plus a cautionary mode where the LLM improvises from facts alone.
python play.py play the demo python play.py --nlu embed learned intent layer (model2vec) python play.py --npc llm engine picks content, local LLM voices it
Current Status
Playable prototype with keyword and embedding NLU and optional LLM voicing; runs reproducibly with --seed.