Dialogue System
Branching conversations with speakers, choices, conditions, and effects in a readable script format.
Doodle Engine is built for text-driven RPGs and narrative adventure games where dialogue and world state are the core mechanics.
It emphasizes story, choices, and systemic narrative flow rather than movement, combat, or pathfinding.
The engine is written in TypeScript and designed to be ruleset-agnostic, giving writers and programmers a flexible foundation for story-heavy games.
Its scripting model draws inspiration from Infinity Engine titles such as Baldur’s Gate I and II, Icewind Dale, and Planescape: Torment.
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
Core engine written in TypeScript with no UI dependencies. Integrate with any renderer or frontend framework.
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 to prevent issues like character portrait pop-ins and audio delays.
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 compose cleanly. Combine them in dialogue to implement mechanics such as reputation systems, skill checks, crafting, or shops without modifying the engine core.