Quest 5.3 Beta is now available

3 December 2012

You can now download Quest 5.3 Beta for Windows. This release features a number of enhancements - improvements to the look and feel of games, a few new things you can do in games, some additional script functions, and general improvements to make Quest just that little bit easier to use. And of course, quite a few bug fixes.

If you’re a user of the web browser version of Quest, stay tuned - you’ll be able to use Quest 5.3 Beta in your browser soon. Update 5th Dec: The web version of Quest is now running v5.3, so try it out!

Read on for all the details about what’s new, or download Quest 5.3 Beta now.

Improving the look and feel

One of the things that’s been annoying me lately is a prevailing attitude that somehow text adventure games are just a retro thing, that the way a text-based game should look is as though it comes from a mid-80’s DOS prompt. Well, I think the future of interactive story games is much richer than simply displaying a load of black-and-white text with a command prompt underneath - we have barely begun exploring the user interface for this kind of game. They are still new! The oldest text adventure game was released less than 40 years ago. We had not discovered everything there is to know about film making by 1940 either, and their growth was somewhat more rapid, without the whole being-pretty-much-forgotten-about thing to stymie development. The power that HTML gives us in every computer, tablet and smartphone is immense, and this is something text-based games should be tapping into and experimenting with.

So let’s forget the “ZOMG text adventures that’s so retro LOL!” nonsense and start to build something other people will actually give a crap about.

With that in mind, one of my aims for this release was to start to make it easier for authors to completely customise the game player interface with HTML and JavaScript. One problem with this was that up until Quest 5.2, there were really two separate UIs - when you play a game in your web browser, the UI is 100% HTML, but the desktop version of Quest rendered the Inventory list, Compass pane, input box etc. using standard Windows forms controls. This meant that the game looked a bit different and didn’t offer the ability to customise any of the Windows form elements.

So, the web version of the player UI has now been brought to the desktop version. This means that the entire game playing interface is pure HTML, and the game looks the same whether you play it in the desktop version or in the browser. With custom JavaScript and HTML, you can now do things like implement your own version of the Inventory pane, add your own panes, change the screen layout, create your own input method… and who knows what else. It also means that any enhancements made to the standard interface in future versions will apply to both desktop and web versions of Quest - any built-in “easy customisation” functionality would apply to both.

Furthermore, the desktop version of Quest is no longer dependent on the version of Internet Explorer that is currently installed. Instead, Quest bundles an embedded version of the Chromium browser. This is the browser that underpins Google Chrome, and is based on WebKit (which is also behind Safari and the default Android browser). This means you now get access to the Chrome Developer Tools directly within Quest - so you can play around and see the effects of tweaking HTML while a game is running.

Chrome Developer Tools in Quest

Quest 5.3 starts us down the road towards doing more innovative and exciting things within a predominately text-based medium. Of course we’re not fully where I want to be yet, and one of my focuses for Quest 5.4 is to extend the customisability of the UI even more, to make it even easier to try out interesting ideas. Keep on eye on the blog, as I’ll be documenting any experiments there, and please do contact me if you have any ideas!

Other new improvements to look and feel include:

  • Grid-based map (sponsored by Phillip Zolla) - as detailed in this separate blog post. This is an initial release of mapping functionality, so it's fairly basic at the moment. Future releases will add support for images in the map, and a visual map editor.

Grid-based map example

  • Google Web Fonts. You can now choose from over 600 different fonts, and they will be downloaded on demand.
  • Cover art. You can now add cover art to your game from within the editor, and some game authors have kindly provided cover art for their existing published games. This is currently displayed in the game browser, and will soon be shown on the website too. Hopefully this will be a nice way of attracting more people to your game, and maybe provide something of an idea of the game's feel and atmosphere.

Displaying cover art in the game browser

  • Text effects. There are new "typewriter" and "unscramble" text effects available from the new "Effects" category in the script editor. They are pretty basic JavaScript effects and work best with a monospaced font. It would be nice to expand this to a more fully featured library in the future as this is really the tip of the iceberg for the kinds of things that I think JavaScript could bring to text adventure games.
  • Background images. You can now specify a background image as well as a background colour, and you can also set the opacity for the section of background image that appears behind the game text. You could try the Subtle Patterns website for some nice backgrounds.
  • Redisplay hyperlinks in commands. When using object hyperlinks, the command output now has the same hyperlink in it so the player doesn't have to scroll up again to do other things to the same object. As with most things, as a game author you can turn this off if you don't like it (indeed you can turn off hyperlinks entirely if you want).

Showing hyperlinks for a command that has been entered

  • And more. Customisable object link colour (sponsored by Phillip Zolla), more room description options (by James Gregory), choose a different alias to display on the "Inventory" and "Places and Objects" panes (sponsored by Phillip Zolla), use "ul", "ol" and "li" tags to show numbered and unnumbered lists (sponsored by Phillip Zolla), background sounds for gamebook pages (by Pertex).

Game behaviour - new things

  • Changable POV (sponsored by Phillip Zolla) - as detailed in this separate blog post. I'm looking forward to some interesting games where you can take control of multiple player characters over the course of a game.
  • Light and dark rooms, light sources (by Pertex). Rooms can now be dark, and lit up by a light source object.
  • Scenery/Invisible exits (by Pertex). It's now easier to make exits appear or disappear using a script command, and you can also have a "scenery" exit which exists but is not displayed in a room description.

Script improvements

  • Mathematical functions. The .net Math functions are now available to expressions - including Sin, Cos, Tan, Ceiling, Floor, Log, Sqrt.
  • New sorting functions (sponsored by Phillip Zolla). Sort an object list by attribute with ObjectListSort(list, attributes...) and ObjectListSortDescending(list, attributes...). Sort a string list with StringListSort(list) and StringListSortDescending(list).
  • And more. Optional type parameter for "create" command (sponsored by Phillip Zolla), new GetDouble, HasDouble, ToDouble, IsDouble functions (sponsored by Phillip Zolla), names for temporary timers and turnscripts (by Pertex).

Making it easier

  • Automatic display verbs. By default, any verb you add to an object is now automatically added to its "Display verbs" list, so you don't need to manually add it. This helps you to ensure that your game can be played without typing, as any custom verb you add will always be selectable from the object's hyperlink menu.
  • Image previews in the editor. A small thumbnail is shown anywhere you can select an image.
  • Named character types (by James Gregory). Easier way of making a "named" character (e.g. "Bob", "Dracula") display correctly in a room description - this simply turns off the default prefix so Quest displays "You can see Bob" instead of "You can see a Bob".
  • Editor automatically saves when you click Play. Being prompted to save all the time was tedious.
  • New toolbar when playing a game from the editor. Quickly return to the editor, or view the object debugger and log screens.
  • Game log (sponsored by Phillip Zolla). A place for outputting debug information, instead of writing things in-line with the game output.
  • Find/Replace enhancements to Code View (by Aleksandar Hummel). You can also search for text using a regex.
  • And more. Code view word-wrap setting is now saved (by James Gregory), "Source" column in the Debugger shows you which type an attribute was inherited from (sponsored by Phillip Zolla), sortable columns in the attributes editor (sponsored by Phillip Zolla).

It feels like I’ve been sitting on some of these enhancements for quite a long time, so it’s good to finally get Quest 5.3 out, even if it’s only in beta form at the moment. I’ve been busy for the last few months doing some contract work, which has now finished, so hopefully the frequency of updates will increase - until my money runs out again, that is!

Many thanks to Phillip Zolla, Pertex, James Gregory, Aleksandar Hummel and Jay Nabonne for code and contributions towards this release.

Please download Quest 5.3 Beta, and let me know what you think - and of course report any bugs you find! You can email me at [email protected], ask questions in the forum or you can find me on Twitter:


AdventureX 2012

11 November 2012

I’ll be at AdventureX 2012 in London on the weekend of 15-16 December - a free event for everybody interested in adventure games and game design.

The full schedule will be released at the beginning of December. I’m going to be doing a talk on the Sunday - probably a demo of Quest, and maybe some thoughts on the future of text-based games. There will also be talks from Jon Ingold, Dave Gilbert, Stephen Marley, Götz Heinrich and more to be announced.

It’s free to attend and you don’t need a ticket - just turn up! Hope to see you there.


Quest workshops at GameCity 7

15 October 2012

I’ll be running several Quest workshops at GameCity 7 in Nottingham, UK on 22, 23 and 24 October.

For more details and tickets please see the festival schedule. Suitable for all ages from 8 to ∞.

These will be similar to the workshops I ran at Games Britannia - so no prior knowledge of text adventures or programming required. In the space of two hours we’ll be looking at what text adventures are, how to play, and then creating our own. Tickets are free so all you need to bring is your imagination!


Talking about Quest and text adventure games on The Transmedia Podcast

25 September 2012

I am the guest on episode six of Robert Pratten’s Transmedia Podcast. We had a good chat about the past, present and future of text adventure games, building interactive stories, expanding the “niche” for text based games, getting kids into game making and more.

It was great fun, though I inexplicably got the name of the first ever text adventure game wrong. So if you can forgive me for that, and the number of times I say “erm”, you should hopefully enjoy the podcast!

Download or subscribe to the Transmedia Podcast

Direct MP3 link


POV support - multiple player objects in Quest 5.3

19 September 2012

Quest 5.3 adds support for a game to use multiple player objects. The game is still a single-player game, but you can now switch between different characters at any time.

This means you can now create a game where the player can explore from different points of view, or perhaps simply choose a pre-defined character when starting the game.

Previous versions of Quest simply had one object called “player”, which stored the player’s location, inventory, and any other attributes. As of Quest 5.3, any object can “be” the player, and it is easy to switch between them at any time using the new ChangePOV function (available on the script editor as “Change player object”).

So you could change the POV after asking a question in the game start script, in response to a command, or maybe after successfully solving a puzzle.

Each player object gets its own inventory and attributes. This includes status attributes, so each player could have their own health or stats, and these will be updated on-screen as the player switches between characters. For status attributes which apply across the entire game (perhaps “score” for example), you can still set these on the “game” object itself and they will be displayed whichever object is the player.

Objects can behave differently depending on whether they are the player or not. For example, if you have two player objects “Dave” and “Bob” in a game, and it is possible for them to be together in the same room at the same time, you will want different responses for “look at dave” and “look at bob” depending on whether the player is currently Dave or Bob.

To handle this, options that were previously only available for the single “player” object are now available for all objects. The object’s Options tab has a new “Player” section. If “Can be a player” is selected, new options appear where you can set an override “look at” description to display when this object is the player.

This new feature is part of Quest 5.3, which will hopefully be in beta around the end of October. In the meantime, you can download the nightly build from CodePlex.

Thanks to Phillip Zolla for sponsoring this work. If you’ve got an idea for a feature you’d really like to see in the next version of Quest, please consider sponsoring it as a way of making it happen - contact me for more details.


All Posts