What is LSDEDE?
LSDE (LS Dialog Editor) is a free tool for game and software developers that combines visual dialogue graph editing, AI-powered translation, voice generation, i18n code integration, and project diagnostics. It exports dialogue graphs as blueprints (JSON, XML, YAML, or CSV) containing scenes, blocks, dictionaries, functions and cards. More info: lepasoft.com/en/software/ls-dialog-editor.
LSDEDE (LSDE Dialog Engine) is the multi-runtime engine that loads and executes these blueprints. It is available in multiple languages for native integration into any game engine or framework.
Available Runtimes
| Runtime | Language | Target | Source |
|---|---|---|---|
| TypeScript | TypeScript / JavaScript | Reference implementation | lsde-ts |
| C# | C# (.NET Standard 2.1) | Unity, Godot Mono, .NET | lsde-csharp |
| C++ | C++17 | Unreal Engine, custom engines | lsde-cpp |
| GDScript | GDScript | Godot 4 | lsde-gdscript |
All runtimes share the same blueprint format and pass a common cross-language test suite (52 test cases).
Architecture
Every runtime follows the same callback-driven graph dispatcher pattern:
- Blueprint — An export from LSDE (JSON, XML, YAML or CSV). Every block carries its own outgoing wires in
next: there is no connection table. - Engine — Validates the blueprint, builds the internal graph and dispatches blocks to registered handlers.
- Handlers — Functions that react to each block type (dialog, choice, condition, action).
- Host Application — Conditions, actions, and character resolution are implemented by handler callbacks.
Blueprint
│
▼
Engine ◄── next() ──┐
│ │
dispatch │
│ │
▼ │
Handlers ────────────┘Design Principles
- Zero-dependency — No runtime dependencies in any language.
- Framework-agnostic — Works with any game engine or UI framework.
- Callback-driven — No internal render loop. The host application calls
next()when ready. - Two-tier handlers — Global (engine-level) and scene-level handlers with
preventGlobalHandler(). - Cross-language conformance — All runtimes produce identical output for the same blueprint.
