Dialog IDE

Dialog IDE is an extension for Visual Studio Code that turns the editor into a workshop for interactive fiction written in the Dialog language. You write your source the way you would write any code — in files, with syntax highlighting and an outline — and you run it through a panel called the Skein, which is where this manual spends most of its time.

A note on words: the Dialog tooling, and this manual, say project rather than game. Plenty of interactive fiction is not a game, and "project" covers all of it.

VS Code with a .dg file open on the left and the Skein panel (nav graph + transcript + command box) open beside it on the right. The reference 'money shot'

The Skein in one paragraph

When you play a piece of interactive fiction you type a command, read the response, and the world moves on. At an ordinary prompt that history scrolls away. The Skein keeps it. Every command you have ever typed, and the response it produced, is stored as a knot on a tree that only ever grows. Because the whole history is retained, you can jump back to any earlier moment, try a different command, and keep both paths; you can mark a response as correct and be told later if a code change alters it; and you can re-run every path you have recorded in a few seconds to check that a change broke nothing.

What the Skein gives you

Time travel

Move back to any earlier point in play and enter a different command without losing the path you already explored. Every branch you create is kept. See How the Skein Works: Time Travel and the Tree of Timelines.

Blessing

Mark a knot’s response as correct. From then on, if a change to your source produces a different response for that command, the knot is flagged and you are shown exactly what changed. See How the Skein Works: Time Travel and the Tree of Timelines.

Replay All

Re-run every command on every recorded path against a fresh interpreter, and confirm each response still matches what you blessed. See Creating a Skein and Touring the Panel.

Trace

For a single command, see which predicates were tried, in what order, and why, each with a link into your source. See Dynamic State and Trace.

Dynamic state

After each command, see which flags, variables, and relations changed in the game world. See Dynamic State and Trace.

Who this manual is for

The manual assumes you have never used Visual Studio Code. The next chapter starts at downloading it and explains the few pieces of its interface that the rest of the manual relies on. If you already use VS Code, skip ahead to Installing the Dialog IDE Extension.

Authors who want to run their tests and skein checks from a terminal or a continuous-integration pipeline, with no editor involved, want Command-Line Testing with dgbuild.

How to read it

The four "getting set up" chapters — install VS Code, install the extension, initialize a project, and organize your sources — are meant to be read once, in order. After that the manual is reference material: the Skein chapters describe the panel control by control, and you can dip into whichever part you need. Troubleshooting and Known Limitations collects the current limitations and the common reasons a project will not run.

What Dialog IDE does not do

It does not replace the Dialog compiler or debugger. It drives the existing toolchain — dgdebug to run your project, dialogc to build it — and gives you a place to work with the results.

Editing source is mostly ordinary VS Code. The extension contributes .dg syntax highlighting, code folding, bracket and indentation handling, an Outline view, and project-wide "Go to Symbol", then stays out of your way. Everything else in this manual is about running the project through the Skein.

This is also not the Dialog language manual. For the language itself — and for writing the (test $) and (assert $) objects that Command-Line Testing with dgbuild runs — see the Dialog manual that ships with the Dialog toolchain.

What’s next

Installing Visual Studio Code — install Visual Studio Code.