For the past few days I’ve been extensively researching interactive fiction, in particular the infamous Z Machine, and planning how to create a new IF design system (a programming language designed for IF)
Why not use one of the existing ones? Here’s why:
- Inform 7 — The english-ish syntax trips me up (you can type “The Parlor is west of the Bedroom” but not “The Parlor is to the west of the Bedroom”). And I also feel like I as a Linux user was never considered by I7. The CLI instantly aggravates me (for no obvious reason), and Graham Nelson (creator of Inform) isn’t even the maintainer of the Linux version.
- Inform 6 — It’s old, so likely isn’t completely good with the Treaty of Babel. I also don’t trust it after my time with I7.
- TADS — Its license is custom and isn’t FOSS. It doesn’t allow distributing modified versions. In fact, the source is public just for porting, all other modifications are not allowed by the license. That bugs me too much to even touch it.
So I’m still figuring out my new system. Currently I’m thinking of a two-step process. The HLL (what the programmer will code in) will be converted to an intermediate representation, which is further compiled into a binary for the Z Machine. [sound familiar, Rakudo people? :)]. Hopefully I’ll be able to start working on the language and everything soon for the world to see on github. I still have to figure out the deal with the Z Machine memory map.
Treaty of Babel (babel.ifarchive.org seems to be down right now): http://web.archive.org/web/20101127195038/http://babel.ifarchive.org/babel_rev7.txt
Z-Machine Standards Document: http://www.inform-fiction.org/zmachine/standards/z1point0/index.html
And my first post happened to talk about something just like this. Although that post talked about an IF game in P6; this is a new language, whose compiler will happen to be coded in P6 🙂