4 ms·
A quick explanation of what this is, because it took me a bit to figure it out: it appears to be an interactive fiction engine written in Clojure. The linked ex
by m48 10y ago
A quick explanation of what this is, because it took me a bit to figure it out: it appears to be an interactive fiction engine written in Clojure. The linked example game is running through ClojureScript in the browser, but the engine also works in the terminal.
Here's a quick link to the main code file defining the rooms and actions for the example game: https://github.com/facundoolano/advenjure-example/blob/master/src/example/rooms.cljc https://github.com/facundoolano/advenjure-example/blob/maste.... I doubt I'm the only one that likes looking at this type of example first when looking at an interactive fiction engine, and it may help some people confused by the game.
The history of interactive fiction and Lisp is surprisingly intertwined. To the best of my knowledge, all of the original Infocom games were written in ZIL [0], an idiosyncratic Lisp variant that was meant to be a more portable version of the programming language used to write the original mainframe Zork, MDL—which was apparently designed by some of the same people who worked on Scheme and Common Lisp [1].
There appears to be an active but still incomplete open source compiler for ZIL written in C# [2], and a few Common Lisp experiments, but not many mature projects combining interactive fiction and Lisp.
I hope projects like this one catch on more. I've had trouble grasping other interactive fiction engines, which I often feel are trying to please programmers and writers but hitting an awkward space in between. Lisp's "code is data" idea seems like it could be a more graceful way of hitting that balance.
[0] http://www.ifwiki.org/index.php/ZIL http://www.ifwiki.org/index.php/ZIL
[1] https://en.wikipedia.org/wiki/MDL_(programming_language) https://en.wikipedia.org/wiki/MDL_(programming_language)
[2] https://bitbucket.org/jmcgrew/zilf/overview https://bitbucket.org/jmcgrew/zilf/overview
- WorldMaker 10y agoI think that's an astute observation that the history of IF languages seems to be trying to find a balance between easy for programmers on one side and easy for writes on the other, and that Lisp is certainly as intertwined in the early history of IF as it is because it naturally hits an interesting place in that balance given the S-Expression "code is data"/"data is code" simplicity. I still find Inform 7 a deeply fascinating example simply for trying a "Prose is code" approach that tries to favor writers first, somewhat at the expense of sometimes making programmers frustrated.