A brand new system - Quest 5.0

Hi all,

It was over 12 years ago that during a bored summer holiday, I started work on my own little text adventure game system, which I called Quest. It had a rather strange user interface, a very limited idea of the kinds of things people might want to do in a game, no editor at all, and not much documentation to speak of. Also, I was trying to get people to pay for it, when there were vastly more capable systems available for free.

Since then Quest has come a long way, and it’s now at version 4.1.2. It has a much nicer interface, a lot more power, and a visual editor that makes creating a game reasonably intuitive - though you’d be well advised to read the included tutorial. I’m still trying to get people to pay for it, and every month a handful of people do, for which I am very grateful.

But there are still many ways in which it falls short of the other systems that are available. It has many quirks, the standard game functionality is rather under-powered, and it costs money.

So, I’m starting again. I am working on a completely new system, created entirely from scratch. The only thing that remains is the name - this brand new system is called Quest 5.0.

Quest 5.0 addresses pretty much everything that wasn’t quite right with Quest 4.x and earlier:

  • A core library, written in Quest 5.0’s ASLX language, handles the standard game logic - even fundamental things like determining what objects are visible, and parsing commands.
  • Many concepts which were separate in Quest 4.x are unified - rooms, objects and the player themselves are all objects.
  • By writing the core library in ASLX, this means the language has become much more powerful and flexible. Expressions are now fundamental to the way ASLX works, for example, so no more weird inlining of functions and variables, and you can create “if” expressions as complex as you like. There is also built-in support for handling lists.
  • No more hard-coded strings - create games in other languages by translating the English.aslx file.
  • Object properties are fundamental, so no more weirdness with properties overriding tags. Properties support different data types: string, double, int, boolean, script, list, object. No more separate concept of global variables - just properties of the “game” or “player” objects.
  • Support for “undo”, when playing games and in the editor.
  • HTML interface means you can format text however you like, even embed YouTube videos in games.

And even more importantly: Quest 5.0 is now free and open source.

Currently you can load, play and save games. The bare bones of the core library are in place, though it needs a lot of fleshing out. I have started work on the editor, which is shaping up nicely - it will be driven by the core library, so as features are added to the library it will be straightforward to wire up the editor to support them.

If you’d like to contribute, please join the project on CodePlex! We need C# and VB.NET programmers, and also people to flesh out the Core library and help with translations.

Here are some links:

Source code and issue tracker on CodePlex: quest.codeplex.com
Documentation is on the wiki: quest5.net
Various blog posts talking about how the system works and why it’s now open source: axeuk.com/blog/

Thanks for posting here, I had heard about this on a couple of other forums but hadn’t followed up yet. A couple of questions – I’m guessing this is only for Windows and maybe Linux with Mono? Also, how easy is it to customize the UI of the player? Are there any plans for a web-hosted or browser-playable interpreter?

This sounds interesting. I probably won’t be able to resist taking a look at it when it’s released. :wink:

When I previewed the demo of Quest 4, the most interesting feature to me was the QuestNet server, the multiplayer functionality. It sounded as if one could make a MUD with it. Is this going to be part of Quest 5 as well? If so, the new open-source status might make it appealing to the MUD community as well as to the IF community, which would be really cool.

Thanks, and good work. :slight_smile:

It is built in .NET so at the moment this is Windows only, but I hope it will eventually work on Linux and Mac using Mono.

There will be a browser version, just as there is a “play online” feature for Quest 4.x games. I’m even designing the editor so that the GUI is as abstracted as possible, with the aim that it will be possible to create a web version of the editor too.

The player UI is very customisable as you can specify your own HTML page to use. Javascript in the page can trigger ASLX functions and vice-versa, so there is a two-way link between the game and the HTML which will make it possible to implement whatever UI you want.

QuestNet Server never really took off, so it was withdrawn as of Quest 4.1. But multiplayer support is a possibility for Quest 5.0, and now that the player is a proper object, it should be relatively straightforward to adapt the WorldModel and core library to handle multiple players.

Sigh, perhaps you and I should have teamed up at the start and made Querift/Adrest 5.0? :laughing:

Congratulations, and well done for going freeware and making it so easy to translate games into different languages.

Little question, though - are you going to create a new website and games page for Quest 5, or just merge it with the existing ones?

I would suggest creating new ones, because, to be perfectly honest, for some reason, the users that have been using Quest 4 have turned out very, very sub-par games. This is in no way related to the abilities of the system, though it might be related to the fact that it was shareware, and thus available only to those who’d pay for it; and those who’d pay for it are usually people looking for easy ways to make adventure games, and usually novices. Novices feeding on novices and giving feedback for novices. Whereas people with more experience would decide it wasn’t worth paying for Quest when they could Inform or TADS.

The result has been a very big number of small quality games. I hope - I fervently do - that Quest 5 will change that. :slight_smile: I believe it will. But maybe it would be best to separate Quest 4 pages and communities for this reason, yes? After all, no Quest 4 game is to be an example of the capabilities of Quest 5. And the current users would, quite frankly, not be a good example of Quest’s potential. If they wanted to migrate to an hypothetical new site that would be, of course, completely up to them, but using the Quest 4 site and games page and forum, where they’ve made their mark… to be honest, it would scare me off, as a user. Heck, it did.

Now, I said some unpleasant things, I know, but I needed to say them. And I have to restate that I find none of it to be the fault of Quest’s author; a set of circumstances have created a certain user-database, and that is all. I hope - I expect! - that the new Quest will draw in new authors, more experienced - or at least authors who have a grasp of IF conventions, something severely lacking in the current cummunity - who will come up with games worthy of the engine.

This sounds like a great project. Good luck.

Peter wrote:

No, you never ever treat your fans as a liability. If the new system is better, it will allow them to make better games. Showcase that.

Yes, I see that… it’s just that all available Quest games are pretty crappy, from what I’ve seen, and I think that good games won’t be long in popping up. And I don’t want to have to sift through a lot of crap to get to the good stuff, not when so much of the crap can easily be identified as “released before Quest 5”.

I know how this sounds, BTW. I know you HAVE to soft through crap to get to good stuff. I know that being released before Quest 5 doesn’t mean it is automatically crap, and being released afterwards doesn’t mean it’s automatically great. It’s just how I feel. And this is coming from the guy who decided to download every single IF game he could get his hands on… and tried a lot of Quest games and decided to just forget about Quest games.

I’ll probably update the category system on textadventures.co.uk so that games have tags, and then there will be a tag for the Quest version. So when the time comes you’ll be able to easily find the v5 games.

That would be very nice. :slight_smile: Sorry for any unpleasantness on my part.

How about Inform-Adrift-Quest 1.0 (a collaboration of the IF system programmers from good old Blighty!) :smiley:

I wish the clever programmers could get together and come up with an intuitive ‘natural language’ IF creation system that’s as easy as simply writing a story, like I7 without the quirky bits. I often think there are those that can program and those that can write, the ones that can write but not program are put off writing IF games before they start or give up soon after… me, I’m still persevering.

I’m making progress with I7, I have Quest 4, looking at Quest 5.0 and Adrift 5.0, somehow even with I7 it’s still programming a game rather than simply writing a game using a true ‘natural language’ syntax, one day maybe, for now I’ll just have to wait and hope.

Have you listed some of those quirky bits on the suggestion site so that the developers can consider making them more intuitive?

I guess the quirky bits would exist no matter what, it’s the quirkiness of languages that have to be accepted, ‘natural language’ IF creation systems included! Jim Aiken posting on his blog seems to make the point, I’m the same, looking for a system that is ‘nice to use’… old-school programming or state-of-the-art natural language… or something else?

The recent What Is a Construction? thread in the Inform 6 and 7 Development forum I think makes the point along the lines I am getting at. Anyone developing IF creation systems and writing manuals should take the suggestions and comments on board so beginners can grasp and understand a language, make progress and not simply give up.

If an experienced IF author says the following…

… then something must not be as easy to understand and comprehend as it could be!

Now where’s my good old piano, I think I’ll go play it instead.

I agree - this is why I think GUI-based editors can be quite a good idea, as all your available capabilities are laid out in front of you - you don’t have to remember the correct syntax for creating the various behaviours in your game, and no functionality is hidden.

Of course any design has its compromises, and this approach has traditionally made it difficult to create advanced behaviour in the game, as the GUI can slow you down.

With Quest 5.0 I plan to give the best of both worlds - the Script Editor will default to the point-and-click style of Quest 4, letting you choose commands from various categories and populating their parameters according to prompts, but it will also let you switch to a code view so you can write code by hand as well. Hopefully this will make it appealing to beginners but without slowing down people more comfortable with programming.

This is really intriguing to me. I’ll be honest here and say I haven’t used Quest at all. I did partially introduce some classes on textual IF to the Adrift system and they were quite intrigued. It sounds like Quest may have some similarities in approach which would also be welcome.

I’m almost wondering at this point if I shouldn’t try to plan a class with both Adrift and Quest. Prior to this, I’ve largely focused on Inform and TADS 3. But now you’ve got me thinking …