Skip to content

Doodle Engine

Build story-driven RPGs and adventure games.

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.

Planning a story-driven game? See whether Doodle Engine is a good fit.


Dialogue System

Branching conversations with speakers, choices, conditions, and effects with visual editing and a readable script format.

World Content

Create locations, characters, items, quests, journal entries, and maps as connected game content.

Localization

Add languages, manage translation strings, and test localized content.

Narrative Interludes

Full-screen text sequences for chapter introductions, dreams, flashbacks, and story moments.


Persistent World State

Let choices change flags, variables, relationships, character locations, inventory, quests, journal entries, and the wider world.

Conditions and Dice

Branch on game state, time of day, inventory, quest progress, relationships, character stats, and random rolls.

Quests, Inventory, and Maps

Build multi-stage quests, inventory items, journals, connected locations, and navigable maps.

Audio and Music

Use music, ambience, sound effects, interface sounds, and voiced dialogue throughout the game.

Images and Video

Present location banners, character portraits, item art, interlude imagery, interface screens, and video cutscenes.

Validation and Playtesting

Catch broken references and invalid content, then test individual story paths or preview the complete game.


Complete Game Shell

Start with a full game flow including splash and title screens, settings, save and load, pause menus, credits, and input handling.

Framework-Agnostic Core

Core engine written in TypeScript with no UI dependencies. Integrate with any renderer or frontend framework.

Predictable State Flow

Game actions update the engine state, and the renderer uses that state to update the interface. This keeps game logic separate from presentation and makes changes easier to follow.

React Components

Components for dialogue, choices, inventory, journal, map, and characters that can be used together or replaced individually.

Asset Pipeline

Discover referenced media, preload it before gameplay, validate missing files, and include project assets in production builds.

Development Tools

Console tools for inspecting state, setting flags, teleporting, and triggering dialogues.

CLI

A development server with hot reload, production builds, and content validation for Studio projects.

Web, Desktop, and Mobile

Host production builds on the web or package them for desktop and mobile using standard web application wrappers.

Learn the architecture


Doodle Studio is the purpose-built desktop editor for creating Doodle Engine games. From one workspace, you can:

  • Write branching dialogue visually
  • Create and connect characters, locations, quests, and world state
  • Import voice, portraits, music, and video
  • Validate content, test story paths, preview the complete game, and create production builds

Studio works directly with the same project files as the engine and CLI, so you can move between visual editing and source-level customization whenever your game needs it.

Editing a branching conversation in the Doodle Studio workspaceEditing a branching conversation in the Doodle Studio workspace

Explore Doodle Studio

The Doodle Engine CLI works inside the projects created by Studio. Use it to run the game while editing files directly, automate validation and builds, or develop a custom application and renderer.

Set up the command line

See how Studio and the CLI fit together


The engine core does not assume a UI or save backend. Renderers, shells, and persistence layers can be replaced or customized.

Combine effects and conditions in dialogue to implement mechanics such as reputation systems, skill checks, crafting, or shops without modifying the engine core.

Read the customization guide