Build role-playing games where LLMs are first-class primitives — not bolted-on chatbots, but the narrative engine, the game master, the quest designer, and the world simulator.
pip install noizurpgStar us on GitHub · Join the Discord
WHY NOIZURPG
Every AI RPG prototype hits the same walls: context overflow, narrative incoherence, character amnesia, world-state drift. NoizuRPG solves the infrastructure so you can focus on the game.
COMPOSE
Pick the pieces you need: characters, worlds, narrative, quests, dialogue, memory. Each component works independently. Snap them together like React components.
GENERATE
OpenAI, Claude, Ollama, vLLM — wire in any provider. Swap models without changing game logic. Structured output schemas keep AI responses deterministic where it matters.
REMEMBER
Typed events, ground-truth world state, persistent memory. Characters remember. Worlds evolve. Quests branch. No more 'the AI forgot my character's name.'
CODE IS THE INTERFACE
from noizurpg import World, Character,
NarrativeEngine
from noizurpg.providers import Anthropic
# Build your world
world = World("The Ashward Chronicles")
world.add_location("Thornwall",
type="city", traits=["coastal"])
# Create a character
kael = Character("Kael Ashward")
kael.stats.set(str=12, dex=14, int=16)
# Wire in any LLM
engine = NarrativeEngine(
llm=Anthropic("claude-sonnet-4-5-20250514"),
world=world
)
# Play
response = engine.turn(
character=kael,
action="Enter the guild hall"
)Narrative Output
The guild hall is quieter than usual. Master Venn looks up from the cold forge — no iron to work today.
“Kael. Good. The routes are dead. Three caravans gone since autumn. The Guild is bleeding coin.”
His eyes hold something between fear and calculation — the look of a man deciding whether to trust you with dangerous knowledge.
Events Extracted
6 COMPOSABLE COMPONENTS
Every component works independently. Use one, use all six, or build your own. The interfaces are stable and well-documented.
Stats, inventory, relationships, knowledge. The identity layer — everything about who a character is.
View docs →Locations, factions, timelines, world rules. The ground truth your LLM builds upon.
View docs →Context building, narrative generation, event parsing. Where LLMs meet structured game state.
View docs →Procedural quest generation, branching narratives, stage progression, and completion tracking.
View docs →Multi-NPC conversations with distinct personalities, relationship awareness, and memory.
View docs →Event journal, compression, retrieval. Characters and worlds that remember across sessions.
View docs →PLAYGROUND
The browser sandbox runs NoizuRPG with a pre-configured world and character. See how LLM responses become structured game events in real time.
World
name: "The Ashward Chronicles"
location: "Thornwall" (city, coastal)
Character
name: "Kael Ashward"
STR: 12 DEX: 14 INT: 16
inventory: Cold-singing Hammer, 24 gold
Events (latest)
● DialogueStarted(Venn)
● QuestProgressed(2→3)
● Knowledge+("routes blocked")
Narrative Output
The guild hall is quieter than usual. Master Venn looks up from the cold forge — no iron to work today.
“Kael. Good. The routes are dead. Three caravans gone since autumn. The Guild is bleeding coin.”
HOW IT WORKS
pip install noizurpg. Zero config. SQLite storage, Ollama provider, and a sample world out of the box.
Import components, wire up a world, create characters, and connect an LLM. The API is Pythonic and type-annotated.
Run your game in the terminal, browser sandbox, or embed in your own app. Events are structured, state is persistent, narrative is coherent.
FAQ
OpenAI (GPT-4o), Anthropic (Claude), and Ollama (any local model) are built-in. The provider interface is pluggable — add any LLM with a few lines of code.
The ContextBuilder selects only relevant events, character knowledge, and world facts for each turn. The Memory System compresses old events into summaries. You set the token budget.
Narrative text is non-deterministic (that's the fun). But state changes are parsed through structured output schemas — the AI proposes, the framework validates. Invalid state changes are rejected.
v0.1 is single-player. The architecture doesn't preclude multiplayer, and it's on the roadmap for v0.3. The state management layer already handles concurrent reads.
NoizuRPG doesn't ship a combat system — RPG combat is too varied to standardize. We provide a CombatSystem interface and one reference implementation. Community contributions welcome.
The core components (Character, World, NarrativeEngine, Memory) are stable and well-tested. Quest Engine is beta, Dialogue Manager is experimental. Use stable components in production.
NoizuRPG is the missing infrastructure for AI game development. Get early access and help shape the framework.