Friday, February 5, 2010

Balancing Pokémon

Now it's time for the second post of the night. In the morning. Sorry - I started this post but couldn't finish it due to the length. This one, like the other, is pretty tough.
I have undertaken a project in which I want to balance the Pokémon metagame as well as I can.

Note that I haven't even really started on this problem yet - I'm currently developing a tool that will greatly aid me in what I'm trying to do - but, without further crapping on...

Analyze the problem. (remember the brilliant 2 step problem solving method)
Pokemon faces 80% content redundancy.
No joke. Don't ask me how Nintendo let it get that way - but anyway, that is ridiculous. Most companies would freak over just 10% redundancy - but okay.

Now, remember to refine the problem - we can't magically make a solution that fixes "80% redundancy" without more information.

Refining The Problem
There are a multitude of balance problems in Pokemon:
  • A vast majority of Pokemon do not have the stat totals to be competitive.
  • Most Pokemon don't have a favourable stat spread that allows them to be competitive.
  • A lot of Pokemon don't have the movepool to have viable movesets in competitive play.
  • Some types are unfavourable in comparison to others.
As most of these issues are Pokemon based, it is probably best to leave types out of it for the most part - unless particularly problematic moves are found (hello, Stealth Rock).

Now, there are 2 main categories of change I can make -
  1. Buff the weak Pokemon
  2. Nerf the strong Pokemon
#2 is a bad idea, because the strong Pokemon have a really dynamic and fun game going on right now, ripe with strategy and counter strategy. Nerfing them and removing the viability of these strategies used would be a hit to the game.
Similarly, there is no stable metagame below the standard metagame we have now. There is the UU tier metagame, but it has been unstable with Pokemon entering and leaving it since Gen IV was released.
Similarly, there are a large amount of Pokemon in the NU tier than must be buffed to even be useful in UU. Merely weakening the stronger Pokemon will not change the majority of their viability.

So, we should buff the weaker Pokemon.

Choose a Balancing Strategy
Due to the scale of the problem (rather than looking at one unit, we're looking at around 230!), it could be a smart idea to consider options such as algorithms that will immediately scale all Pokemon stats to a certain total, while maintaining their stat spread.
This does not take into account Pokemon with amazing movepools, who are already competitively viable with their stat sets, and other Pokemon like them who may become too powerful if their movepool is too compatible with a large stat gain.
So - this will often attempt to solve problems, that aren't apparent for some pokemon.

Similarly, it will be necessary to scan over all affected Pokemon, to try and look for potential imbalances with movepools, or, problems that have simply not been solved, like Pokemon with bad movepools and pokemon with poor stat spreads (having all of your stats piled into Defence and Special Defence, with no HP for example is an awful stat spread).
Either way you'll be scanning over all Pokemon, still trying to fix imbalances on the majority of them - and a lot of them must be implemented into a game engine to find (with such large changes, testing is even more needed).

Basically, while trying to save time with a blind algorithm, you're ignoring 3/4 problems, and fixing the 1st problem, even when it isn't a problem - causing you to need to iterate over every Pokemon anyway.

So if we're going to be going over all of the Pokemon anyway, we should analyse the problems with each Pokemon and treat them accordingly.

1. A vast majority of Pokemon do not have the base stat totals to be competitive.
This problem is fairly self-explanatory, and it can be rectified by scaling up base stats to less terrible levels.
Chances are, you'd buff the lower stats to a more acceptable level to start (approx 65), and then see if the Pokemon needs to have more specialised stats (taking them to perhaps 110 or so) - leaving the rest in the 70s-80s.
A general guide to go by:
  • Less than 50: Crippling. The Pokemon likely is useless because of this stat. Ridiculous other stats (255hp Blissey for example) are the only things that can make up for this.
  • 50: Bad. Your Pokemon has to make up for it with other stats.
  • 60-70: Passable, this is 'Okay', it will be a weakness of your Pokemon, but it won't cripple it.
  • 75-85: Positively average. Most good pokemon have the majority of their less used stats around this level.
  • 100: An important stat to the Pokemon. Well in the good range.
  • 120: Considered a great stat.
  • 130: The Pokemon is likely heavily based in this stat.
  • Greater than 130: The Pokemon probably heavily gives up other stats for this stat.
  • Greater than 160: The Pokemon is probably so one track stat wise, it suffers in the majority of other areas, if the Pokemon is weak, its stat spread likely needs to be looked at.
2. Most Pokemon don't have a favourable stat spread that allows them to be competitive.
Some Pokemon may have the right stat totals, but their stats may be spread out in a way that is very unfavourable. Some may be when the Pokemon has all of their stat points rather evenly distributed - 85 in every stat is great, the stat total is 510 - nothing to laugh at, but, the Pokemon can be considered plainly bad, relying on the features of their movesets to be useful.
A lot of these Pokemon would be better if they had some of their stats standing out more than others.

Another issue to do with averaging, is when a Pokemon has equal Attack and Special Attack, but only really has Physical (or Special) moves to work with. A lot of Pokemon are better of specialising in just one.

Another problem with stat spreads is... just really bad stat spreads. Let's take a look at the Pokemon Shuckle.

Hello Shuckle!

His stats of note are:
Defence: 230
Special Defence: 230

Wow! What a tan... wait... hold on...
HP: 20

What?!

This Pokemon suffers from possibly one of the most redundant, useless stat sets. So much defence, but no HP to back it up.
In fact, mathematically, if you were to change Shuckle's Defence to 165, his Special Defence to 165, and his HP to 60 (-70 stat points in total), he would have far better survival - despite the apparent stat nerf.
Let's not forget that Shuckle's Speed is 5, and his Attack/Special Attack are both 10 - and you're looking at an awful stat spread.

Your stats should properly reflect your role. A tank isn't a tank without good HP, and such.
To fix this, derived stats such as 'defence indexes' are useful, for finding more optimal arrangements of stats.

3. A lot of Pokemon don't have the movepool to have viable movesets in competitive play.
Some Pokemon have great stats - but moves that don't compliment them, or, bad moves in general.
A Pokemon should always have moves that support its role, and then a few that can be used to surprise the enemy, or create a slightly different play style. Simple.
If you're a tank, you should have moves that weaken the enemy team as they fumble to kill you, if you're a sweeper, you should have moves that allow you to hit the enemy hard. If you're a supporter, you should have moves that help your team.
If you are a tank, with low offenses (like Shuckle) and all you have are offensive moves, you are useless as you cannot perform your role.

The best way to balance movesets it to analyse other movesets of Pokemon with similar roles.
Let's say I got Shuckle's stats right, but, found he did not have a proper moveset to make him a viable tank. If I copied the features of a more effective tank's moveset into his, he would now be effective.

Solution: Single Target Analysis with Archetyping
I have picked my solution.
The best way to create balance in Pokemon, is to iterate through every single bad Pokemon, and analyse it heavily. I need to find its weaknesses, and fix them according to the balancing procedures outlined above (primarily stat analysis, and copying archetypal movesets).

While I plan to compare bad Pokemon to good Pokemon in order to find weaknesses in roles and movesets primarily - why stop there?

Archetyping is the practise of finding strong units, and latching onto them to base weaker units. You basically, make the weaker unit look statistically like the stronger 'Archetype', but also try and have it keep in tough with its own identity and nuances. The result, is, more often than not, a strong unit who performs their role properly, but still very much has their own identity.

If I make archetypes of each role (Physical/Special Sweeper, Physical/Special Wall, Staller, Support, etc.) - and compare these to the weaker Pokemon, and then again after the Pokemon has been buffed - we can get a good idea of the balance of the Pokemon.

Coupled with proper analysis, the Pokemon will be viable in no time.
Hopefully I can make a big difference to the Pokemon metagame, and increase the viability so that players can still fight with their favourite Pokes.

Wish me luck.

2 comments:

  1. Shuckle is still a good tank though. Mega Mewtwo X with Focus Punch gets a 2HKO instead of a OHKO for example.

    ReplyDelete
  2. We should nerf as well
    current ubers and maybe ous deserve nerfs
    I hope the game gets balanced enough that the tiers get removed

    ReplyDelete