Saturday 31 October 2009

The Quest for Quests - Part Four (Assumptions)

You may want to start this series with part one, two or three.

Quest content design is hard: which is why so many quests are either Bounties or Fed-Ex quests. In their simplest form, a Bounty is a 'go get me x of y', and a Fed-Ex is 'take a to b'. But even these simple forms raise many interesting questions and hidden assumptions - and are worth examining further.

Bounty Quests

Bounty quests traditionally involve killing n rats where n > 0, but can equally be seen as collecting n items, for similarly sized n. But rats are traditionally difficult foes in quest design, because they make the following assumptions:

i. n rats exist to be killed
ii. the rats to be killed move slower than the player and remain in accessible locations which are known to the player
iii. the player always has access to the appropriate rat-killing equipment
iv. rats in the boundaries of the agreed quest location are only killable by the player, never by anything else including natural causes, or are else recreated through spontaneous generation if they are killed by other means despite the absence of a procreative rat population due to the ongoing rat holocaust
v. by rats, the quest giver and player automatically agree that this includes or excludes rats of a particular age, gender or profession, completely distinguishable and agreed postmortem, and that the moment of gestation of a rat is definitively known
vi. the quest giver has the omniscience to know when the player has killed n rats, or the rat evidentiary material required by the quest giver only ever exists on a rat in a singular form and cannot be subdivided and is only produced due to the specific actions of the player, or there is a thriving black market in rat body parts to the exact value of the quest reward
vii. if rat evidentiary material is required, this material is perfectly preserved in perpetuity and contained within an immaculate boundary which extends beyond the player's body sufficiently to interact with this material in a defined way, or if it should decay or be lost, the rat population should replenish itself miraculously
viii. the killing of rat n, is more interesting and challenge an exercise to the player as rat n-1, which was as fulfilling as rat n-2, and so on

Assumption viii strongly suggests that there should be an increasing challenge as the player progresses through the quest. One approach may be to simply have the initial encounter be with 1 rat, the next with 2, then 3, and so on, which will guarantee that nth rat will be as interested, provide n is on the Fibonacci sequence, or the remainder included in the final encounter. Another approach may be to scale the difficulty of locating or fighting each rat higher than previously, which could be achieved by placing them randomly across a location of varying difficulty (the player will naturally migrate to the easier rats first).

As you can see, the amount of effort required to ensure that Bounty Quests cannot be failed can be considerable, and are often diametrically opposed to suspension of disbelief. If we simplify a Bounty Quest so that we just count the number of times we perform an action, instead of counting the successful outcomes of an action, we end up with a Do Something quest. The Do Something quest is an instruction to do an action so many times: such as chin up exercises in Metal Gear Solid 2, or the fight tutorials in Zelda: the Wind Waker. The Do Something quest is far easier to measure, but does not necessarily gauge skill, just determination.

If you are interested in measuring skill, you could get the same effect as a Bounty Quest but with easier to control the outcomes by using an Arena, where we place the player in a defined area, and measure their actions. Similarly, puzzles, skirmishes and mini-games can be used to measure player mastery of a set of skills without the complex boundary conditions that a Bounty Quest demands. The benefit of the Bounty Quest is that we allow the player to suspend the quest while having achieved partial completion, and potentially replenish the resources they require from elsewhere in the game world. I would argue that this benefit comes at considerable complexity and inflexibility.

Fed Ex Quests

Let's look at the set of assumptions required to perform the minimal Fed Ex quest for which the game designer has made it absolutely trivial for the player to complete:

1. The item is provided by the quest giver
2. The player can carry the item easily and safely without impact their existing abilities
3. The player cannot drop, lose, consume, sell or destroy the item in question
4. The item has no utility value to the player
5. The player cannot find the item elsewhere
6. The player can reach the requested destination
7. The destination is at a fixed point in space
8. The destination is known in advance
9. There is no time limit
10. The shortest path to the destination is clearly indicated at all times
11. The shortest path to the destination requires no expendable resources be consumed
12. When the player reaches the destination, they automatically complete the quest
13. There are no other quests which it would be useful to be closer to the destination than the start of this quest
14. The reward for completing the quest is greater than any other bonus that the player could acquire with the same time and effort elsewhere
15. The completing the quest does not change the accessibility of any other game content

Some of these assumptions are involve complex logic, such as 1, 3, 4, 5, 6 and 12, where the wrong design can result in the player not being able to complete the quest at all. For instance, if the game designer has chosen to make quest items act like other objects in the game, which results in them sharing common code (command interaction, menus, physics engines and so on), the presence and reach-ability of quest items must be guaranteed at all times.

Taking a simple example of being able to drop an quest item from the player inventory. In this instance, the player must:
a. Be able to pick the item up again
b. Not be able to drop the item in an inaccessible area
c. Not be able to prevent themselves from reaching the area they dropped the item again
d. Any other actor which picks up the item must not be able to make it inaccessible
e. Any other interaction in the game must not be able to destroy or move the item so it becomes inaccessible
f. If the location containing the item is freed from memory, it must first be saved to non-volitile in a form which it can be retrieved in subsequently
g. Data structures and code must be bug free so that the item cannot be duplicated or lost

And so on. Note that some of the above assumptions may not be achievable at all within a reasonable development time frame.

Given the complexities of assumptions which can result in a game state where a player cannot complete a quest, it is amazing the lack of effort spent on varying the assumptions for which the failure states are far simpler to control, or impossible to achieve at all. Consider assumption 2. What if there were multiple parts to quest item, of which the player could only carry some of at one time. There is the classic puzzle example of crossing a river with a fox, a hen and grain, of which only two fit in the boat at any one time, and where the the fox cannot be left with the hen on either bank, and the hen cannot be left with the grain. These sorts of simple logic problems can be woven into a quest fabric where failure states can be controlled in a much more straight forward way.

Another approach to assumption 2 would be to turn the quest into an optimisation problem. Consider an example where the whole quest item consumes multiple valuable inventory slots, but parts of the quest item can be carried in single slots. The choice is then: do I give up equipment already in these slots (which presumably gives me greater capability to reach the quest destination), or do I make multiple trips, and so take longer to complete the quest? In these types of optimisation problems, there is no failure state, only a clearly delineated series of trade offs that the player must make. Assumptions 13 and 14 similarly encourage the player to think in terms of optimal route selection.

Take care when designing these problems that the process of solving it is interesting for the player. Inventory optimisation is already an interesting decision in Angband, so the inventory slot example is appropriate for that game, but in a game where the player never reaches their inventory capacity, this mechanic would be a waste of effort .

Let's turn the notion of Fed-Ex quest on it's head for a moment. If we start by violating assumption 14, and then progressively replace unique quest items with commodities through out the other assumptions, one natural conclusion is that the counterpart to the Fed-Ex quest is a trading game, such as Elite. In this genre, fungible, easily replaced items can be purchased and sold in multiple locations, and the player focuses on the strategy of buying low and selling high. It is possible to simulate this trading game using multiple Fed Ex quests to send the player along the optimal path, but this makes the assumption there is an easily discoverable path - which may not be the case in a game which simulates market conditions by varying prices over time. You may argue that the code complexity for an interesting trading game is high, but it is no more complex than some of the challenges I highlighted in simply allowing the player to drop quest objects. The fact that Fed Ex quests are more prevalent than trading games is because most games featuring Fed Ex quests don't allow you the luxury of dropping quest items.

If no tangible item is involved in a Fed Ex quest - e.g. no item that has any impact on game play other than a UI representation, we ensure that the quest meets assumptions 1 to 5 by default, and greatly simplify the implementation of the quest code. These simpler quests usually have the option not to deliver the quest item, so that the item has nominal meaning: this is usually a narrative fig leaf covering the fact that the player is simply going to a particular destination for the quest, where not delivering the item is the equivalent of 'I don't want to advance the story yet'. In any event, whether a player is given the choice or delivering the item or not, the result of this simpler Fed Ex quest is the Go To quest, where the player is told to go to a location, and does so. Assumptions 6 -15 then fall into two categories: violating assumptions 6 - 14 are ways of keeping the journey phase of the Go To quest interesting, violating assumption 15 is a way of keeping the consequences of the Go To quest interesting. The Go To quest can be seen as the atomic counter-part to the Do Something quest I discussed above. All quests consist of these two actions (Go To and Do Something).

Keeping the journey interesting is a function of ensuring the moment to moment game play is interesting - important in a game even without quests - while keeping the consequences of completing a quest interesting is traditionally seen as a much a function of narrative as it is of game play. It is consequences I want to talk about in the next part of this series, of success, of choice and of failure.


The Mad Tinkerer said...

There's an alternative to messing around making sure that quests can't be failed: making quests more dynamic.

Here's some solutions to the bounty quest problems:

i: Not a problem if the rats spawn regularly or if the quest giver omnisciently checks the number of total rats first and makes n < total rats when the quest is given. Or just spawn some extra rats to make sure.

ii: give the player a bow or a gun. Also, see below.

iii: either avoid messing with special vulnerabilities/strengths, or do the Chrono Trigger thing where it's a small number of potential vulnerabilities/strengths and the player has access to all of them.

iv: dude, have you never had to deal with vermin? No matter how many you kill, there are ALWAYS more rats!

v: Or don't. I thought this part of bounty quests was a little silly. Either send the player after one unique monster or send them after generic monsters. Don't send them after the rare tribe of exactly seven green-striped-tailed-rats, especially when there might well be more dangerous and worrisome foes between the rare tribe and the quest giver. Sending the player after a particular gang of bandits (or rival gang if you're playing GTA or Saints Row) makes sense, but not the tribe of exactly seven specific rats.

vii: Or don't. See below.

Fed Ex Quests:

1: Or the item is in the hands of a unique boss you need to kill first.

3: Or they can. See below.

4-15: See below.


Make the quests failable/multiple success conditions. I don't know why more people don't do this.

Early on in KOTOR you're given a quest to retrieve a rare sample of a serum for a doctor so he can make the serum more available to everyone. You also get a quest to sell the serum to a crime lord so he can sell it to only those who can afford it. Success in each quest is mutually exclusive(and gets you Light Side points or Dark Side points), but they're both listed in your log until one of them is complete.

Not every quest needs to have extra story branches and dialogue, but simply a way to say "Actually, I can't /don't want to complete that quest. Give me another." will fix pretty much all of the problems.

Another solution to many of the bounty problems is to have the special critters wait until the player is in the area before they generate. Final Fantasy games never have to worry about where a specific special monster is, and neither does Left4Dead (the former doesn't allow most monsters to be in specific places while the latter generates them dynamically).

Another solution to the Fed Ex problems is to let the player fail. If the player really wants to screw himself by tossing the Mystic Foo, so be it. In Ultima Underworld II most items could be gotten rid of by tossing them into water, but some floated. The floating items were all of the "important" items. The player could still screw themselves, but it wasn't easy to do it by accident.

The Mad Tinkerer said...

"let the player fail"

What I mean is: give the player the potential to fail, as long as you make sure it's not too easy to fail by accident.

If they're stuck and failure is an option, then at least they can do something rather than continue to be stuck. Like how action games always give you the "option" of dying and starting over from a previous point. Not having this option is why the point & click adventure genre turns so many people off and why it's a marginal genre today.

PsySal said...

In Venture the Void ( !SHILL! =) I had to code automatically generated quests.

For the Fed Ex quests, what I realized is that it was far more interesting to implement a reputation system and let the player steal/sell the goods. That's more like real life!

I didn't really have any bounty quests in the game. Actually probably all quests were Fed Ex related in some way.

For my current game (The Real Texas) I'm not doing autogenerated quests. For each quest, then, I'm trying to tell a story. I start by asking, "What's an interesting story to tell?" and go from there.

Andrew Doull said...

Tinkerer: We'll get to more dynamic quests somewhere in this series. I'm looking at the minimal case at this point and showing how complex even the 'simple' quests are.

Just a couple of quick points:

i. You need to test that the rats exist periodically, not just at the start of the quest.

ii. You need to test that the rats are always within the range of the bow and/or gun from a location that the player can reach.

iii. What if the starting quest to earn money is to kill rats, and the player does not have sufficient money to buy rat killing equipment? Or the time limit requires a minimum DPS to kill rats, which the player does not yet have? etc.

iv & v. s/rats/Ancient Dragons from Beyond the Void

I'll be covering how to handle failure in the next part.

Nicholas "Numeron" Ross said...

An easy way to deal with the fedEx quest losing the package problem is to simply allow the player to return to the quest giver, who says something like "You lost it? how irresponsible! You're lucky I have another one lying around here for just such an emergency.", the last package is destroyed if it still exists in the world and you are given a new one.

The Mad Tinkerer said...

In Torchlight, which I recently started playing since my last comment, you get a series of both bounty and fedex quests.

The bounties are all on unique monsters that seem to be generated when you enter the level they're on. I've yet to fail a bounty mission, since I'm playing on normal difficulty (probably should have bumped it up to hard to compensate for my Diablo II experience), but the impression I get is that the dude will probably give you the next mission and you simply miss out on the Fame.

(Fame seems to primarily affect the quality of goods in the shops, not unlike "levelling up" stores in the Disgaea series.)

The fedex quests are simple "retrieve a particular item from Dungeon X for me and you can keep all the loot you find". The item is always near the exit portal, so there's little chance of losing it.

I don't know what safeguards they've put in place to avoid unsolvable missions, but they're (so far) seem pretty easy. The main difference between the side-missions and the main dungeon seems to be the extra Fame gain. You can gain fame from killing uniques in the main dungeon, but they're more common in the optional ones.

Andrew Doull said...

Sophia - comment deleted as spam. Feel free to email me separately.

Nolithius said...

In Star Wars Galaxies (at least back in the day before the redesign), you'd receive quests to eliminate all of the enemies from a nearby outpost. This outpost and the enemies within were generated at this point.

What's worthy of noting is that anyone could kill these guys, and that player wouldd receive XP and loot, but you would still be able to collect the quest rewards.

Sometimes you'd reach the location and find the enemies engaged with another player, or sometimes another player would kill all of the enemies before you ever got there, and you'd get the "Quest Completed" message. Either way, it worked well.

Shoku said...

Mice living in houses do so mainly in undisturbed areas. If the house is a total mess maybe that's in the middle of the living room but for a cellar it's going to be maybe in the corners but probably under big immobile furniture stuffs and if possible in the walls. As such there's really no possible rat genocide adventurer style- you can only cull their numbers by attacking the young ones that are out playing or the ones out to get a bite to eat.

A design I would be more interested in would be the "I don't want to see any rats in the cellar" quest. You could clear it in however many ways you were able to manipulate rats and if the area is swamped with players not being able to find any rats would be a good thing. Designers would no doubt want to throttle back the quest reward when players didn't have to mechanically do the quest but there's another solution:
Have the damn things actually go in and out of the player space frequently like real burrowing vermin do.

This actually sets up the potential for the growth of interest mechanisms as you could have bigger rats crawl out (though in reality those things avoid the smell of death so you'd just scare them into their nests.)
More importantly though is that without the ability to so easily keep track of them you could play visual tricks like stopping showing the weaker and more numerous mice as the player went along.

In an MMO different perceptions of players will obviously get recognized but it wouldn't be too difficult to get the small and invisible-to-the-player rats to run from them, thus maintaining order in the view of other players. And if you throttled the numbers down each time it would get to the point where high level characters trying to abuse the system would have a hard time finding enough rats to get the chase effect up, presuming it was even possible to herd the early ones without being able to see them.

Still, only a slight improvement and not applicable to larger enemies. AoE attacks could be an issue as well.

Worse yet are when players are actually in a group for the quest but that could be resolved by having a well explained game mechanic where you shift the completion so both characters are at the same level. If shifting them back to repeat earlier activity was too revolting you could shift the lower character forward instead, and if you were really OCD about everyone killing the same number of things you could split the one counter into several so they'd have to bid their partner adieu and do the intermediate steps until they reached the point they had been dialed up to.

Come to think of it a lot of my MMO ideas would make more sense if you had some kind of time-god tweaking the world for you. It could have conversations every once in awhile to make it seem like you were the only one zipping about and it would later justify the whole "10 to 40 of us just went and killed hundreds or thousands of enemy troops" raiding situation along with a whole lot of throttled experiences designers seem to want to place in these games.