Friday, June 10, 2011

A deep look into RPG mechanics and how they build long-lasting gameplay. A brief segway on character stats.

I need to spend this blog post on a brief segway into character stats. While character stats in themselves do not directly contribute to game lastability, the discussion of how games handle stats is an important prerequisite to discussing topics such as talents, loot, enchantments, gemming and abilities. Since that's really what I wanted to move onto next, I feel that it's important to cover the topic of stats as soon as possible to create a basis on which the next few articles can follow.

I have to admit that I've seen all too many RPG games handle character stats in the wrong way. Game designers often add stats that are near useless or stats that do too much. Often, games have one or two stats that you just pump as high as they can go. Also, a lot of designers don't model what happens when certain stats get to ridiculously high levels. Some games implement way too many stats, some of which overlap. Others implement too few. In most of these cases, it feels like the design and modelling of character stats was a mere afterthought.

And stats should be anything but an afterthought. With the correct amount of stats and the correct balancing, players will be given a lot of choice about how to gear, assign stat points and assign talents. There should be multiple paths available while combining these things, all of which open very different play styles within the same class.

Players will always try to min-max. If you add a variety of stats that can boost a character's damage, survivability or healing output, players will inevitably do the mathemetics for you and find the best way to gear and spec. The designer therefore needs to attempt to accurately model how stats interact with abilities, builds and rotations in order to minimize imbalance.  This is not always an easy task.

Another problem that I have seen related to stats is with gear itself. Once you have modelled how players will play and determined what the min-maxers would do, a designer should really attempt to create gear that benefits these playstyles.  At this point, as a designer, you can look at how many different types of items the game will need and will be immediately able to determine whether loot tables are going to be too diverse. You can also eliminate gear items with undesirable stat combinations from being created by the game. You can additionally tailor quest rewards accordingly.

The bottom line is that stats should be designed in parallel with class abilities, talents and gear. While doing this design work, remember to extrapolate to the highest point you expect a character to reach should they maximize a given stat, and ensure that it does not trivialize gameplay or be deemed worthless compared to another stat.

In this post, I'm going to illustrate some design problems I've seen, and conclude with some ideas of my own on this subject.

Lets start the examples with World of Warcraft. The designers of this game have been constantly tweaking, adding and removing stats, so this discussion requires a brief walk back in history.

At the very beginning of World of Warcraft, there were essentially just the five basic stats on gear in addition to armor and weapon stats. Of these, the king of stats was agility, which granted armor, dodge, crit and attack power. Naturally, only melee classes benefitted from this stat, rogues being the class that benefitted most. Stamina increased hitpoints, intellect increased available mana (and to a small extent, spell crit), spirit affected mana regeneration (in the beta, however, it affected hit point regen as well) and strength affected attack power. As gear was added, all kinds of stats started to show up, such as raw attack power and percent increases to crit and dodge. Also added were weapon skill increases, resistances to certain types of magic damage and defense, which affected chance to block, parry and dodge as well as reducing the chance to receive crushing blows and crits from enemies. When the developers realized that there wasn't a single stat that allowed caster damage or healing to scale, stats were added to boost certain magic schools and healing. After this came increases in chance to hit and then a stat called spell penetration that allowed spells to ignore a certain amount of the corresponding resistance.

This was all in vanilla. As you can tell, the designers attempted to fix gameplay issues by throwing more and more stats at those issues. They also added mechanisms to raids creating the need for all players to stack certain magic resistances as an artificial gear-based barrier to progression.  This need for players to stack resistances caused the need to equip special gear instead of the shiny new epics they had been raiding for in the first place.  This situation was further worsened at the advent of the original Naxxaramas with buff and potion stacking becoming mandatory to survive encoutners.

Gear in vanilla was exceptionally poorly itemized, especially at the lower levels. It was not uncommon to hold onto a specific item for 30 levels due to nothing better being available. Crafted items were always way behind the level you would need to be to acquire the materials to craft them. Quest rewards were mostly stacked with stamina and spirit (a holdover from when spirit caused health regen). Forty player raids were the only place to pick up well itemized or "fixed" gear and even then, due to odd mechanics, some classes wore lower level gear just because of certain stats. Some of these issues can still be found today in lower-level play, although it took Blizzard the good part of six years to fix them.

When The Burning Crusade (TBC) was released, the designers took their first crack at fixing the stat issues. They realized that gear with flat percent increases would not scale well, so they changed some stats into "ratings". The rating system still exists today. As you gain levels, you need a respectively larger amount of a certain rating to obtain the same benefit. For example, at level 60, 20 crit rating might have given 1% crit, but at level 70, you would need 40 crit rating for the same 1% crit. This rating system scales the same way as some of the base stats. At level 60, you might need 20 agility for 1% crit, but at level 70, 50 agility is required. This system has the downside that, as you level, you become weaker unless you upgrade your gear - the upside being that it forces players to always search for new items and evaluate them. Rating systems can be a little complicated for some players, though.

TBC fixed some issues, but left others untouched. Healing power was still a separate stat to Spell Damage, meaning that healer classes needed to pick up different gear for soloing. Tanks still had their own itemization. Also, more stats were thrown at the game, including haste, armor penetration, expertise, spell haste, block rating, block value, parry rating, and probably more that I don't remember.

Min-maxers soon figured out the best stats for each class and role, rendering other stats quite useless. Also there were problems with loot tables, since almost every class and spec had their own armor type and stat requirements. At least during TBC, drops and quest rewards were better itemized. The problem, however, was that with the massive amount of different gear combinations needed for different classes, people noticed that a majority of quest rewards were "Moonkin Leather" or "Holy Paladin Plate".

Enter Wrath of the Lich King (WOTLK). Finally, some stats were merged - Healing and Spell Damage became Spell Power. Spell Crit Rating and Crit Rating became just "Crit Rating". The same for Haste. Blizzard had identified the problem that there were 30 different types of armor that needed to be on boss loot tables and quest rewards and started to consolidate them. However, they left the dearth of other stats around - we still had attack power, armor penetration, expertise, dodge, parry, block, etc.

This consolidation continued into Cataclysm and a new concept - Mastery - was added. Mastery is a spec that specifically boosts certain attributes of whatever spec you happen to be in. With this change, the game was altered to force players into choosing and sinking a majority of their talent points into a chosen spec. What made Mastery seemingly interesting was that the bonuses granted could be made more interesting than a simple base stat like strength or stamina or a simple percent increase to damage, healing or mitigation.

The story of stats in World of Warcraft is an interesting case study. It illustrates clearly the need to examine how stats work at the very early stages of your design phase. It also illustrates how fruitless throwing quick fix upon quick fix at something fundamentally broken ends up being.

Lets look at some other more subtle problems that have existed in the WoW stat system.

Stat caps have existed in the game since the introduction of things like expertise and hit rating. These are stats that are invaluable until you hit a certain number. After that magic number, any additional points of that stat are useless.  This problem is further compounded as you move between 5-man dungeons and raids.  The level of mobs in raids is one level higher than in 5-man instances. Hence, the amount of hit rating needed to not miss the one-level-higher mob is more.

Defense has a similar but slightly different problem. Below a certain amount of defense, the tank will be crushed or critted by a boss. This means that a tank must acquire a minimum amount of defense to even step into a dungeon or raid.  Additional defense above this point is still useful, however. Defense was removed from WoW when Cataclysm was released, since the designers finally pinpointed the problem. However, stats like hit and expertise still exist.

Another problem relates to the balance between two stats that have the same ultimate effect. This problem could be seen between dodge and parry (mostly from TBC onwards). These stats both have the same effect of allowing you to completely avoid a hit. However, dodge rating has always been slightly better point-for-point than parry rating and hence nobody bothered getting parry rating. This has since been fixed.

Another story related to tanking has been the ever changing value of avoidance compared to effective health. At some points in the game, stacking avoidance stats such as dodge were better than stacking armor and stamina. At other points, the opposite was better. The designers again threw quick-fixes at this problem - Sunwell Radiance being the first example, which was a debuff to lower everyone's dodge by 20%. A second kludge fix that exists today is a heavy diminishing returns above a certain point on dodge and parry.

I've probably just scratched the surface of the stat story in WoW, which seems to be ever changing. There are many things I've not even covered such as the resilience stat for PvP, the changing of how intellect and spirit work when Cataclysm was released and the removal of armor penetration and attack power.  This long story illustrates clearly that, even with a huge amount of resources available and a lot of thinking power, stats are simply hard to do correctly.  Looking over the history of just this one game, one can learn a lot about the evolution of such systems and can find many clear examples of what works and what doesn't. I'm completely sure that there will be further changes to the way stats work in WoW as time goes on.

I'm going to move on now to another game - Inotia 2. I played this game for several months and during that time, I decided to try to quantify all the game's stats. The thing about Inotia 2 that differs from WoW is that you don't have a combat log to parse. Inotia 2 has a plethora of stats on gear, but figuring out what they do, how they affect combat and which one is better is really a lot of trial and error. We eventually gave up trying.

Similar to games like Diablo, Inotia 2 has stats that affect the drop chance of magic items. It also has a stat called "LUCK" that affects numerous other stats. The base stats appeared to be budgeted very highly on gear compared to other stats, but almost every stat you could possibly think of appeared on gear, and none were explained in the game. In Inotia, armor value played a strong role too.

I've played a handful of games that include stats that affect the chance of finding magic items, and I've always tended to put together a set of armor that maximizes this, in an attempt to find better gear (and not really worn much else). Gear in Inotia 2 is randomly generated, with a certain set of rules about which stats can appear on which slots, but in general you could find almost any stat on almost any item.  This allowed for a lot of experimentation, since you could put together a set for mitigation or avoidance, a set for damage, a set for item collection, and so on. Couple this with the fact that you have a party of three characters and that's a lot of grinding!

The immediate problem I can identify with Inotia 2 is the difference in budgets.  Stats that provide the same benefit should be budgeted the same. This is something that WoW does well (enough), but it comes from their six years of iterative changes. Inotia 2 also seems to have the problem that certain stats do the same thing (or seem to - the lack of documentation really doesn't help).  Also, although damage done is shown on screen, healing isn't, making it difficult to tell which stats affect healing. Finally, the best way to get gear in Inotia 2 was from the travelling vendor who appeared at random locations.  This led players to run in and out of a small room with a large number of visible spawn locations in order to get the vendor to spawn, and then pick him over for the chance at something useful and itemized correctly. Inotia 2 fell into the same trap as early WoW in that many of the stat combinations on items made no sense, since they are generated randomly. Random stats on gear should still be made according to certain pre-defined templates.

Let's have a short recap of what we've learned just from these two games:
- design your player stats, abilities, talents and gear in parallel
- figure out how the most obvious spec, gear and rotation combos and model them
- make sure you don't have too many different types of gear
- make sure quest rewards, drops, set items and crafted items conform to certain useful stat templates
- don't create capped stats or stats that you must have x amount of
- extrapolate gear levels higher than is possible for each stat and make sure nothing is broken
- don't create stats that do the same thing, and especially not with different item budgets
- make sure stats are budgeted correctly against each other and on gear
- clearly explain what each stat is meant to do
- don't create one be-all-end-all stat
- try and anticipate scaling with respect to all classes and abilities

That's a lot to think about, and if you can get it right the first time, you're better than probably 99% of RPG designers out there!

I promised to share some ideas I've had on stats. I've been working on some ideas for an RPG in which I do the opposite to what most designers do. I started by throwing out all the legacy stats that have been around since the pen and paper era. I decided to instead map out all of the things I might need a stat for, mix them up a bit and create a new set of stats. No longer do I have stats that benefit only a melee class or only a tank or only a caster. Instead, I decided to make all stats good for all classes. Then I designed the classes and specs in such a way that each class prefers three of the five stats slightly more than the last two, but that the distribution the player will ultimately choose will depend more on play style than on the constraints of abilities or talents.

For instance, a player has to make a choice on whether to boost a stat that improves crit chance, a stat that lowers cooldowns, a stat that improves the radius of AOE effects or a stat that increases the damage they deal. However, each stat I've been designing affects upwards of three variables.

The same stat that improves AOE radius, for instance, also improves mana regen, healing received by this character, maximum range of magic abilities and increases any passive healing effects that this character generates. As you can see, this stat is good not only for a caster (AOE radius and spell range), but for a healer (mana regen and +passive healing), a tank (healing taken) and any class that generates passive healing effects from their abilities (and most of my class/spec combinations do that to a certain extent).

In my design, I've omitted a stat for increasing hit points completely. The reason for this is that every class has some optional talents to increase their health pools and health pools will otherwise be calculated based on a combination of character level and gear level.

Here's an example for context:

Vixen's Craftiness (Tier 1, Assault Tree)
Increases your Cunning by 1% and you gain 1 HP for every 1 point of  Cunning. Your Sabotage critical hits heal you for 5% of the damage done.
(5 points)

Recoil (Tier 2, Assault Tree)
Increases your HP by 5%, the number of targets hit by your Spiked Arrows ability by 1 and the damage done by your Grapple ability by 2%.
(3 points)

While designing this system, I made sure to create talents that affect multiple playstyles at the same time. Instead of the traditional method of assigning a talent tree or path for each different role, my system spreads these roles out over each tree. This means that within each class there exist several completely distinct playstyles that overlap with different roles. For instance, a class may have two tanking playstyles that play very differently, and in addition two DPS playstyles that also differ fundamentally. Each playstyle favours a slightly different stat point distibution and within each playstyle, there is no min-max equation - you will stack stats in a way that optimizes the feel you enjoy the most, whether it's based on lowering cooldowns, more self-healing, more damage mitigation, more AOE, etc.

The intent of this game is to have a party of three members from a possible 6 different classes. The classes are all designed to have different synergies (depending on spec and abilities) with different types of playstyle, so there's a huge variety of potential combinations to experiment with. Each class has multiple auras, group-wide temporary buffs, offensive debuffs and group utility spells.

I mentioned at the beginning of this post that it would be brief, but I seem to have ended up digging deep into an issue that is close to my heart. I stated at the beginning of this post that stats themselves don't directly add lastability to an RPG, but I'm going to take that statement back. Given different classes, abilities, talents and gear, along with the possiblity for manual stat point distribution each time a level is gained, stats provide a huge base for experimentation, research and engagement on the part of a player. If the system is well designed enough, players will want to try gearing their characters in multiple different ways and try every possibility to find an interesting and fun playstyle for themselves. Although stats are just a building block for this, it's a well built foundation that really grants the designer (and player) more creativity.

No comments:

Post a Comment