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/