Skip to content

Doodle Engine

Build story-driven RPGs and adventure games.

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.

Learn the architecture →


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.

Read the extending guide →