Game-Data / Interactive-Fiction / Narrative DSLs Family Index


type: language-family-index family: game-data-narrative languages_catalogued: 26 tags: [language-reference, family-index, game-data-narrative, interactive-fiction, narrative-design, ink, yarn, twine, renpy, inform, choicescript]

Game-Data / Interactive-Fiction / Narrative — Family Index

Family overview

Narrative DSLs are the textual languages used to describe story, dialogue, choice trees, and scene flow — the data layer of interactive fiction and narrative-driven games. The defining problem they all solve is the same one Robert Pinsky’s Mindwheel (1984) and Infocom’s parser games already grappled with in the 1980s: how do you write down a branching story in a form that a runtime can execute, that an author who is not a programmer can read and edit, and that a localiser can translate without breaking? The answers split along a few axes — parser vs choice-based (Inform 7 / TADS 3 vs ChoiceScript / Twine), engine-coupled vs portable (Ren’Py vs Ink), prose-flavoured vs JSON-flavoured (Ink, Yarn vs Articy:draft export) — but every entry below is fundamentally a notation for what happens next.

The classic interactive-fiction (IF) tradition runs from Infocom’s ZIL through Inform 1–6 (Graham Nelson, 1993+), TADS (Mike Roberts, 1988+), Hugo, AGT, and ALAN — all parser-driven, all compiling to a portable bytecode VM (Z-machine for Inform 1–6, Glulx for Inform 7+ and TADS 3 via tads2glulx, ALAN’s arun). Inform 7 (2006) was the radical re-think: a near-natural-language surface — “The boy is in the kitchen. The kitchen contains a kettle.” — that compiles down through Inform 6 and on to Glulx. Graham Nelson open-sourced Inform 7 in April 2022 with v10.1.0, and the 10.x line has continued — version 10.2.0 of the core compiler is current, with the Windows front-end seeing a 10.1.2 update as recently as February 2026. ChoiceScript (Choice of Games, 2010+) carved out a commercial wedge by abandoning the parser entirely and shipping 100+ choice-based titles on a deliberately narrow DSL.

The modern narrative-design wave is what indie and AAA studios actually use to ship branching dialogue: Ink (inkle Studios, 2016 OSS, 1.0 in 2021, 1.2.0 “Highland” current) powering Heaven’s Vault, 80 Days, Sorcery!, Pendragon, and many third-party titles via the Unity plugin; Yarn Spinner (open source, originally written by Tim Nugent and Paris Buttfield-Addison for Night in the Woods in 2017, now at Yarn Spinner 3.1, December 2025, with native Unreal + Godot support and a Visual Novel Kit on the 2026 roadmap) covering the Unity-friendly indie market; Twine (Chris Klimas, 2009) plus its plurality of compile-target story formats (Harlowe 4 development, SugarCube 2.36+, Chapbook, Snowman) covering the hobbyist / web-IF authoring world; and Ren’Py (PyTom, 2004; 8.5.2 “In Good Health” January 2026, 8.5.3 prerelease April 2026) absolutely dominating the visual-novel / dating-sim / anime-flavoured space on a Python 3 backend.

A separate generative-narrative micro-genre exists alongside, anchored on Kate Compton’s Tracery (2015) — a JSON bag-of-grammars notation that powers thousands of Twitter/Mastodon bots and small generative games, and that has direct ports in Python (pytracery), Ruby, and as a Twine Story Format. Narrative DSLs differ from chat/intent DSLs (see chatbot-intent-dsls) along one clean axis: narrative DSLs are author-driven — the system delivers a story the author wrote — whereas chatbot/intent DSLs are user-input-driven — the system classifies what the user said and routes accordingly. The boundary blurs at Yarn Spinner’s flow-control, Articy:draft’s branching graphs, and the new wave of LLM-NPC hybrids, but the design centre of gravity is unambiguously different.

In our deep library

  • game-scripting — sibling family, covers per-game gameplay scripting (UnrealScript, GDScript, Pawn, Wren, AngelScript, Lua-as-game-script, Squirrel, Papyrus). Ren’Py script appears in both indexes — it is dual-classified because its DSL is both a gameplay script (loops, conditions, calls into Python) and a narrative format (label start: / "Eileen" "Hello, world!").
  • game-engine-scripting — sibling family, covers engine-side level/data formats (Quake .map, Source FGD, Unity prefab YAML, Blueprint visual scripting). Different artefact: scenes and assets, not story.
  • chatbot-intent-dsls — adjacent: same conversational primitives (utterance → response), different driver (user input vs author-scripted).
  • notation-spec — Tracery is a formal-grammar narrative DSL; the broader story-grammar / generative-text tradition (Mateas, Compton) sits at the boundary.
  • python — Ren’Py’s host language. Ren’Py script is a Python-flavoured DSL; $ score += 5 is literal Python embedded in the script.
  • document-typesetting — Final Draft / Fade In are screenwriting DSLs that occasionally creep into narrative-game pipelines.
  • api-description — Articy:draft / Articy X export to XML and JSON for runtime consumption; the export schemas effectively are an API description for the narrative graph.

Tier 3 family table — Modern narrative engines

Language / DSLFirst appearedOriginTypeStatus (2026)URL
Ink2016 OSS, 1.0 Feb 2021inkle Studios (Joseph Humfrey, Jon Ingold)Markup-light branching narrative DSL; runtime in C# (+ inkjs JavaScript port)Very active; current 1.2.0 “Highland”; powers Heaven’s Vault, 80 Days, Sorcery!, Pendragon, A Highland Songhttps://www.inklestudios.com/ink/
Yarn / Yarn Spinner2015 prototype, 2017 with Night in the Woods; 2.0 Apr 2022; 3.0 2024; 3.1 Dec 2025Secret Lab (Tim Nugent, Paris Buttfield-Addison); MIT / community-ledOpen-source dialogue DSL; Unity-first, native Unreal Engine + ongoing Godot support; C# coreVery active; 3.1 ships async dialogue runner, option fallthrough, reworked typewriter; 2026 roadmap includes Visual Novel Kit and Story Solver debuggerhttps://www.yarnspinner.dev/
Twine (authoring tool)2009 (Chris Klimas)Chris Klimas / communityVisual web-based authoring tool; emits HTMLVery active; Twine 2.x is current linehttps://twinery.org/
Twee2010s (community)Twine communityPlain-text source format that compiles to Twine HTML; tweego / extwee compilersActivehttps://github.com/iftechfoundation/twine-specs
Harlowe (Twine story format)2014Leon ArnottMacro-based story format; default in Twine 2Active; Harlowe 3.3.8 stable, Harlowe 4 in development (unstable build May 2025)https://twine2.neocities.org/
SugarCube (Twine story format)2013Thomas Michael EdwardsCarries Twine 1 traditions forward; richer macro library; save-slot systemActive; 2.36+ currenthttps://www.motoslave.net/sugarcube/2/
Snowman (Twine story format)2014Chris KlimasMinimalist story format; expects authors to know JavaScript; underscore.js + MarkedActive but quiet; 2.x maintainedhttps://klembot.github.io/snowman/
Chapbook (Twine story format)2019 (1.0)Chris Klimas”Second-generation” Twine 2 format; inserts + modifiers modelActive; designed for newer usershttps://klembot.github.io/chapbook/guide/
Tracery2015 (Compton & Mateas, FDG paper)Kate Compton (UC Santa Cruz)JSON story-grammar / bag-of-grammars notation; recursive #symbol# expansionStable / canonical; powered 10k+ bots; available for Node.js, Python (pytracery), Ruby, and as a Twine story formathttps://github.com/galaxykate/tracery

Tier 3 family table — Interactive fiction (IF) traditional

Language / DSLFirst appearedOriginTypeStatus (2026)URL
Inform 72006; open-sourced April 2022 with v10.1.0Graham NelsonNatural-language IF authoring language; compiles via Inform 6 → Glulx (or Z-machine for legacy targets)Active; core compiler 10.2.0; Windows front-end Inform 10.1.2 update Feb 2026https://ganelson.github.io/inform-website/
Inform 61993Graham NelsonProcedural sibling of Inform 7; remains alive as the compilation back-end for I7 and as a language some authors preferActive as compilation target; modest direct-author usehttps://www.inform-fiction.org/inform6.html
TADS 32006Mike RobertsComprehensive object-oriented IF authoring system; compiles to T3 VM (also tads3glulx export)Active but small community; v3.1 added web-play capabilitieshttps://www.tads.org/
TADS 21988Mike RobertsEarlier TADS; still has installed base of game sourceLegacy but compilers still maintainedhttps://www.tads.org/tads2.htm
ChoiceScript2010Dan Fabulich / Choice of GamesBranching-narrative DSL; choice-based, no parser; transpiles to JavaScript runtimeVery active commercially; 100+ shipped titles; new releases through 2025 (e.g. Hunter: The Reckoning — Beast of Glenkildove, The Last Scion)https://www.choiceofgames.com/make-your-own-games/choicescript-intro/
Quest (textadventures.co.uk)2002+Alex Warren / Texture Writer LtdUK-based IF authoring tool; XML-based source; both parser and choice modesActive but slow; community continues to ship competition entrieshttps://textadventures.co.uk/quest
Squiffy2014Alex Warren (Quest author)Lighter sibling of Quest; markdown-flavoured choice-based IF; open sourceActive; 2024 IFComp entries used ithttps://textadventures.co.uk/squiffy
ALAN1992 (v1), 2001 (v3)Thomas Nilsson, Göran ForslundParser IF authoring language; descriptive, English-flavoured; compiles to ARUN VMMaintained; small communityhttps://www.alanif.se/
ADRIFT1997Campbell WildForm-based IF authoring tool (less of a textual DSL, more of a GUI builder); generator format .tafActive in IF communityhttp://www.adrift.co/
Hugo1995Kent TessmanProcedural IF authoring system; multimedia-capable; own VMLegacy / dormant but games still shiphttps://www.generalcoffee.com/hugo
AGT (Adventure Game Toolkit)1987David MalmbergEarly commercial IF authoring system; ALL-CAPS, BASIC-likeHistorical only; readers exist for old gameshttp://www.ifwiki.org/index.php/AGT
Z-machine (story file VM)1979Joel Berez & Marc Blank, Infocom16/32-bit virtual machine; the canonical IF runtime since Infocom; targeted by Inform 1–6 and Inform 7 (legacy)Universal; every modern interpreter speaks Z-codehttps://www.inform-fiction.org/zmachine/standards/
Glulx (story file VM)1999 design, 2000s adoptionAndrew Plotkin32-bit successor to Z-machine; lifts memory + I/O limits; default I7 target since 2006Universal; standard modern target for I7 and TADS 3https://www.eblong.com/zarf/glulx/

Tier 3 family table — Visual-novel / adventure-game

Language / DSLFirst appearedOriginTypeStatus (2026)URL
Ren’Py script language2004PyTom (Tom Rothamel)Python-flavoured visual-novel scripting DSL; label, scene, show, dialogue linesVery active; 8.5.2 “In Good Health” Jan 2026, 8.5.3 “We Can Go to the Moon” prerelease Apr 2026https://www.renpy.org/doc/html/language_basics.html
Ren’Py screen language~2010PyTomUI/screen DSL within Ren’Py for HUDs, menus, dialogue boxesVery active; same release cadence as core Ren’Pyhttps://www.renpy.org/doc/html/screens.html
AGS Script1997 (AGS itself)Chris Jones / AGS teamC-like scripting for the Adventure Game Studio engine; integrated IDEActive; AGS 3.x master + AGS 4 in development; 2025 demo updateshttps://adventuregamestudio.github.io/ags-manual/
Wintermute Engine Script (WME script)2003Jan Nedoma (Dead:Code)C-like object-oriented scripting language for the Wintermute adventure-game engineMaintained; Wintermute Lite on Bitbucket since 2013 under MIThttp://dead-code.org/home/
Fungus (Unity plugin DSL)2014snozbot / Chris GreganVisual flowchart-based dialogue DSL plugin for Unity; node-based editorActive on GitHub (delisted from Asset Store); develop branch staging Fungus 3.14https://github.com/snozbot/fungus

Tier 3 family table — Authoring / pipeline tools

Language / DSLFirst appearedOriginTypeStatus (2026)URL
Articy:draft X2008 (articy:draft 1) → articy:draft X (2020+)Articy Software GmbH (formerly Nevigo)Visual narrative authoring tool; XML/JSON export schemas serve as the runtime contractVery active; major August 2025 update (voiceover prototyping plugin, searchable dropdowns, Perforce SSO); macOS launch April 2025https://www.articy.com/en/
Chat Mapper2011Urban Brain StudiosVisual dialogue authoring; XML/JSON exportMaintained but quiet; primarily used in serious-games / training-sim pipelineshttps://www.chat-mapper.com/
Final Draft1991Final Draft Inc. (Cast & Crew)Screenwriting DSL (.fdx XML format); occasional use as pre-prod for narrative gamesVery active commercially; FDX is widely supported import formathttps://www.finaldraft.com/
Fade In2011Kent Tessman (also Hugo author)Screenwriting tool with .fadein source; cross-platformActivehttps://www.fadeinpro.com/
Celtx (legacy)2007Celtx Inc.Pre-production / narrative editor; cloud-pivoted in 2010sLegacy; no longer the narrative-game tool of choicehttps://www.celtx.com/
Inky (Ink editor)2016inkle StudiosThe official Ink editor; not a separate DSL but the canonical authoring environmentActive; tracks Ink releaseshttps://github.com/inkle/inky

Notable threads

  • Ink as the de facto AAA-and-indie branching-narrative substrate. inkle’s open-sourcing of Ink in 2016 (followed by 1.0 in February 2021 and the current 1.2.0 “Highland”) was the right artefact at the right time: a markup-light, prose-readable DSL that compiles to a small JSON runtime; a permissively-licensed C# runtime; and a Unity plugin that bolts straight into a typical indie pipeline. The shipping list — Heaven’s Vault, 80 Days, Sorcery!, Pendragon, A Highland Song, plus dozens of third-party titles — gives Ink the credibility no other narrative DSL has matched. The closest comparator is Yarn Spinner; the dividing line is roughly “Ink for sweeping branching prose, Yarn Spinner for character-line-driven dialogue with a scene/runner abstraction.”

  • Yarn Spinner’s open-source momentum and 2026 platform expansion. Night in the Woods (2017) put Yarn on the map. Yarn Spinner 2.x defined the modern era; Yarn Spinner 3.1 shipped December 2025 with async dialogue-runner methods, option fallthrough (a soft-lock fix), and a reworked typewriter system. The 2026 roadmap is ambitious: a Visual Novel Kit, a rebuilt VS Code extension, native Unreal Engine support, continued Godot work, and a new “Story Solver” narrative-debugging tool. The Secret Lab + community model has held up for nearly a decade — rare among narrative DSLs.

  • Inform 7 going open source: 2022 was a turning point. Graham Nelson released Inform 7 v10.1.0 as open source on 28 April 2022, finally exposing what had been a closed authoring system for 16 years. Version 10.2.0 of the core compiler is current; the Windows front-end saw a 10.1.2 update in February 2026. The natural-language surface — “The kettle is on the stove. The stove is fixed in place.” — remains a radical experiment that mostly works for short pieces and parses surprisingly well for full-length games, but it remains rare in commercial titles; Inform 7 is dominantly an IF-community / hobbyist-author tool.

  • Twine’s longevity comes from its story-format pluralism. A single .twee source file can compile via Harlowe (default, macro-based, Harlowe 4 in development as of 2025), SugarCube (more programming-flavoured, 2.36+, save slots, deep macro library), Snowman (minimal, expects JavaScript fluency), or Chapbook (insert/modifier model, designed for newcomers). Each story format is its own runtime DSL; Twine is the editor, and the choice of format determines the language. This decoupling has kept Twine relevant since 2009 — when one format ages, another takes over.

  • Tracery and the generative-narrative subgenre. Kate Compton’s Tracery (2015 FDG paper, with Michael Mateas) established a small, beloved authoring language for grammar-based generative text. The notation is approachable JSON: { "origin": ["#hello#, #name#!"], "name": ["world","cosmos","void"] }. Ports to Python (pytracery), Ruby, and as a Twine story format keep it in active use; the canonical deployment vector was Twitter bots through the late 2010s, with the population now spread across Mastodon, Bluesky, and small generative-art games. Tracery’s design philosophy — “tools for poets, artists, kids, and weirdos” — has had outsized influence on the casual creator movement.

  • Ren’Py as the visual-novel monoculture. The Lemma Soft community, the indie VN scene, the anime / dating-sim pipeline, the itch.io romance-game wave, and a substantial chunk of Doki Doki Literature Club–era English-language VNs all run on Ren’Py. Ren’Py 8.x runs on Python 3 (a multi-year migration off Python 2 finalised before 8.0); 8.5.2 “In Good Health” shipped January 2026, with 8.5.3 “We Can Go to the Moon” in prerelease since April 2026. 8.5 added Live2D support on the Web platform, an automated testing framework, and Unicode 17. The dual-DSL split (script language for narrative flow; screen language for UI/HUD) is something most narrative engines lack and is one reason Ren’Py keeps winning the visual-novel space outright.

  • ChoiceScript: a narrow DSL is a viable commercial moat. Choice of Games shipped 100+ titles on ChoiceScript and continues at a steady cadence (e.g. Hunter: The Reckoning — Beast of Glenkildove, January 2025; The Last Scion, June 2025), with roughly 46 staff across five continents as of October 2025. The language deliberately omits parser, graphics, and most engine features — it is choice-based, statful (with *set and *if), and transpiles to a JavaScript runtime that runs equally on Steam, mobile, and the Choice of Games web reader. The lesson: in narrative-DSL design, less is sometimes a feature.

  • The chatbot-narrative boundary. Yarn Spinner’s flow-control vs Rasa’s classical NLU stories vs Articy:draft’s branching graphs vs the 2025-era LLM-NPC experiments are increasingly hard to disentangle. The classic axis — narrative DSLs are author-driven, intent DSLs are user-input-driven — still holds, but tools like Articy X are layering AI-assisted dialogue generation, and Unity-side LLM-NPC plugins now consume Yarn or Ink as scaffolding then fill in lines via API call. Cross-link chatbot-intent-dsls for the user-driven side; the convergence story is still developing.

  • The story-file VM tradition still anchors classical IF. Z-machine (1979) and Glulx (Plotkin, 2000s) remain the portable IF runtime targets. Inform 7 compiles to Glulx by default (Z-code for legacy compatibility); TADS 3 has its own T3 VM with optional tads3glulx export; ALAN compiles to ARUN. Modern interpreters (Frotz, Glulxe, Gargoyle, Lectrote, Spatterlight) speak both, so a story file from 1985 (e.g. A Mind Forever Voyaging) and one from 2024 IFComp run side-by-side on the same reader. This 45-year backward compatibility is something almost no other game-data format has achieved.

Citations