Welcome back! Last time I bitched about old-school adventure game interfaces and tried to convince people to throw them out the window. Today I’m going to give an example of how I futzed around with the interface of my game, Resonance, adding a layer of potential complexity to the puzzles while keeping the interface simple, fast, and intuitive.


1. Defining the gameplay

When designing the interface for your adventure game, you’re actually dictating what kinds of obstacles or puzzles the game is going to contain — defining the gameplay. You decide what kind of commands will be necessary for your puzzles and create an interface to accommodate them. So, you need to do some planning ahead here. What kind of puzzles and gameplay do you intend to include in the game? How do you want the game to play? …to feel?

There are no hard rules for how you go about doing this, so… Case study!

In Resonance, I wanted to stay within sight of the common adventure game formula, but add a sprinkling of new ideas to the genre. As I suggested in part I of this article, I started by thinking about the interface in spoken language form. I knew that I would keep the standard commands: “Walk to [mouse coordinates],” “Interact with [object/item],” “Talk to [character],” and “Use [item] on [object/character]”. But, I also wanted to give the player a way to have more control over conversations with other players. I wanted to allow the player to A) be able to talk to other players about other objects that they saw in completely different areas of the game and B) be able to talk to them about events that have happened or conversations they have previously had. I discovered this after writing out a portion of the game’s design document.

This showed me that many of my puzzles were going to be too easy because if I used a traditional adventure interface solution for them they would be choices from a list of dialog options. This is the stock-standard adventure game way of having puzzles where you have to relate the current situation to something else in the game: a list of choices which, when appropriate, would contain the object/character/etcetera that you needed to talk about. But this doesn’t really satisfy my desired effect. It is usually solvable just by simply exhausting all five-or-so options. I wanted something that would allow me to have hundreds of options because brute force doesn’t encourage lateral thinking.

So, one of the new commands that I wanted to work into the game would be “Talk to [character] about [object/character/inventory item/event/conversation].” I just had to come up with a solution to allow the player to input a command with such a large number of possible combinations in an appropriately easy-to-use manner.

2. Designing the interface

My next step was to consider how I could deliver that command via the game’s interface. I’m still thinking in a broad sense about the interface, not yet considering the clicks or keystrokes that it will require. I’ve got to figure out the process first.

My first idea was a bit off the wall. I thought about allowing the player to start a conversation, and then, in order to talk about something seen or heard earlier in the game (any event, conversation, object, or character), rewind the whole game back to a point where the intended conversation is taking place, and then pause it and somehow select it. This idea had a slew of problems, not the least of which was the massive amount of work it would take to allow you to rewind the entire game-so-far. But as the Imagination Movers say, (What? I have a four year old.) “There’re no bad ideas when you’re BRAAAIIIIIINSTORMING!”

Sigh... I eventually had the thought of creating another inventory for memories, and later thought to split that further into one inventory for events/conversations you had witnessed, and one for objects that you wanted to remember to talk to someone about. I called these the long-term memory and short-term memory, respectively.

Memories would be added to the long-term memory automatically as you encountered events or notable conversations. In this way it is similar to the notebook options you can see in some games like Discworld Noir, Diamonds in the Rough, and the Blackwell series.

The contents of the short-term memory, on the other hand would be controlled entirely by the player. I decided to limit it to three items per character that could be swapped and overwritten as you wanted to remember different things. I wanted to give the player the ability to add any character or object in the entire game to the short-term memory.

So, that was my interface solution for adding the type of gameplay I wanted the game to support. Using this new memory system, the player would be able to choose to talk to any player in the game about literally any other object they have ever encountered in the entire game. There are hundreds and hundreds of things that you can try talking to each character about. Bye-bye brute-force dialog puzzles.

3. Building an intuitive interface

So, now that you have defined the gameplay and decided how the interface will facilitate it, you actually need to figure out how the player is going to enter the necessary commands. How does the player speak this language?

Continuing with my example from Resonance, at first I decided to stick pretty close to the standard two button interact/examine interface. However, when writing down all the verb command combinations I would want the game to support, I ran into one problem:

inventory items short/long-term memories objects/characters in the room
left-mouse button click “Interact with [item]” “Recall/describe [long/short-term memory]”(respectively) “[Interact/Talk] with [object/character]” (respectively)
right-mouse button click “Examine [item]” “Describe [memory]” “Examine [object/character]”
? “Use [item] on [item/object/character]” “Talk to [character] about [memory]” “Add [object/character] to short-term memory inventory.

I had three sets verbs I wanted to use on each type of interactable and only two mouse buttons to do them with. I didn’t want to use the center mouse button or mouse wheel because not everyone has one, including me since I develop mostly on a laptop using the track pad. Similarly, I would hate to implement a keyboard solution like holding shift and clicking or pressing the spacebar because I wanted the game to be primarily mouse driven. One hand required.

I could give each of these commands a GUI-driven solution, such as adding a “remember” button to the top of the screen. Clicking this button and then clicking an object on the screen could add that object to the short-term memory inventory.

But those solutions require more clicks than I’d like and would require adding a few extra buttons to the screen. In addition, they’d all be inconsistent with each other, requiring a different sequence of GUI button pushes and clicks on objects. Keeping internal consistency with interface interaction promotes intuitiveness.

So, I decided to take some inspiration from the computer and adopt a drag and drop interface, which was perfectly suited for the third command for each interactable.

inventory items short/long-term memories objects/characters in the room
how to perform third command Drag inventory item onto any other inventory item or onto any object/character on screen. Drag memory onto any character to initiate conversation about memory. Drag from an object or character to grab a memory of them, drop it onto any slot in the short-term memory inventory.

Drag and drop isn’t stunning or new to the adventure genre. I see it used in a lot of flash point-and-clicks where it’s especially handy due to the lack of right-mouse button use. But it was a great way to extend the interface to support three commands per object without resulting to using the keyboard or an intermediary GUI.

Resonance Short Term Memory

Talk to Anna about the homeless man by dragging the homeless man into your Short-Term Memory, then strike up a conversation with her and select the memory when the Dialog Drop-Box is open.

Also, it keeps internal consistency as each use of the drag and drop maintains a “use this” (click and drag) “on this” (drop) implementation of the corresponding plain-English command: “Use [item] on [item/object/character],” “Talk about [short/long-term memory] with [character],” and “Add [object/character] to [Short-Term Memory slot]”.

And after deciding on this interface, I tested and incremented the interface for four months. At the end of my fourth month of working on the game, I had a room with a character, a couple items, and an interface with bare-bones graphics. And everything but the interface would then get stripped out when I started working on implementing the actual gameplay during the fifth month of development.

Resonance Short Term Memory

Or... simply drag the homeless man onto Anna, bypassing the Short-Term Memory inventory all together, to strike up a quick conversation!

And the product of that first four months of extensive experimentation is the interface that exists in the game today, which I believe feels completely natural and intuitive, requiring one press of the mouse button for every command in that table above and allowing more than I’ve talked about here as well. All commands are fast and easy and maintain internal consistency, yet the interface is still powerful enough to provide more than enough complexity to keep your brain busy with the game’s obstacles.

Awesome freeware adventure factory, Ben Chandler, did some Beta testing for Resonance and had this to say about the interface.

[The] interface is as intuitive as breathing. […] I found myself more at home with this than any other interface ever. I can’t believe how much I can do with so few clicks.

Needless to say, if everyone has this reaction then I will have done my job well.

Drag the crank! You have to cut the rope.
Wire the circuit board! Turn the combo-lock!

Even closeups that require manipulation of on-screen items to provide some texture to the gameplay maintain the same basic click and drag interactions for internal consistency.


I’d love to see more games taking chances with their interfaces. They don’t even have to be big chances. Resonance’s changes are definitely more evolutionary than revolutionary, but the effect on player experience is huge. I understand that there’s a programming barrier, but with the help from the friendly people on the AGS boards (or the support forums for your engine of choice) I would like to see more home-grown adventures break away from those built-in interfaces and start letting the gameplay dictate the interface, rather than the other way around. Adventure games need interfaces that are simple and intuitive to use but support a very complex set of commands. And until some game perfects that formula, there’s always room for experimentation!





About The Author

Vince Twelve is the creator of the award-winning Anna and What Linus Bruckman Sees When His Eyes Are Closed. He is also the programmer behind the award-winning Erin Robinson games: Spooks and Nanobots. Right now he is developing his first time commercial effort – the innovative Resonance.