Dannii Willis on Best Technological Development 2012

Dannii Willis writes on Playfic, the Quest web editor, StoryNexus and Vorple for Inform 7.

Playfic, by Andy Baio and Cooper McHatton

Programming languages are rarely judged purely in isolation – the standard library, an ecosystem of community libraries and development tools each contribute to the value of a language, and if one of them is sub-par then the language itself may never acquire enough of a following to make it big. It’s far from uncommon for a language to be torn from its original home and given a new one, but successes are less frequent. There had been many attempts at server-side Javascript, but only node.js gained massive popularity by joining a fast runtime with a practical standard library (and now with the fantastic npm library ecosystem.) Debugging node.js isn’t as easy as in the browser, but it’s not so big a problem as to ruin node.js’ potential.

Playfic describes itself as “a platform for writing and playing interactive fiction”, but I think it’s fair to think of it as an attempt at a web app version of Inform 7. It has a minimalistic flat UI, with the same two column window structure as the desktop Inform 7 IDEs have. Type Inform 7 code into the left, press “Save & Test” and the right side shows your story (almost instantly too!) Sadly that is where the comparison end. Two of Inform 7′s biggest strengths are its large collection of community libraries (“extensions” in Inform 7 lingo), and it’s Index, which shows how all the code from the standard library, extensions and the author’s own code interact together. Playfic does allow you use the built in extensions, but there is no way to add others, except for extracting the code yourself and adding it to your own, which may require some massaging in complex cases. I’m sure that for any substantial work of Inform 7 the Index is an indispensable tool, which makes me doubt how much can really be done with Playfic — will authors find they need to start copying across the code to a desktop IDE to use the Index? Playfic is not another first-class Inform 7 IDE; neither is it an imaginative reuse of the language like node.js is for Javascript. I think Playfic might prove to be most useful as an Inform 7 pastebin, somewhere to post and play example code and bug test cases.

Playfic also posits itself as a platform for playing IF. You can certainly play IF well enough — considering it embeds Parchment I’d have only myself to blame if I didn’t think so! It doesn’t however help in regards to deciding what IF is worth playing. It’s Explore page lists published games under several headings, but with only the name of the game and the author there’s not much to go on. Hopefully the best games published at Playfic are also listed in IFDB because otherwise they’re going to be hard to find.

 

Quest web editor, by Alex Warren

Quest has been around for a long time, but in this last year its online editor has been published. Unlike Playfic, the web editor is a fully featured editor, and is advertised as being of equal status as the desktop version.

Quest’s authoring interface is largely through forms and dialogues. Although it is possible to view and write code for action handlers, it doesn’t appear to be possible to do the same for objects. Considering the large number of stories which are available at Quest’s website this type of interface is clearly popular, but it’s not for those like me who much prefer defining objects through source code. (Though that said, I don’t mind it so much in Visual Studio… perhaps the difference there is that every property is given in a single list, rather than being split up between several tabs?) I don’t feel able to fairly judge Quest, but I do think that anyone who has tried the desktop editor first will appreciate the web editor for being a faithful port of the original.

Quest also supports a gamebook mode, or as we often call them, CYOAs. (Yes, I know there’s a trademark!) In the gamebook mode the form based interface is much more usable. I would note though that Quest’s gamebook model appears to be stateless which will limit what can be produced with it.

I think what is really most notable about the Quest web editor is how it came about. Quest is one of the few fully open source IF systems, and with the web editor, it is also the only (to my knowledge) system to share code between desktop and web versions. If I haven’t misunderstood, both the editor and player interfaces use the same code for both web and desktop. I think that is a substantial achievement, and one I hope other systems can move towards. Now if only the games were fully playable in Gargoyle too…

 

StoryNexus, by Failbetter Games

Of the nominees this year, StoryNexus is the one I found hardest to write about. To start with, I’m not even sure the StoryNexus games should be considered IF! That though may not be a real limitation of the platform, but just of the games that have been written so far, and there may even be some that do merit being called IF now that I haven’t read. But I have to stick with what I know, and so for now I’m going to say that it’s IF-ness is yet to be established.

StoryNexus calls its games “worlds”, and it’s an apt term to use. The worlds that I’ve played have been quite richly developed, with substantial back stories. Your interaction consists of choosing cards that are dealt randomly to you, though as you’ll almost always want to play them all, your choices there are limited to the order you choose them. Each card represents a scenario you find yourself in, after which you’re given a choice of various responses. StoryNexus worlds are strongly dependent on statistics, and the cards you are dealt as well as the options each gives you both depend on statistics in order to be available. Furthermore, whether or not your choice is successful will often depend on statistics, and your success or failure will then further change those statistics. I’ve appreciated the statistics in the worlds I’ve played, as they frequently represent your affinity to one of the world’s factions, your social aptitude, and how involved you are with some mystery, rather than pure combat abilities (though those are there too.)

I don’t think I could say that any of the worlds I’ve played have a plot however, which is where they leave me wondering whether they even count as IF. Each card gives you a “storylet”, which are largely independent, and possibly conflicting. The repetition makes the experience very non-immersive, to the extent that I sometimes skim over the text of a storylet before realising that it’s one I haven’t read. The platform restricts how many cards you can play at a time in an attempt to entice you to spend money buying extra actions, meaning that my interest hasn’t been kept longer than a few days, and I haven’t yet reached the end of any world. I think it should be possible though to reduce the repetition and present a more structured story. The featured worlds range between 250 and 65 storylets, but I’d estimate that the maximum you could play in a day would only be a couple dozen.

As a platform for creation, it seems to be a smooth technical experience. It doesn’t however lend itself to casual tinkering. Creating a world is involved, and once you’ve managed that, I anticipate you would need to do a lot before it would get to the stage where you could properly test it. This is definitely a system which requires lots of preparation — the player statistics and qualities will need to be planned thoroughly first, as each storylet and option will be pleading for you to assign them statistical requirements. That said, once the basic structure of the world had been implemented, the system would allow you to continue to add new storylets, allowing you to reduce the repetition bit by bit.

 

Vorple for Inform 7, by Juhana Leinonen

Vorple for Inform 7 is an exciting step towards what I hope will be the future of IF! Vorple gives you a modified version of the Parchment web interpreter, together with a bunch of extensions to allow you to try many new interface effects. Underneath it is implemented by allowing Inform to call custom Javascript code in the interpreter, allowing you to extend Vorple almost unlimitedly.

The extensions provide many optional effects: outputting arbitrary HTML elements, setting a turn’s response as transient so that it fades away with the next turn, showing notification messages elsewhere on the screen, hyperlinks, tooltips, and multimedia including images, audio, and YouTube videos. The most important of these may actually be making text fade away. In addition to Vorple, Juhana Leinonen has done some very important research on the types of commands that new players tend to attempt. Some of the recommendations he suggested could be made without Vorple, such as changing the default responses to many commands. But one thing he found is that new players can be overwhelmed by a whole page of failed commands. Vorple allows you to erase previous turns so that at most one failure is visible at a time, something completely impossible before Vorple. Vorple also makes it easier to distinguish between the various “voices” in an IF story, such as the player, the narrator and the parser. I can imagine it being used to great effect by marking off parser errors in a different colour with a tooltip giving an elaborated explanation of what went wrong and what else could be tried. This is only the beginning of an exciting time for IF accessibility!

Vorple is sadly Z-Machine only, meaning that only comparatively short stories can be written with it. There are plans to add similar technology to Glulx, though with limited time available to interpreter authors (myself most of all!) it may be a while before this comes to pass. I hope that when it does we will see two improvements over Vorple for the Z-Machine: the ability to include custom Javascript code in a safe manner such that custom interpreters won’t be required, and the ability to use it in desktop interpreters, perhaps by embedding WebKit. The future is bright, but don’t feel you must wait for it; Vorple is an amazing, highly polished development, and truly worthy of this XYZZY award.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>