Three Ways To Interact - ThePix/QuestJS GitHub Wiki

Quest offers a number of options for the player to interact with the game:

  • Command bar
  • Game panes on the side
  • Hyperlinks

Before releasing your game, you should consider if all these are applicable to the game.

Text commands

The command bar where the player types words in English and submits them to a parser is the traditional input method for interactive fiction. It offers the most flexibility to the player, creating a great sense (or illusion at least) of freedom. At the same time, this puts extra demands on the creator, as she has to anticipate all reasonable commands. If an object is mentioned in a room description, many players will expect to be able to look at it, and if that description mentions something else, you just also implement that! You will also need to think of all possible synonyms for objects and verbs.

However, if you decide to turn off the command bar, you need to address the limitations of hyperlinks and the game panes. By default, they can only handle moving the player to another room and simple VERB OBJECT commands. How will the player do stings like SAVE, PUT BALL IN SACK and ATTACK ORC WITH FIREBALL?

Game panes

Quest supports a series of panes in a vertical panel to the right or left of the main text. They give a very different feel to a game. Firstly nothing is hidden. The compass also gives a quick indication of what exits are available, the inventory lists tell the player exactly what objects can be used at any moment.

Secondly - if there is no text input - the player is restricted to just a handful of possible actions at any moment. On the plus side, this makes game creation easier.

For more on how to create a Quest 6 game when the player interacts through the game panes and not the text input, see here.

Hyperlinks

Hyperlinks are the bread-and-butter of hypertext books (and this Wiki of course), and Quest allows you to build games that are entirely navigated by such link, but still has a sophisticated world model (i.e., objects and rooms existing in a meaningful relationship to each other). Many of the issues discussed in the document linked above are relevant here (though the solutions may not be), and it would be worth having a quick look.

Links are not created automatically in Quest 6, but you can easily use text processor commands to add your own. Text processor commands are indicated by curly braces, with the sections separated by colons.

If you would like help, click {command:HELP:here}.

Perhaps you could {command:PUT BALL IN SACK:put the ball in the sack}

The text processor command in this case is called “command”, so that is the first section. The next part I put it in capitals, but it does not have to be; this is the actual command, what the player would type into the command bar. This can be as complicated as you like - just as long as Quest can understand it. The last bit is the text the player sees.

You can add a library that will automatically add links to items; the user clicks the item name, to see a list of applicable actions. See here.

Further consideration for text and no text

It can be easier to create puzzles for a game using the command bar, as it is far less obvious to the player what to do at a certain point (in contrast to randomly linking links until something works). This can also lead to the “guess the verb” problem, where the player is trying to work out what obscure phrase the game is expecting next.

There is an argument that you should be consistent. For example, when conversing with NPCs, if there is a command line it might be better to have the player type SAY HELLO and ASK LARA ABOUT THE CARROT, rather than using dynamic conversations with menus. If you are using the side pane, dynamic conversations with menus in a dialog panel works best, whilst for hyperlinks dynamic conversations with menus as clickable links will fit best.

If you choose to have the command bar in addition to either hyperlinks or the game panes, be aware that some players may assume they can complete the game using exclusively one or the other. Personally, I would pick just one of the three, and build the game around that.