Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

欢迎来到 Mortar 🦀

你好,欢迎来到 Mortar 的世界!

Mortar 是什么?

想象一下,你正在写一个游戏的对话剧本。你可能会遇到这样的困扰:

  • 文字里混杂着各种技术标记,看起来乱糟糟的
  • 想让音效在某个字出现时播放,但不知道怎么标注
  • 写手和程序员总是在互相“踩脚“

Mortar 就是为了解决这些问题而生的。

它是一种专门用来写游戏对话的语言,核心理念是实现文本内容与事件逻辑的严格分离

总的来说,我们的理念很简单:

让文字归文字,让代码归代码。

你可以专心写故事,而程序可以专心处理游戏逻辑——两者井水不犯河水,但又能完美配合。

它能做什么?

Mortar 特别适合这些场景:

  • 🎮 游戏对话系统:RPG 对话、视觉小说
  • 📖 交互小说:文字冒险、分支叙事
  • 📚 教育内容:互动式教学、引导式学习场景
  • 🤖 聊天脚本:结构化对话逻辑
  • 🖼️ 多媒体呈现:文字与媒体事件的同步

为什么选择 Mortar?

与其他对话系统相比,Mortar 有这些特点:

  • 干净清爽:文本里不会有乱七八糟的标记
  • 精准控制:可以指定在第几个字触发事件(比如播放音效)
  • 易于理解:语法设计得像日常写作一样自然
  • 方便集成:编译成 JSON 格式,任何游戏引擎都能用

快速一瞥

这是一段 Mortar 代码的样子:

node OpeningScene {
    text: "欢迎来到魔法世界!"
    with events: [
        0, play_sound("magic_sound.wav")
        7, sparkle_effect()
    ]
    
    text: "准备好开始冒险了吗?"
    
    choice: [
        "当然,我准备好了!" -> AdventureStart,
        "让我再想想..." -> Hesitate
    ]
}

看起来是不是很直观?

接下来


Mortar 是开源项目,采用 MIT/Apache-2.0 双许可证 ❤️