Monday, February 15, 2010

The Scope of Game Design (Refining the Problem)

Well, first off, I know you guys were all expecting a post on how awesome Knarf is - but to express that would take me too long to possibly contain in just a single blog. I would have to make volumes of blogs to cover her awesomeness.
(For those who don't know Knarf, she's an artist at the AIE :D)

Clarification
This blog post is what was originally going to be named 'Conservative Game Balance' - but I realised that I don't believe in conservative balance at all.
I believe in making the right changes.
This implies, of course, not making stupidly over the top alterations to systems that only need basic alterations. That is the meaning of conservative right there, but conservative also implies a resistance to change - and that goes against everything I believe in.
If there is a problem, I won't water down the solution to be "more conservative".

Introduction to Scope
So the title has been changed. I want to talk about Scope today.
Scope in game balance are the different environments and features of game play, and units in a game. They are areas related to their effects on gameplay, in order of importance. This makes it essential for refining balance problems - so you can fix them in the most effective way possible.

A High Scope Context relates to a feature that, if changed, will affect a large amount of gameplay - for example, if 90% of characters in a game use swords, and you change the strengths of swords, you are dealing with High Scope as it affects a lot of the gameplay.
A Low Scope Context relates to a feature that will affect a small part of the game, for example, changing a character's stats will only directly affect that character.

I borrow the term from the scope of a variable in programming - as they are very similar. The scope of a variable in program determines how much of the program can access it, while the scope of a balance issue or change relates to how much of the game will be directly affected. Just as you want to use the lowest scope possible when dealing with variables, you want to deal with the lowest scope possible for a game change.

The easiest way to figure out the scope hierarchy is to see how units are categorised in the game. If units are defined by their weapon (e.g. Rapier, Pirate and Warrior are all 'Swordsmen'), then the weapon is likely of a higher scope than the class's traits. If you change the weapon, it greatly effects all of them.
On the other hand, if if all weapons are character specific (that is, changing a weapon doesn't affect any other classes), the weapon is of a lower scope than the character.

Why Determine Scope?
The Scope of a balance problem is essentially its location in the system, and how much of the game the problem affects. A problem of a single's characters stats being too low is low scope, while a major weapon type being too powerful is high scope.
Effectively finding the scope of a problem involves narrowing down the overall problem to its absolute core. You want to find the lowest Scope of the problem, and fix it there.

e.g.
"X is overpowered" --> "X's weapon is overpowered." --> "X's weapon's fire rate is too high".

The weapon's statistics are considered the scope of the problem (not the character), and so that's where you apply the solution (reducing the fire rate).
The basic idea of finding Scope, and refining the problem is to prevent issues where someone says "X is overpowered", and you nerf the wrong features, affecting large amounts of content in the game.
When balancing, you want to change as little as possible.

To get the perfect solution, you need to seek the core of the problem.

Real Project Application
This post came from my work on Pokemon Universe - in which we are trying to balance Pokemon to be viable in higher levels of play.
To balance each Pokemon, there are a huge number of variables we could change:
  • The traits of the Pokemon's types.
  • The Pokemon's types.
  • The Pokemon's stat spread shape.
  • The Pokemon's individual stats (HP, Defense, Attack, Special Attack, Special Defence, Speed)
  • The Pokemon's ability.
  • The Pokemon's move pool.
  • The Pokemon's optimal move sets.
And there are an amazing amount of changes that can be applied to each variable - and so, we need to decide on what needs to be fixed.
We must also determine the scope of each variable, as we want to change as little as possible.

The highest scope variable in this situation are the traits of a Pokemon's types.
if you were to change the Water type to have fewer resistances, you would affect all Pokemon of the water type.
After that you have the Pokemon itself, as an individual entity. As we are trying to fix individual Pokemon, this is the ideal scope to work in, but there are lower scopes for a Pokemon's individual problems. We need to delve deeper.

Now, Internal Scopes (those that will only affect the particular unit) are prioritised according to how much they will affect that unit - in terms of identity.
It is strongly believed that when you create individual units in a game, they should be more than just rehashes and clones of other units. They should have their own strategies and moves - so players feel like they are experiencing a new character, and so this character may fill a niche in the player's playing style.
For the most part in game balancing, you want to preserve identity. If you were to aim to change the identity of a unit, the change would be called a remake.

The greatest variables that determine a Pokemon's identity are its type combination (evaluates the Pokemon's type matchups, and the over all themes of the Pokemon), its over all stat spread (define the unique traits of the class and its role), and its optimal move sets (which determine what the Pokemon can do, and its role).

I would consider all of these equal in priority - and you generally want to preserve them all as much as possible.
That said, if you go through the lower scope variables, and you find that the problem is not in the Pokemon's stats or move pool - you do need to look at (and possibly change) its higher scope traits.

An example of such a problem is in Pokemon is where certain 'Walls' (for RPG players, tanks) hav exceptionally bad type match-ups, such as being weak to water and ground, being some of the most used and effective types in the game (hey there Rock Pokemon). A pokemon with this type combination has no viability as a Wall as it will fall very easily to any well rounded team.
For some types, stats can make up for these problems - but for others (such as the above example), the type combination must be changed (or the Pokemon needs to be reallocated to another role).

Identity vs. Viability?
The example above is a situation in which you have a choice to make a Pokemon useful, or keep its identity completely intact.
Personally, I prefer to increase the standard of gameplay - I will cover this argument in full when I do my Gameplay vs. Canon article later.

There will be times in which you need to make a big change to fix a big problem, and so you need to ensure you find the best scope to fix the issue. Don't immediately dismiss a fix because it alters the higher scopes, unless you already know those scopes are best left unchanged as they affect too much of the game (such as the relationship of types in Pokemon.)
That said however, sometimes big problems have big solutions, it's your job to have a balancing strategy that catches these issues earlier rather than later.

Thanks, I hope I explained the concept of Scope well enough.
Zanda.

No comments:

Post a Comment