Skip to content

什么是 LSDEDE? ​

LSDE(LS Dialog Editor)是一款面向游戏和软件开发者的免费工具,集成了可视化对话图编辑、AI翻译、语音生成、i18n代码集成和项目诊断等功能。更多信息请参阅 lepasoft.com/zh/software/ls-dialog-editor。LSDE 将对话图导出为 blueprint(JSON、XML、YAML 或 CSV),其中包含 scene、block、dictionary、function 和 card。

LSDEDE(LSDE Dialog Engine)是加载并执行这些 blueprint 的多运行时 engine。它提供多种语言版本,可原生集成到各种游戏引擎或框架中。

可用运行时 ​

运行时语言目标源码
TypeScriptTypeScript / JavaScript参考实现lsde-ts
C#C# (.NET Standard 2.1)Unity, Godot Mono, .NETlsde-csharp
C++C++17Unreal Engine, 自定义引擎lsde-cpp
GDScriptGDScriptGodot 4lsde-gdscript

所有运行时共享相同的 blueprint 格式,并通过一套通用的跨语言测试套件(52 个测试用例)。

架构 ​

每个运行时都遵循相同的回调驱动图调度器模式:

  1. Blueprint — 来自 LSDE 的导出(JSON、XML、YAML 或 CSV)。每个 block 在 next 中携带自己的出线:不存在 connection 表。
  2. Engine — 验证 blueprint,构建内部图,并将 block 分发给已注册的 handler。
  3. Handler — 由开发者编写的函数,用于响应每种 block 类型(dialog、choice、condition、action)。
  4. 宿主应用程序 — condition、action 和角色解析由 handler callback 处理。
      Blueprint
        │
        ▼
     Engine ◄── next() ──┐
        │                 │
     dispatch             │
        │                 │
        ▼                 │
     Handlers ────────────┘

设计原则 ​

  • 零依赖 — 任何语言版本都没有运行时依赖。
  • 框架无关 — 可与任何游戏引擎或 UI 框架配合使用。
  • 回调驱动 — 没有内部渲染循环。在准备好时调用 next() 即可。
  • 双层 handler — 全局(engine 级别)和 scene 级别 handler,支持 preventGlobalHandler()。
  • 跨语言一致性 — 所有运行时对相同的 blueprint 产生相同的输出。