Dialogue System
Branching conversations with speakers, choices, conditions, and effects in a readable script format.
Doodle Engine is a dialogue-driven engine for RPGs and narrative adventure games. It focuses on story, choices, and world state rather than movement or combat systems.
The design is inspired by classic dialogue scripting approaches used in games built on the Infinity Engine, but the engine itself is system-agnostic and intended for a wide range of narrative games.
Dialogue System
Branching conversations with speakers, choices, conditions, and effects in a readable script format.
World Content
Define locations, characters, items, quests, journal entries, and maps in YAML.
Conditions and Dice
Control flow using flags, variables, items, quest stages, relationships, time of day, and rolls.
Localization
Use translation keys and add languages by creating locale files.
Narrative Interludes
Full-screen text sequences for chapter introductions, dreams, flashbacks, and story moments.
Validation
Catch broken references, missing nodes, and invalid conditions before running the game.
Start writing your first game →
Framework-Agnostic Core
A TypeScript engine with no UI dependencies. Use any framework or renderer.
Predictable State Flow
Actions produce snapshots. Renderers display snapshots. State moves in one direction.
React Renderer
Components for dialogue, choices, inventory, journal, map, and characters, plus a full game shell.
Audio and Video
Music playback, sound effects, voice lines, UI sounds, and video cutscenes.
Asset Preloading
Images and audio load before render. No portrait pop-in during dialogue, no delayed sound effects, no flicker when entering a new location.
Dev Tools
Console tools for inspecting state, setting flags, teleporting, and triggering dialogues.
CLI
Project scaffolding, dev server with hot reload, production builds, and content validation.
The engine core does not assume a UI or save backend. Renderers, shells, and persistence layers can be replaced or extended.
Effects and conditions are building blocks. Combine them in dialogue to create mechanics such as reputation systems, skill checks, crafting, or shops without modifying the engine.