Machine-readable IF formats (for non-traditional IF applications)

I have been looking for a format I can use to represent IF that is audio- and video-based, rather than text-based. I was inspired when I found Twine, but it appears to use HTML as a persistence format, and that’s not really what I had in mind in terms of machine-readability.

Twee looked interesting as a language/file-format, but it looks like Twine doesn’t use it any more, and I’m really hoping to find a format with a decent GUI editor, so the author (who is non-technical) can write the IF without having to know a “programming language”.

I’d also like it to be possible to introduce randomness and other kinds of procedural “navigation” capabilities, perhaps written in JavaScript?

Is there some combination of Twee + that might make this possible? Or is there some other format/toolset that I should look at?

Thanks,
Ian

Turberfield Dialogue is a Python library which defines extensions to the reStructuredText markup format.

These extensions allow you to write in a plain-text screenplay style, and to define the point at which sound effects, etc appear.

It assumes you are working in a Python environment, since RST is part of the Python infrastructure. But as a syntax it is entirely portable to other frameworks.

Here is an example of some dialogue with accompanied music.

1 Like

Twee is still viable, as far as I know, but if you’re going for something with a GUI, you could take a look at the recently announced “Elm Story” tool, which (if I recall correctly) can export to a machine-readable file.

3 Likes

Twee is still available: you’d want to look at (most likely) Tweego or (possibly, if you want a JavaScript/Node.js-based tool that you can extend yourself) Extwee to build your Twee source into HTML files (which can then be played in a web browser or opened in the Twine editor).

Cyrus Firheir’s Twee3 language tools plugin for VSCode has a story graph display (which opens in a browser window rather than right in VSCode, but it gives you the basic features IIRC).

Twine should probably be able to handle whatever randomness and procedural navigation you need (I’m not entirely sure what that means, but it should be do-able).


StJohnLimbo mentioned that Elm Story is just getting serious: but also if you’re open to commercial software I gather some people use articy:draft for this kind of visual planning/storywriting?

1 Like

Ink was designed to make text games integrated into a game platform (e.g. Unity) with associated sound, graphics, and animation effects. It should be possible to do that and just omit the text output.

2 Likes

Not sure what brought this back up to the top of active topics, but fwiw, Elm Story is dead. Anyone stumbling upon this at a later date might want to know that:

1 Like