Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Dialog – A domain-specific language for creating works of interactive fiction (linusakesson.net)
125 points by dfan on June 19, 2019 | hide | past | favorite | 14 comments


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...


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...


"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.


Compare the source of a game in Dialog: 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

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.


Dialog looks much more like a LISPy version of Inform 6


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.


People use the term in different ways, but my understanding is that "interactive fiction" was intentionally created as a broader term to encompass the games you're talking about (commonly called adventure games or text adventures) plus more literary efforts that can't really be called games at all. Choice-based games fall somewhere on that spectrum between puzzle heavy, parser games and fiction with interactive elements. "Among the Seasons," which tied for Best in Show at this year's Spring Thing Festival of Interactive Fiction, is essentially a short story with some limited choices. It's written in Twine but could probably be done in something like ChoiceScript.


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


I haven't poked around too much but for purposes of discussion 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


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.


Spammers call this article spinning or content spinning.

https://en.wikipedia.org/wiki/Article_spinning


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


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





Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: