In the beginning there was TADS
I’ve been interested in interactive fiction for a long time. My first experience was games like Collosal Cave, Pirate Adventure, and Zork that I played on my Dad’s PDP.
I wrote a lot of silly games in BASIC on my ZX-81 and, later, Acorn Electron. But, by the time I started using a PC, I’d kind of forgotten about them.
In the ’90s I came across TADS and and I started trying to create games of my own but it never quite clicked for me. Later I would realise that probing the parser for how it worked wasn’t the fun bit of IF for me. I don’t like jigsaw puzles either.
When, a few years back, I again had a hankering to make games of my own I was more inspired by what is now labelled “choice based” games. Typically browser based and where the player mainly interacts with the game via links.
Along came Twine
Although there are many tools that can create games like this the most popular is Twine. It’s actually pretty neat because the editor runs in the browser, you create “passages” that get displayed to the player, and join them up. Voila, you have a game!
But there are challenges. In the first place the visual map gets dense and confusing once you get beyond a few dozen passages and the visual editor isn’t your favourite text editor.
Fortunately there are tools like Twee that let you author in your own editor, use Git to version control, and compile into an HTML game. Much better.
But after a while you start wanting to incorporate some more advanced features like actors and inventory. Twine is… just passages of text. Increasingly you gravitate from ‘Harlowe’ and ‘SugarCube’ (the two major ‘formats’ for writing in Twine) to ‘Snowman’ which is a plain wrapper. And then you start making your game mainly by writing Javascript.
The day comes when you realise that Twine isn’t actually offering you very much.
Introducing Rez
It was about two years ago that I started to think about a replacement for Twine. What was intended as a week-end project, rather got out of hand!
As a programmer (albeit a reluctant JS programmer, ironic given how heavily Rez leans on JS) I had a particular vision for the syntax and behaviour. I wanted a regular, declarative, syntax and a clean way to embed dynamic behaviours and dynamic content.
Originally Rez had an Act/Scene structure but Acts weren’t really pulling their weight. I kept scenes though as a way of organising content into units of play.
I wanted first-class support for things like inventory & items out of the box. Rez’s inventory & items are flexible enough that they can be used for things like memories, dialog topics, and spells, as well as for actual items.
In fact Rez includes quite a lot of functionality out of the box. Things like actors, plots, factions, relationships, assets and a whole lot more.
There is a lot in Rez for ambitious authors. Hopefully including me!