Skip to main content

Unlisting The Listable

Introduction

When you get right down to it, players are a deeply deceitful, shoddy lot of chancers. No, no… don't take that the wrong way. I just mean that you can't trust them as far as you could throw them. Look, all I mean is that they'd sell their mothers if they thought they'd make a profit on the deal.

Oh, forget it. Let's start again.

There are some players, and they are very good. They are constructive, helpful people, and a pleasure to have on a MUD. They are honest, with a keen core of integrity, and they won't take advantage of cheap and easy 'tricks' to get ahead in the game.

Then there's the rest of them…

On the downside, it's very discouraging to see your hard-work traded around like some second-hand trinket. On the upside, it's an incentive to design better quests — quests that you cannot list.

The downside — this is very hard to do. The upside — they are a challenge to everyone who does them. It's not possible to develop hundreds of these — it's too hard, and it's too time consuming. However, the ones that do exist are usually worth ten of the standard, formulaic, 'take this X to NPC y'.

My Experience

On Discworld, we suffered a lot from quest lists — they were easily available, and widely used. Each quest gave an experience reward, and a new player armed with a comprehensive list of quests could make a lot of experience in a very short time. We tried numerous ways to deal with quest lists and quest list sites, but in the end it's like trying to squeeze a handful of sand — the harder you crush, the more sand escapes from your fingers. Every time you manage to shut one down, another two spring up in its place.

In the end, we just removed the XP rewards. The quests had been irrevocably tainted and there was no way to recode all of them for some temporary relief. However, even when we removed the rewards, there were still a handful of quests that continued to give XP, because of their nature. These were the quests that were unlistable. The only solution to rampant quest lists is to make them obsolete.

An Example

As an example, let me walk you through one of the quests I coded. This is a substantial quest that gives a substantial reward — but if I gave you all the instructions you needed to solve it, it would still take a couple of hours of hard work and thought.

The quest is set in a hotel — a murder has been committed — murder most foul! It's your job to find out who the murderer is. The hotel is a suite of eight or so rooms, each of which has numerous hiding places. The murderer is one of seven NPCs. The murder victim is the eighth NPC. NPCs are randomly set up so that one is the victim and one is the murderer.

The murderer is furnished with a murder weapon (randomly), and each NPC is setup with a series of occupations — each occupation is associated with a given murder weapon. Captain Beefy, head of the city guard, perhaps trained as a butcher before becoming a soldier — he'd be familiar with swords (from his soldiering), and meat cleavers (from his butcher days). Again, all of these occupations are set up randomly.

This immediately narrows down the suspects to those who are familiar with the murder weapon — examining the corpse reveals the weapon used, as well as a number of other clues (generated randomly). These clues are scattered about the hotel rooms, in various hiding places. Each NPC has a randomly generated whereabouts list — the murderer will be the only one who was in all the rooms containing clues after the murder was committed. As an extra constraint, the murderer will have been seen by another NPC every hour after the murder.

The quest works by questioning NPCs — asking them where they were, who they saw, and who they know. Through thorough questioning, you can build up a profile of the movements of each NPC. From this and the list of murder weapons, you can work out which NPC was in which rooms after the murder, and then you accuse them — if you were right, you get the reward. If you were wrong, you get nothing.

This quest took weeks to code and test — but it stands as one that it is simply pointless to quest list — there's too much randomness in how the initial setups are generated. There are billions of possible permutations — the only thing that can be listed are the instructions, and those are the easy part.

Some Guiding Principles

So, this leads me to the point of this article — a set of guiding principles that will help you solve the quest list problem forever![1] Consider these points when developing a new quest:

  1. Be transparent
  2. Identify areas where there is room for randomness
  3. Provide in-game means of finding quest hints
  4. Make it interesting
  5. Amply reward effort

Principle One: Be Transparent

If something can be listed, it will be listed. Pre-empt this by making all of that information freely available within the game. You are not deterring anyone by hiding it — secret information is valuable, and it only penalises those willing to play the game fairly.

Be up-front about the syntax — make it obvious, make it clear. Stick it in a help-file, or on a web-page. Let everyone know how to find it.

Principle Two: Identify areas where there is room for randomness.

Consider the standard 'courier' quest: You are a brave hero, yadda yadda yadda, great risk, peril, danger, take my item X, give it to NPC Y.

The bits around the edges may be different from quest to quest, but the structure is the same. There is great scope for randomness — generate item X from a list of possibilities, and likewise generate item Y from a list of possibilities. The same quest engine can generate dozens of different quests: 'Take this rock to Maggie McGee', 'Take this pencil to the Consumer of Souls', 'Take this sword to Mrs. Miggins'.

That's a simple example, but one that will work for a range of different quests provided they have a similar theme that can be expanded to include different elements.

For example, one of the engines we have on Discworld is not a quest, merely a series of odd jobs that people can do to earn money. Odd jobs are generated of the form <place> <broken item>. Inherits allow for the command syntax to be available in hundreds of rooms… so the same engine can generate thousands of combinations: 'Fix the broken window in Annie's Shop', 'Fix the door handle in Old Wilson's Mill', and so on.

Most quests have a solid object and a solid target — if you can randomly generate these from a list of possibilities, then you greatly increase the range.

As another example, we have a quest that involves contacting a spy, who sends you on a mission to intercept a coded message. Obviously this message could be chosen from a list, but we did something slightly different — the message is sent as cryptogrammic symbols, which are generated randomly.

The player looks up each symbol in a book, and then gets a message (chosen from a random list) that is encoded according to a simple monoalphabetic substitution cipher (the cipher is generated randomly). The quest is then to decipher the message and tell it to the original spy. The principle of deciphering such a message is fairly standard, and a description is available on many web-sites — but it's still a complex thought exercise to put that theory into practise.

Again, this is a quest that cannot be listed — sure, the instructions can be, but they're the easy part.

Principle Three: Provide in-game means of finding quest hints

Players often turn to quest lists in frustration — not being able to find quests, or simply not knowing what to do. Documenting all the listable stuff helps this, but so does providing an in-game quest hint system. Does your game have bars and taverns? That's an excellent place to drop the occasional hint. 'I hear there have been some murders up at the old hotel', or 'I saw a shady looking guy hanging around in the bar the other night'. You can liberally include red herrings and misinformation, as well as some useless trivia or funny observations. It doesn't have to be All Business. Make it funny, make it cute, and people will like it regardless.

Simply giving people an indication of where quests can be found removes a lot of the motivation for those 'casual' quest list users — those who didn't know where else to look and so turned to the Dark Side in their despair. Forget what I said at the start of the article — I suspect the majority of people want the experience of solving a quest themselves — it's just that too often we make it too difficult to find the start of the Sellotape roll.

Principle Four: Make it interesting

Obvious, I know… but hear me out.

Remember why people do quests in the first place — sometimes it's for the reward, and making a quest unlistable means the reward can be proportionate. But often, it's just for the thrill of solving a puzzle. Unlistable quests are a quantum leap more difficult to code, but they offer the potential to be so much more interesting. Their very difficulty inspires us to be more creative.

The more interesting you make the quest, in terms of the tasks involved and the storyline, the more people will be willing to do it. There's little gain to be made from someone giving away the ending to a quest (although that may happen inadvertently).

Principle Five: Amply reward effort

If it takes two hours to solve a quest, it should give a substantial reward that reflects the time taken. It doesn't have to be equal to what would have been gained farming NPCs for XP, but it should be enough to justify the expenditure of time. If people feel that they are getting enough of a reward for their hard-earned quest, there is less of an incentive to attempt to buck the system.

The investment in coding effort means that you want to get maximum utility out of your quest — a fair reward is also a good draw of interest. If you make it worthwhile, then your development time will not have been in vain.

Conclusion

It's remarkably difficult to design a quest that cannot be listed. It requires an exponential amount of effort to design, and a huge amount of extra effort to develop. However, this is pretty much the only way to ensure a fairness in quest rewards — the reward must equal the expended effort… reading instructions from a list is not a reasonable basis from which to reward. Make them work for it — your MUD, and your players, will be better for it.

Since we removed quest rewards, the quest list sites have mostly died out. There's still one that's fairly active, and I browse it fairly regularly to keep up to date with what's going on. The problem has been contained, but at a fairly substantial cost — not just in terms of what the players get out of quests, but in terms of the many quests that simply never get coded. Creator motivation to spend significant amounts of time developing interesting quests is low because they are so easily listed — the effort required to develop unlistable quests is huge and often very daunting. Everyone loses out.

Players don't get to experience the many great ideas that creators have for neat little quests. Creators miss out on invaluable coding experience. The only way to solve this, to my mind, is to emphasise unlistable quests and work hard to support those creators who have a solid idea. We shouldn't look on lists as the death toll for questing, but instead as the herald of a more interesting experience for everyone!

Drakkos Wyrmstalker

[1] Not a guarantee