Skip to content

The Questmark and Tzo ecosystem ​

Questmark is not a single program; it is a language with a compiler, a bytecode format, and several independent implementations. This page maps the projects that make up the ecosystem, so you can find the runtime or tool that fits your engine.

The canonical, always-up-to-date lists are the GitHub topics:

The two core projects ​

ProjectWhat it is
questmarkThis project. The language, the Markdown compiler, the reference TypeScript interpreter, the CLI, and the library.
tzoThe stack-based virtual machine and bytecode that Questmark compiles to. Tzo defines the standard opcodes and the VMState JSON format.

The relationship is one-directional: Questmark knows about Tzo, but Tzo does not know about Questmark. Any host that can run Tzo bytecode with the QuestVM opcodes can play a compiled Questmark document.

Runtimes and ports ​

ProjectLanguageWhat it is
questmark-rustRustA Questmark runtime VM.
tzo-rustRustA Rust implementation of the Tzo VM.
tzo-cCA C implementation of the Tzo VM, plus a Questmark runtime interpreter.
tzo-godotGDScriptAn experimental Godot extension for Tzo and QuestVM.
tzo-watTypeScriptAn experimental compiler from Tzo's standard representation to WebAssembly Text Format.

If you are shipping a game, the usual pattern is to compile a document to a VMState JSON once, ship that file, and load it with the runtime that matches your engine.

Authoring and rendering tools ​

ProjectWhat it is
questmark-webrendererA simple inline parser and renderer for Questmark, for making documents playable in a web page.
questmark-ideA work-in-progress IDE for Questmark and Questmark-Yarn.
tzo-analyzeA static analyzer for Tzo code.
tzo-concisetext-language-supportVS Code language support for Tzo's concise text format.
questmark-yarnAn experimental compiler from Yarn Spinner 2.0 to Questmark's QuestVM format.

The playground on this site is built from the same browser bundle as this project; it is an easy way to try documents without installing anything.

Demos and experiments ​

ProjectWhat it is
tzo-powered-uqm-comm-testA test of a system that renders Star Control 2-style comm graphics animations, driven by the Tzo VM.

How the pieces fit together ​

Questmark document (.md)
        │  questmark compiler (parseMarkdown)
        ▼
Tzo VMState (JSON: programList + labelMap + context)
        │  any Tzo VM with the QuestVM opcodes
        ▼
A running conversation

The compiler lives in one place (this repository and its ports). The bytecode is a stable, inspectable JSON format. The runtime is replaceable: use the TypeScript one in a browser or Node, a Rust one in a game server, a C one in an embedded engine, or the Godot extension in Godot.

If you build something ​

Tag the repository with the questmark and/or tzo topics so it shows up in the lists above. The ecosystem is intentionally small and composable; a new runtime, editor, or analyzer is a welcome addition.

See also ​

Questmark — released under the MIT license.