
Dialog – A domain-specific language for creating works of interactive fiction - dfan
http://www.linusakesson.net/dialog/index.php
======
tobr
I recently played around with Ink. [1] I hadn’t heard of Dialog, but it shall
be interesting to contrast them.

It’s quite elucidating to see how different the constructs of a programming
language can be when the constraints are so different. For example, Ink is
designed to produce spaghetti code, because a narrative is more spaghetti
shaped, so there is no call stack. Another peculiar thing is that by default,
a link will only be used once, because in most narratives you don’t want to
read the same thing over and over again.

1:
[https://github.com/inkle/ink/blob/master/Documentation/Writi...](https://github.com/inkle/ink/blob/master/Documentation/WritingWithInk.md)

------
ravenstine
This is very interesting, but I feel like it's still too close to being an
actual language for it to be worth using for the purpose of writing fiction.
You might as well use Ruby, but that's just my personal opinion.

Though not perfect, ChoiceScript is a lot closer to what seems like a good DSL
for writing interactive fiction, since it remains readable without a lot of
special language constructs.

[https://www.choiceofgames.com/make-your-own-
games/choicescri...](https://www.choiceofgames.com/make-your-own-
games/choicescript-intro/)

~~~
svachalek
"Interactive fiction" generally refers to a specific style of game along the
lines of the original Adventure, Zork series, etc. Generally it supports
navigation, inventory management, and full sentence interactions, so while
it's "lite" programming it's still more than multiple-choice questions.

~~~
egypturnash
Compare the source of a game in Dialog:
[http://www.linusakesson.net/dialog/cloak/cloak-
rel1.dg](http://www.linusakesson.net/dialog/cloak/cloak-rel1.dg)

With the source of a game in Inform 7:
[http://inform7.com/learn/eg/bronze/source.html](http://inform7.com/learn/eg/bronze/source.html)

One of these looks much more like a programming language than the other; both
compile to the Infocom virtual machine (or a direct descendant of it), both
create Infocom-style Interactive Fiction rather than the choose-your-own-
adventure style of Twine or ChoiceScript.

~~~
thrower123
Dialog looks much more like a LISPy version of Inform 6

~~~
WorldMaker
Which is interestingly appropriate given the original Zork Implementation
Language (ZIL) and its LISPiness (forked from MDL). Dialog doesn't look that
far off from ZIL.

------
segphault
Those who are interested in this might also want to check out Kni, an
interactive fiction language implemented in JavaScript:
[https://github.com/kriskowal/kni](https://github.com/kriskowal/kni)

------
Avshalom
I haven't poked around too much but for purposes of discussion
[http://www.ifwiki.org/index.php/Cloak_of_Darkness](http://www.ifwiki.org/index.php/Cloak_of_Darkness)
is a small IF used as a chrestomathy and this is the link to it in Dialog
[http://www.linusakesson.net/dialog/cloak/cloak-
rel1.dg](http://www.linusakesson.net/dialog/cloak/cloak-rel1.dg)

------
tabtab
I've seen something similar for creating spam that slips past pattern-based
scrubbers by finding gajillion ways to say the same thing using different word
order and synonyms.

~~~
CondensedBrain
Spammers call this article spinning or content spinning.

[https://en.wikipedia.org/wiki/Article_spinning](https://en.wikipedia.org/wiki/Article_spinning)

------
star0zero
I have not used this myself, but as serendipity would have it, I came across
it the other day:
[https://github.com/rudism/Ficdown](https://github.com/rudism/Ficdown)

------
bluetwo
Are there good online examples of interactive fiction developed with this
tool?

~~~
andyjpb
[http://www.linusakesson.net/games/tethered/index.php](http://www.linusakesson.net/games/tethered/index.php)

