Skip to content
ThePix edited this page May 31, 2021 · 57 revisions

Welcome to the Quest 6 wiki!

Quest 6 is a framework for creating parser-based text adventures. As yet there is no GUI editor (though it is under development), but there is a tutorial to walk you through creating a simple game by coding in a text editor, and the system is sufficiently complete that you can use that to create games of any complexity. This is still in development, and the files do get updated occasionally, though it is fairly stable now.

Why Use Quest 6?

The Quest system has been around for twenty years. Quest 6 draws on that experience to offer a mature, full-featured system, capable of handling the most complex game mechanics, including containers and countables and support for NPCs.

What makes Quest 6 different to earlier versions of Quest is that it is written entirely in JavaScript. This has two very important advantages:

Games run in the browser. Everyone has a web browser, which means everyone already has all the software they need to run your game. Players can save their game progress on their own PCs to "localStorage". Compared to Quest 5:

  • As games run on the player's PC there is no lag and no time-out
  • Games can be easily uploaded to any web site (as well as textadventures.co.uk)

Anything can be customised. The whole system is written in the same language you create your game in, and the entire framework is part of your game package. Anything you want to change, you can. You can re-write the parser, you can rebuild the interface from scratch or you can just slightly tweak how containers work. It is all there for you. As far as I know, this makes it unique among Interactive Fiction authoring tools.

Quest 6 (like Quest 5) is open source.

If you already know JavaScript, you already have a great head-start. If you do not know JavaScript, you are about to start learning one of the most important computer languages of the Internet! That said, because Quest 6 has already all the hard work, you will only need to a small bit of JavaScript to get going, and to create great games.

What does Quest 6 code look like?

Quest 6 has been designed to make it as easy - and as quick - as possible for anyone to write in code. It is in JavaScript, and that determines much of how it is written, but nevertheless, simple items and locations can be created without much effort at all. This example creates two rooms, plus a single item and the player. You do have to be careful with your brackets and commas, but you can probably work out what most lines do just by looking at them.

createItem("me", PLAYER(), { 
  loc:"lounge",
  regex:/^(me|myself|player)$/,
  examine:'Just a regular guy',
})


createRoom("lounge", {
  desc:'A small room with an [old settee:couch:sofa] and a [tv:telly].',
  east:new Exit('kitchen'),
})


createRoom("kitchen", {
  desc:"The kitchen looks clean and well-equipped.",
  afterFirstEnter:function() {
    msg("You can smell freshly baked bread!")
  },
  west:new Exit("lounge"),
})


createItem("hat", WEARABLE(), {
  examine:"It is straw boater, somewhat the worse for wear.",
  loc:"lounge",
})

If you want to do complex stuff, it will, of course, get more complicated, but conversely because you are writing in the same language the framework is written in, you can make make systems as complex as you want - there is no limit to what you can do.

Take a look at the tutorial if you want to see more.

If you want to see what games look like:

  • There is a tutorial on how to play parser games on TextAdventures.co.uk and on Itch.io.
  • There is a "Cloak of Darkness" sample game, more about that here.
  • You can see a demo showing what is possible with the user interface (though not without a fair bit of effort) here.
  • There is an example game where I test most of the features here - but be warned, it is not that coherent for playing.
  • There is a game by a guy/girl called XelX using QuestJS here; the first proper QuestJS game!

Tutorial

QuestJS Basics

The Text Processor

Commands

Templates for Items

See also:

Handing NPCs

The User Experience (UI)

The main screen

The Side Panes

Multi-media (sounds, images, maps, etc.)

Dialogue boxes

Other Elements

Role-playing Games

Web Basics

How-to

Time

Items

Locations

Exits

Meta

Meta: About The Whole Game

Releasing Your Game

Reference

Clone this wiki locally