Category Archives: Quest

Quest 5.3 Beta 2

Happy new year! Just a quick note to say that I’ve updated the beta build of Quest 5.3, to fix various bugs that were logged. This release also improves performance and reduces memory usage.

You can download the beta for Windows, or you can access it online in any web browser.

For details on what’s new in Quest 5.3 Beta, see the original blog post from last month.

Please report any bugs you find – the final version should be released in a couple of weeks. Then I can get started on Quest 5.4…

Quest 5.3 Beta is now available

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 alex@textadventures.co.uk, ask questions in the forum or you can find me on Twitter:
//

AdventureX 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

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

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

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.

New free version of Visual Studio edits Quest source code

Microsoft have released Visual Studio Express 2012 for Windows Desktop. This is the first time there has been a free version of Visual Studio which is capable of editing mixed-language .sln files.

This means you can now open and edit the source code for the desktop version of Quest without having to use a paid-for version of Visual Studio.

Download VS Express 2012 for Windows Desktop

Download Quest source code

More information on contributing to the Quest open source project

When you open the .sln file in VS Express, it will complain that it can’t open the Setup, WebPlayer and WebEditor projects. You can safely ignore these messages, as they are not required to build and run the main Quest project.

If you have any questions about the code, please visit the Developer Forum. Happy hacking!

"The Things That Go Bump In The Night" now available for Windows Phone

Just a quick note to say that in addition to iOS and Android, Quest games can now be turned into apps for Windows Phone devices too.

The first app “The Things That Go Bump In The Night” is now live on the Windows Phone Marketplace.

Interested in creating your own text adventure app? Any Quest game can be converted into a smartphone app – more details on the Apps page, or please get in touch!

Available on the App Store

androidmarket

windowsphone

Automatic mapping in Quest 5.3

A text adventure generally involves moving around the game world by following compass directions – north, south, east, and west, with the occasional use of up and down, or in and out. Many players like to map out a game as they play using pencil and paper, but I expect the majority of players try to keep a map in their heads, and probably get lost more often than they would care to admit.

I’ve often been asked about adding a map as a Quest feature, but I had been put off from doing so by questions about how this should work exactly. For example, even if all exits are consistent (so that going west and then east takes you back to the same room), some rooms may be different sizes than others – this means that if the player starts in room A and goes north, west (along a long corridor), south and east, they will not arrive back in room A. And if you have many exits from a room, how do you ensure rooms don’t overlap?

I have now come up with a solution, and it’s the automatic grid-based map. This is a feature I have developed for Quest 5.3 (soon to be in beta, and already available as a nightly build if you’re feeling brave). The work was generously sponsored by Phillip Zolla who was the original inspiration for the idea.

The map is automatically laid out on a grid, in much the same way as you might manually draw a map on graph paper. The only data a game author needs to provide are the dimensions of the room (defaulting to 1×1) and the “length” of the exits (defaulting to 1). Laying out the map then occurs automatically as the player moves through the game. And because the author only needs to input dimensions and lengths, this was very easy to implement in the Quest Editor – which was important as I didn’t have the time to implement a nice graphical click and drag map editor which would work in both the Windows and web browser versions.

Here’s an example map with three rooms:

Room A is 3×3, B is 6×2 and C is 3×5. All exits have length 1. The yellow dot represents the current player location.

The map is drawn using Paper.js so is rendered the same whether the game is run on the desktop or in the browser, and should also be adaptable when games are converted into smartphone apps.

There are various options for changing room fill colour and borders, which lets you create some neat effects. For example, in a castle in a meadow surrounded by a moat with a bridge (you may have to use your imagination a little)…

By setting exit length to zero, rooms appear side by side. By setting borders correctly, you can show multiple rooms as one long path or corridor for example.

Up and down are handled using layers. In the example below, the player has moved up and the map for the levels below is shown faded out.

You can also click and drag to move the map around, and zoom in and out with the scrollwheel (and it should be straightforward to add touchscreen support too).

I expect to release a beta version of Quest 5.3 around the end of September.

Upcoming text adventure competitions

If you want to expand the audience for your text adventure game, and have the chance of winning something unusual (or maybe even some money), consider entering it into a competition – of which there are a few coming up.

The IFComp is now in its 18th year. People have already donated prizes which range from a $100 Amazon gift certificate to a box of Belgian chocolates and a remote tarot reading. (I would expect even more to be donated over the next few months – check out last year’s list). Sign up by 1st September, and ensure you submit your entry by 29th September. This is a great way of getting feedback on your game too, as there are usually a lot of detailed reviews posted of the IFComp games.

There is also a competition called Herbtslaub for German language games. Quest fully supports creating games in German, so why not give it a go if it’s a language you speak – prizes so far are a Matchbox car (for all participants) and a 7″ vinyl single, which already sounds more exciting than the couple of books that were on offer last year.

You should be able to enter these competitions by submitting the .quest file that is generated when you use the Publish tool in Quest. You don’t have to publish your game on textadventures.co.uk if that would break competition rules – if you want your game to be playable online without having its own review page on this website, contact me and I’ll upload your game to a separate area of the website and send you a link.

Let me know about any other text adventure/interactive fiction competitions and I’ll link to them from this blog. Good luck!