Skip to main content
topiary

Narrative Scripting Language

Text First

Let writers write.
No graphs or node trees to hook up.
Just dialogue and code.

Powerful Language Syntax

Programmer friendly syntax,
designed to give full control over
story state and dialogue.

Engine Integration

Hook into and control
story state from your own engine,
as well as call engine functions
directly from Topiary.

=== START {
:User: "How does this work?"
:Author: "You write your dialogue like this, then you can use the compiler and virtual machine to run it in game."
fork TOPIC {
~ "What does the compiler do?" {
:Author: "The compiler will take your source code and convert it into bytecode."
:Author: "With that you can either pass it directly to the virtual machine, or serialize it to save to a file."
=> TOPIC
}
~ "What does the virtual machine do?" {
:Author: "The virtual machine will take the bytecode and a runner and process each line of code, dialogue, and choices."
:Author: "The runner has two functions, onDialogue, and onChoice. Which will be called and used to call your game code."
=> TOPIC
}
~ "Okay, thanks." :Author: "Let me know in the issues if you have any questions!"
}
}