Sunday, March 27, 2011

What Health Care and Skill Systems have in Common

Assume you are a doctor. Assume you live in capitalism and are rewarded for healing people. If they need healing they come to you on their own, so to make a lot of money all you need to do is make certain that they need healing. …

Now imagine you want to play a healer in a skill-based game. You are rewarded for healing people by skill gains. So to raise your skill, the only thing you need to do is make certain that they need healing. ...
For example by asking them to jump from rooftops or by not properly defending against a monster.

And just like in real life, this problem is a really difficult nut to crack. In one way you want to make certain that people gain skill by using their skill-related abilities. On the other hand, this creates an incentive.

The first problem
In general, all skill-based progression mechanics have this problem. There always is
  • the way the system reacts to the player and
  • the way the player reacts to the system.
And they clash all the time!

If you have a very immersive and common sense way that the system responds to the player, it will often encourage the player to behave in a way that is not immersive or common sense at all; like taking extra damage so that he can train his healing skill. Or searching for mobs that are especially hard to kill, so that he doesn't have to walk so much while training his sword skill. There's no end to examples and most of them are not only an immersion problem, but a real gameplay problem. They encourage players to do unfun and boring things.

The second problem
For a system, a good way to respond to player actions requires three steps
  1. the system needs to know what the player is doing
  2. the system needs to know how well the player performs
  3. the system needs to reward the player accordingly
(1) is manageable; (3) is easy. But (2) is extremely difficult.

You can see the problems outside of skill systems, too. Warhammer Online and Rift have 'public quests'. That means that players meet and fight together against an enemy without any communication being necessary. Afterwards, players are rewarded for their participation. But how?
Did the healer, who seemed afk 50% of the time, save mana to heal the group when necessary; or was he semi-afk? Or was healing not necessary, because other players performed really well? Is it reasonable to penalize the healer, because other players performed well?

Or look at WoW battlegrounds. Players participate in battlegrounds and are rewarded for what the group achieves. Makes sense as long as players actively participate. But once players realize that their influence is small, they start thinking about leeching. That is, they play semi-afk or even completely afk. In instanced content this is especially bad, because not only do the players behave in a way that is probably not even fun for themselves, let alone non-immersive. They also disrupt the fun experience of other players and possibly motivate them to do the same.

And in a skill-based system, how does the system know by how much which skill of the healer to increase? How does the system differentiate between really hard content that required a lot of healing and players that played deliberately bad to allow for a lot of healing?

What kind of solutions are there?

1) You can simply ignore the problem. Yeah – doesn't sound like much of a solution, but you would be surprised how many designers do this! They argue that players are stupid if they game the system, reduce their own fun and therefore shouldn't do it.
I don't consider this a valid argument, because it works with no game. With casual games it doesn't work, because players don't put as much thought into the game. And with hardcore games, like Darkfall, it doesn't work, because these games usually attract the most dedicated min/maxers. It may work with tabletop games; but even there it is a problem.

2) You can employ sophisticated methods to rate how well the player performs at doing what and reward him accordingly without offering ways to be gamed. That is the brute-force approach. And, I fear, it is going to fail with today's computer AI.

3a) You can make players actively help the system, by supplying it with information.
This is what Blizzard did with battlegrounds. Players can flag other players afk. Next, the flagged player needs to perform some actions you would assume only a human can. It is immersion-breaking for sure, but it's not like there were many alternatives.
Applying this to a skill-based system, other players could give you points for how well you performed at what.

3b) You can make the players passively help the system, by supplying it with information.
For example, the system can reward a trader with trade-related skills depending on how challenging a trade route is. To estimate the challenge level it can use statistics, like the ratio of player deaths between location A and B during the last two weeks and the value of the traded goods according to the regional average price.

4) You can make players have a stake in that other players play reasonably and give them a way to penalize them when they don't.
An example would be peer-pressure. For example, by forcing players to first form a group and then join an instanced battleground together, Blizzard tries to use other players to keep you from going afk or fighting half-heartedly.

5) The basic idea is to reward players only for activities that the designer knows cannot be gamed – like successfully fighting an NPC mob or completing a quest. Or being subscribed (Eve Online).
The information as to what skills should be gained can be attained in different ways.

5a) You can assign players roles. For example by using a class system or by using the gear selection, see recent posts. If a player does anything the system considers meaningful, he gets better at the role. This means that e.g. a healer can become better at healing just by participating in a fight, during which he did not heal at all. But, since players have no incentive at all to assume roles that are not needed in a fight, the hope is that this doesn't happen often.
This can often feel a bit boring, as the player has no influence as to how his character improves, except for selecting his role. To make it more fun, these systems often allow the player some latitude in deciding how exactly he wants to get better at his role. This would be the classic experience-based solution.

This is an interesting approach as it solves the problem by turning it upside-down. It allows a potentially unimmersive system reaction to a player action, but provides an incentive to behave in an immersive way. The hope is that by focusing on the incentives, players won't gain benefits by doing something unimmersive, because they have no reason to do so, in the first place. Thus, the system can have a good guess as to what the player does and reward him.
It is similar to how I manage comments on this blog. Off-topic or insulting comments are deleted completely, without any trace of them being left. The hope is that by reacting in such an excessive and inappropriate way the problem doesn't occur often, in the first place.

5b) You can give out specific skill gains for tasks that are well known to the game designer and certain to not be gamed. An example would be giving skill increases only for completing specific quests.
Another example is any WoW-like crafting, as the system knows exactly what you do and how well you perform.

5c) You can allow players to choose rewards themselves.
Eve Online does it this way in combination with progress by simply being subscribed. I can't say I am especially fond of this. But, well, it solves the problem, deals with some other issues, and within the right background story it can even be immersive. But it is bad gameplay, in my opinion.
Also, it can be gamed by buying a second account you don't actively play. You use this one only to create your dream-character while playing another account, or not at all. For the developer this kind of 'exploit' has some advantages, obviously.

6) For specific skills you can design around the problem. For example, healing during a fight could be made impossible and irrelevant by declaring that anybody dies within a few hits that he doesn't deflect/block/evade. Whether he is able to do this is indicated by a green bar that needs to be kept at 100% as much as possible during the combat-minigame. After combat everybody could heal by using a skill that is not subject to character progression.


  1. Another great post - you are one the roll

    The problem rating player activity is the tough one . IMho combination of 2) 3a) 3b) 5)

    First rating: For parts of game which are competitive there has to be rating. Because player form a bell curve in terms of skill and you wont have good experience if you play with people more than 1stdv from you (you get "roflstomped" or you play with/against "retarded scrubs")

    This a long known and long solved problem -ELO like ratings work when applied properly in context (check out SC, WoW Arena etc). Tweaking the rating to fit your game is important part but not unsolvable

    3a) Is underused I believe. Games should have more tools for social networking. If LFD tool allowed you to mark players you liked and draw from a pool of similiar players it would be tons better for example

    4) does not work and is hated by players
    In short ratings (for objective measurements + social networks (based on player feedback) = win

  2. I think I have another solution.

    (I think all of your suggestions are in the right direction and would be great to implement. I think a deep class system is the best route)

    Suggestion: Make actions have risk/debt. (there needs to be reason to *not* do things as well)

    For example: It isn't a big deal to heal if you only lose a bit of mana which comes right back. Given there are roles, how about heals that take away health from the healer? In this case the healer gains skill by healing but they never *want* to do a lot of unnecessary healing because then they risk death. This dynamic makes people more responsible for playing well (the tank and dps included).

  3. Good post. The basic principle is that you want players to advance skills by doing fun things, so I like approach 5 the best. For example, for combat skills you can award skill points for killing monsters and completing quests.

    As far as the allocation of skill points, I think you could take several approaches:
    (1) Award unassigned skill points and let the player spend them on whatever skills he chooses. You'd probably want to restrict the points by category, i.e. points earned by killing a monster can only be used to advance combat skills and not, e.g., crafting skills;
    (2) Award points based on the skills the player actually uses in the fight, although this might encourage aberrant behavior like healing even when people don't really need it;
    (3) Award points based on the character's current spec, so a player specced as a healer would get healing points regardless of whether he actually used healing skills. This might be what you're getting at with approach 5a.

    Another issue is how to deal with non-combat skills like stealth, riding, swimming, crafting, etc. If crafting skills are raised by use, then players may end up making hundreds of useless items. If swimming skill is increased by use, then players may turn autorun and go afk. In those cases it's harder to know when players are doing something productive with their skills and when they're just grinding.

  4. A skill system in which the use of skills gives the player general exp to level with. A "basic" skill that you get at a low level would give less exp than a more advanced skill, so the player would be encouraged to move on and learn more complex/difficult/advanced/specialized abilities(like in real life: a seasoned piano player does not gain much experience playing the songs that they used to practice with when they started).

    That might be an effective way to free things. Players would use any skill they can, with a preference to mastering new/more advanced skills.

  5. Nils, did you ever play Dungeon Crawl?

    If you hadn't and you are not one of those who cannot stand ASCII 'art', then I think you should as it contains at least some mechanics that I don't believe I've seen elsewhere (or they aren't widely used at any rate).

    For the issue at hand -- DC does it by giving XP for killing mobs (something which you are supposed to do and which you are supposed to game as much as possible) and then that XP ('free XP') sinks into skills which you are actually using. It is not ideal, but so far the best implementation of skill system I've ever seen.