Quest 5.0 is out now

30 August 2011

Quest 5.0 is now available! Download it now.

A brand new system for creating text adventures

Quest 5 is more than just an upgrade from Quest 4 - it is a completely new system, rewritten from scratch. I started work on it around April 2009, and the first preview version was released in February 2010. In October 2010, I announced that the system was to be free and open source. And in April 2011, I decided to increase the pace of development - quitting my job to work on Quest full-time.

Easy to use, powerful, flexible

Compared to Quest 4, the new system is much more powerful, flexible and robust - and I believe it’s even easier to use. The standard game behaviour is written in Quest itself, which means it is completely customisable. New features include support for “undo” when playing games (and also undo/redo in the Editor), expressions, local variables, lists and dictionaries - if you used Quest 4 you’ll want to check out the Upgrade Notes.

Compared to other systems, I had several objectives. Many of these are the same objectives I’ve always had for Quest, but the rewrite has made it possible for me to finally do them properly:

  • Easy to create games. It's easy to get started creating games with Quest 5. The visual editor is designed to be intuitive - everything is shown in plain English, and the aim is that features are easy to find by exploring the menus and tabs. You don't need to learn programming syntax, or spend time trying to get the system to understand you. I believe that no other system is as easy to get started with.
  • Easy to play games. I would guess that the vast majority of people in the world have never played a text adventure game. Quest is designed so that new players should be able to easily figure out how to play - see my earlier blog post on Eliminating "Guess the Verb".
  • Powerful. Behind the visual editor is a fully featured programming language. This means that although Quest is easy to learn, it doesn't restrict what is possible. See my earlier blog post about the design of the Script Editor.
  • Modern. I believe we should try to think of text adventure games as a new format. Many people, particularly those under 30, give me a worryingly blank look when I say I'm trying to revive the text adventure - they don't remember them in the first place. So there is no sense in trying to emulate the 1980's. The modern text adventure must be part of the web - it must be possible to play games in a browser, and easily share links to them. Games should be able to embed anything on the web - links, pictures, sounds and YouTube videos can all be part of the modern text adventure experience. Quest games use HTML and Javascript whether they're being played online or offline, which means they can be integrated with websites, and there is also the potential to create innovative new user interfaces for games. No other system offers this flexibility.
  • Shareable. It's fairly pointless making games if other people don't play them. Quest makes it easy to download and play games with its integrated game browser - there's no need to visit a separate site, as you can easily download games directly inside the application. When you create a game and upload it to textadventures.co.uk, other people can play online in their web browser - there is no need for them to download any software, so they can play a game on Windows, Mac and Linux - even iPhone, iPad and Android, though there is still some work to be done to make the site easy to use with those devices. No other system makes it this easy for you to share your creations.
  • Flexible. Quest is fully open source, and under a fairly permissive licence (Ms-PL, which is similar to the MIT licence). This means you can use and adapt Quest for use in closed source applications, to create desktop games or to power websites. No other system lets you do this.
  • International. Quest 5 supports multiple languages. Out of the box, you can create games in English, French, German, Spanish or Dutch. Quest's standard text comes from one file, meaning it is straightforward to create your own translation.
But don't take my word for it, download it now and see for yourself.

This is just the beginning

There are many more things I want to add to Quest, but “shipping is also a feature” as they say - I thought it was important to get something of release quality “out there” as soon as I could. The Issue Tracker will give you some idea of what is coming up - there are currently a large number of features assigned to a future “Quest 5.1” release, though this is quite a long list at the moment so I would expect a lot of those features to be pushed back to later releases.

In addition to the features listed on the Issue Tracker, there are some other Quest projects in the pipeline:

  • Linux and OS X versions of the desktop Player (and eventually, the Editor)
  • iPhone- and iPad-friendly versions of the web Player - maybe also native applications
  • "Simple mode" for the Editor, to make it even easier (particularly for children) to create games with Quest
  • Possibly a web-based Editor
  • Improvements to the textadventures.co.uk site - better profiles, editing existing game listings, improvements to categories, easier embedding of games in other websites, game analytics (e.g. what percentage of people complete your game), non-public games (i.e. not listed in the categories but you can still share the game via a link)
  • Integration of Quest with e-learning systems such as Moodle
If you have any other suggestions please let me know!

You can help

I quit my job to make Quest but I don’t really have a business plan - my primary motivation is really just that I want the software to exist. If it brings opportunities my way, that’s marvellous (and if not, it’s all good for my CV/resumé - I’m not completely nuts). So if you have a particular project in mind, please get in touch. Maybe you’d like me to do some custom development for you? Maybe you’ve seen a feature on the Issue Tracker you would like to sponsor?

Or if you would simply like to express your gratitude, if you think this software which I am giving away is worth something, I am of course happy to accept donations too, large or small.

If you don’t want to contribute money, there are other ways to show your appreciation - get involved! Quest isn’t just “my” project any more - as it’s open source, I’m happy to accept code contributions and translations. All feedback is very useful, so please report any bugs you find using the Issue Tracker, make suggestions at Uservoice, and join in the forums. You can also email me at [email protected] or tweet me @alexwarren.

Thanks

Many thanks to everybody who has made suggestions, posted bug reports, contributed features and translations. I don’t even know some of your real names. In no particular order, thanks to Stephen Hart, Jhames, Pertex, Jonathan Dobson, ThePixie, Xordevoreaux, Lina Anna, Guillaume Poulain, and anyone else I’ve forgotten!

Keep up to date

To keep up to date:

  • Join the mailing list for release announcements
  • Follow @TextAdv on Twitter for Quest announcements and game releases
  • Follow @alexwarren on Twitter for Quest announcements and other thoughts

Download Quest 5.0 now


Quest 5.0 Release Candidate 2

9 August 2011

Inevitably, a few bugs were logged against last week’s Release Candidate 1, so I’ve now fixed them and uploaded a new Release Candidate 2, which you can download here.

The biggest bugs fixed were that the Exits tab wasn’t showing existing exits, and a memory leak that could cause a hang after switching back and forth in the Code View after making edits. See the issue tracker list for full details.

The only thing that might remotely be called a new feature is the ability to translate the labels for the panes in the language template.

I’ll be up in Edinburgh watching comedy for the next week, which will be nice as London has descended into rioting as I type this - I’m drowning out the sound of distant sirens with some soothing music, so it will be nice to get away from it for a few days (presuming it doesn’t spread to Edinburgh too). If only we could persuade these kids to sit quietly indoors playing text adventures instead. Anyway, I’ll be checking my emails and the forums but may be slower to reply than usual.

When I get back I’ll fill in the remaining gaps in the documentation, fix any bugs that have been logged and then we’ll be ready to go!

Twitter: @alexwarren


Quest 5.0 Release Candidate 1

4 August 2011

In the week since Beta 4 was released, 24 issues have been closed on the Issue Tracker, most of which have been relatively minor bugs. I have reached the magic zero mark again, so it’s time for the first release candidate, which you can download now.

A few minor features did make it through:

  • Quest now uses the JAWS API to speak all text aloud if you're using the JAWS screen reader
  • It's now easier to lock and unlock exits from a script
  • You can look in directions (contribution by Stephen Hart)
  • You can now edit "ask" and "tell" topics
  • It's now easier to disable the object panes
  • Objects can now be cloned by a script
  • Added a function to tell if an object inherits a particular type
Being a release candidate means in theory that if no bugs are found, I won't need to update the setup file for the final release - this could be the one. I do expect there will probably be more bugs logged over the coming week or so though, and I still need to update the documentation, so I'm not saying "this is it!" just yet - I expect that the final release will be available towards the end of August.

Quest 5.0 Beta 4 released - approaching the final release

28 July 2011

Quest 5.0 Beta 4 is out now, and we’re on the home straight - this beta is feature complete. I’m not planning to add any new features to version 5.0 - very minor ones may be still be added, but all the outstanding feature requests have been moved to a planned future version 5.1 release (they may be rescheduled again of course).

I will still accept contributions of new/updated translations and minor additions to the Core library - I know a few people may currently be working on these. The project is still hosted on CodePlex but recently switched from SVN to Mercurial hosting, which will make it much easier for people to work on their own forks and for me to manage contributions.

New in Beta 4: Some improvements to the parser, re-implementing features that existed in Quest 4.x but hadn’t yet found their way into 5.0:

  • you can now refer to objects in the previous command by article or gender, e.g. "it". So you can type "look at box", "take it", "open it" etc. Multiple objects are handled via the usual disambiguation menu - so you can type "put book on shelf", then "look at it" will let you choose between "book" and "shelf".
  • if you make a mistake while typing an object name, you can now use "oops" to correct it. For example, "look at bok", "oops book". This can even handle multiple objects and a whole sequence of mistakes, so if you're an especially poor typist you can end up with sequences like this:
> put bok on shulf
I can't see that. (bok)

> oops bik
I can't see that. (bik)

> oops book
I can't see that. (shulf)

> oops sholf
I can't see that. (sholf)

> oops shelf
You put the book on the shelf.

If you don’t like “oops” you can of course still press the up arrow to correct the previous command (or just type more carefully in the first place!). Even though it may not be an especially useful feature, I was pleased that I was able to implement it entirely with changes to the Core library - I think this shows how flexible Quest is, as you could implement your own entirely customised parser in a game if you wanted, and it would work without requiring any software updates.

There have also been some improvements to help with creating non-English games:

  • directions can now have default prefixes - there are three different sets, one for compass directions (N/S/E/W/NE/etc.), one for up/down and one for in/out. These are all blank for English games, but may be useful for other languages.
  • language templates can now add object types, for example for masculine and feminine inanimate objects.
  • when adding a verb, the language template can now define a default expression which can include object attributes. In previous betas this was a hard-coded string. Now, for English the default verb expression is:
"You can't #verb# " + object.article + "."

So if you add a verb “smash”, you get sensible default responses “You can’t smash it”, “You can’t smash them” etc.

Other new features in Beta 4:

  • Record a walkthrough while playing the game - on the walkthrough editor, click the "Record" button. Play your game and all steps will be recorded, which is great for testing. If you click "Record" on an existing walkthrough, it will play through and you can then append more steps.
  • Add external links to a game, so you can link back to your own website or email address.
  • There is a new "in" direction (which has meant a slight redesign of the compass rose).
  • You can now run scripts after taking, dropping, opening, closing, locking, unlocking, switching on, switching off an object, so you don't need to override any built-in behaviour if you just want to play a sound, show a picture, release a herd of wildebeest or whatever in response to the player doing one of these "standard" things to an object.
  • Finally fixed a long-standing design flaw with verbs in Quest, in that it was easy to override and therefore break default functionality. I've lost count of the number of times people have asked for help because the "take" command had suddenly stopped working, and it was because they had added "take" as a custom verb instead of using the Inventory tab. The editor now prevents you from adding a verb to an object that would clash with an existing command, and gives you guidance on where you should go to put that script or message instead.

You can download the new version here: http://quest5.net/downloads/quest500beta4.exe

Get those bug reports in! The next release will be a Release Candidate, probably in a couple of weeks. All being well, we should go “gold”/RTM around late August.

In the meantime I need to complete the documentation, one of my least favourite tasks!


Teaching with text adventures

27 July 2011

The “retro” aspect of text adventure games is kind of fun, but I think it can also be limiting. I think there is a lot of potential for text adventure games to have a broader appeal, with wider uses, way beyond harking back to old-skool computer games. There is a place for text adventures on the modern web, but not simply “hey, remember those old games from the 1980’s? Some people are still making them!”

I am guilty of this kind of pigeon-holing myself of course. The current introduction on the Quest website says “Quest brings 1980’s-style text adventure games up to date” - well, fine, yes, maybe it does, but when I rewrite that introduction for Quest 5.0, I don’t want to frame it in those terms.

This is because I want to introduce this type of game to a new generation of authors and players, and these people may not even “remember” text adventure games in the first place. In fact, the most important people who I want to introduce to text adventures certainly won’t remember them - anybody at school today will have been born after 1993, a long time after text adventures ceased to have a mainstream appeal.

Using Quest in Education

There are educational uses for Quest, both in getting students to play text adventure games, and in getting them to write their own. There are probably ways of using Quest in any subject that touches on problem solving, reading, or creative writing:

  • Quest could be used as an introduction to programming - all the standard programming concepts are in there: variables, functions, expressions, objects, loops.
  • For teaching creative writing, Quest makes the author think of multiple points of view - the "reader" will be interacting with the game world.
  • Teaching foreign languages - getting students to play a game in a language that is not their mother tongue challenges them in both reading and writing, and it ensures comprehension, as they can't progress in the game unless they can read and write sentences correctly.

To children, text adventures are not old-fashioned - they’ll likely have never played anything like them before, so it will be new to them. This could be a challenge, in that they’ll be unaware of the conventions around the kinds of things they can type - but I think that Quest’s hyperlink support can help them to get the idea quickly.

Current users

I am very keen to hear from any teachers who are either currently using Quest in the classroom, or who may be thinking about doing so.

In the last month or so I have heard from:

As well as secondary schools, I have also heard from a university professor considering creating a final year project using Quest. There should be applications at the younger end of the spectrum as well - simpler text adventure games for primary school pupils.

In fact I don’t see any reason why primary school pupils wouldn’t be able to create games as well. I may need to work on a “simple mode” for the Quest editor, but if I can introduce young children to programming, that will be a great thing. I myself started programming on an Acorn Electron using BBC BASIC at the age of 8, and it would be fantastic if Quest could be used to get today’s 8 year-olds into programming too.

Deployment and Assessment

Quest features the ability to distribute games over web, so players don’t need to install any software. You can either upload games to textadventures.co.uk, or if you have a Windows server, you can install the Quest WebPlayer component. This means that it’s simple to deploy a game - whether you want students to play over a school network, or on their home computers, iPads etc., there’s no software to install on the end-user machine - all you need to do is give them a web link.

In the near future I want to look at enabling ways of integrating Quest with systems such as Moodle. The idea being that you could get students to play a game, and assess any aspect of the game session in the external e-Learning system - that could be simply whether or not they completed the game, or it could be any attribute such as the score, the number of rooms visited, or a full transcript of the game session. Unlike other “play online” systems (such as Parchment for Inform), Quest runs the game on the server, not the client - so it should be easier to implement such monitoring features by creating an API that can transmit details of the game session somewhere else.

Feedback

I’m very keen for any feedback on this, as this is a new area for me. If you’re thinking about using Quest in the classroom, I’d love to hear from you - what are your ideas, and what can I do to help?

You can get in touch by leaving a comment here, emailing me at [email protected], or you can find me on Twitter at @alexwarren.


All Posts