Showing posts with label Pokémon Universe. Show all posts
Showing posts with label Pokémon Universe. Show all posts

Wednesday, October 27, 2010

If you've been wondering where I've been...


That explains it,
Been doing lots of work on Pokemon Universe!

I will make a real blog post soon!

Friday, August 20, 2010

Random Chance and Luck-Based Gaming

Introduction:
My friends and I were playing Super Smash Bros. Brawl which, ever since the 2nd week of me playing Melee, I have always played without items.
At parties though, items will go on on occasion - but, after a few matches, I want to turn them off - due to the fact that when items are on, there is no real point to playing because you have limited control over the way the game is being played, and you have limited ability to judge what might be coming your way.

Basically, the game is less about skill, more about luck.

In this point I'll like to highlight why sure, a little luck tosses it up - but when it comes down to it, skill is the main ingredient in fun.

A Little Luck is a Little Good
Don't get me wrong - a lot of outcomes in each match are due to at least a little luck - even if nobody gets a critical hit, or rolls a random class.
An enemy rounding a corner, a little weighted spray - or the fact that you thought that your enemy would make one move - then he didn't think of this move at all and went for another? There's a fair amount of luck.

That said, skill will still weigh in a lot on these issues - complimenting them. If you position yourself well and are aware of enemy locations, you will be able to effectively battle the enemy around the corner. With better aim, you have a better chance of your spray hitting the opponents. With good knowledge of the game, you can use moves that, regardless of what the enemy is thinking, have a good deal of success.

So, in every well balanced game, there'll be a bit of luck - but skill will still affect the outcome of a match over luck entirely.

So, why on earth would you want to add more?

Why Skill Reigns Supreme
Skill is important in games, especially in ones where you compete against other players.
Many players get satisfaction from exacting a task with proficiency, and showing off just how much they have learned about the game and how to play it - even against computer opponents.
It builds the player's self esteem, and gives them the feeling that they are having fun.

Many designers have analysed this feeling - one in particular being Raph Koster, the author of "A Theory of Fun for Game Design", who argues that the experience of fun is derived nearly entirely from the experience of learning, and trying to perfect facets of a game's gameplay.
I don't agree entirely - but I absolutely believe that learning and gaining skill is extremely rewarding to players, and as such is a main element of the experience of 'fun'.

Repeat the mantra, learning is rewarding, and rewards are fun.

You Did What?
Another aspect of luck is the negative side, where players feel cheated if they are beaten through luck-based occurrences, which is fair enough.
One second, you're beating some guy down with a well timed sequence of moves, and, the next, he gets a lucky critical and you're down. Despite the skill difference, or how well you executed the attack, the luck trumped your skill in determining the outcome of the encounter.

That's bad - it's as if you might as well have just played Paper, Scissors, Rock with the opponent. And everyone hates Paper, Scissors, Rock.

Something that I see a lot of designers do is have little occurrences that can determine the outcome of an encounter - and justify it with the fact that it's only a 1%, 2% or 5% chance - but all this does is have no effect on most encounters (so why even include it), but make the ones that it does affect completely based on chance and rage-inducing for the player on the receiving end.

Do not do this.
As explained - it's useless (it doesn't achieve anything) and bad game design at the same time.
No-one even notices if you don't include staples of random events (crits, etc.) in your game. The only time I've heard someone say "That's odd there aren't any critical hits", is immediately before "and I love it!".

If you want to include random chance in your game, do not use "Low Chance vs. High Payoff" chance.
To ensure that your game is balanced and fun, use "Moderate Chance vs. Moderate Payoff" or "High Chance vs. Low Payoff" chance.

Triggers
To define Moderate and High Chance, I need to define Triggers.
A Trigger is simply an event, that can cause a random event. It's the event that causes the proverbial die to be rolled. For example if every time you shoot a bullet from your weapon, it can critical hit for 3x damage, shooting your weapon is that event's trigger.

A trigger's Trigger Occurrence Rate is how many times this event will happen in an encounter (or in a given time period) - and will affect the random chance co-efficients you use.
For example, if you shoot 10 bullets per second, and they have a 10% chance to crit, that's effectively one crit per second.
If you want this one crit per second, and your weapon fires on the half-second, you would give it a 50% chance to occur. It's as simple as that.

For this reason, it's hard for me to define what I would consider Moderate and High Chances.
I simply do not know the Trigger Occurence Rate for the games that this post applies to, as each game has its own balance, pace, and encounters.
That said, I generally aim to have my lower limits of occurence at 12.5% or 16.6% (1/8 and 1/6), as any lower and unless your triggers are occuring rapidly, there is a rather low chance of the event occuring and it falls in the reals of "not useful but really annoying" features.

Anyway, "Moderate Chance vs. Moderate Payoff" and "High Chance vs. Low Payoff" chances offer the following advantages:
  • You can more easily judge their effect on game balance.
  • Players will more easily judge their effect on encounters, and will adjust their strategies in turn.
  • Something that has a higher chance of happening appears to be far more useful to players than low chance occurrences.
  • Something that has a higher chance of happening is actually far more useful to players than low chance occurrences.
The first advantage is actually really important - as I too have falled for the "Low Risk v. High Payoff" trap before, and, I'm in the middle of rectifying it for Pokemon Universe.

In PU, a few Pokemon have some abilities that have a tiny chance of activating, but, could win a match. Put them all together (each Pokemon had a few of them each), and I realised that these could decide matches more than team layout and skill a lot of the time.
The scary thing is, I put them in the game a while ago and it took me this long to realise how bad it really was.

As a designer, it's so easy to say "Oh, it'll only have 5% of the time, that won't affect anything," and "That makes it just a filler", but - the amount of grief it could give your players is tremendous, and could make the difference between having a game with a skilled design and a possible competitive future - and a casual party game that isn't even fun at parties.

Higher activation chances increase the transparency of a feature's effect on game balance - making it more enjoyable for both you to work on and players to play.

Conclusion
So remember:
  • Games with few random parameters usually have enough luck in them as it is.
  • Skill should always trump luck in deciding the outcome of an encounter.
  • Gaining skill and learning is a rewarding experience for players.
  • Low Chance, High Reward feature often don't happen enough to affect balance, but when they do happen, annoy players greatly.
  • Use "Moderate Chance vs. Moderate Payoff" and "High Chance vs. Low Payoff" chances.
  • These chances are easier to factor in your balance.
  • These chances are easier for players to factor into their strategies.
  • These chances increase the transparency of your luck system, increasing the quality of the game.
And that's why I think you should turn items off in Brawl.

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.

Sunday, February 14, 2010

Quick Update

Well, life has exploded.
I am at college 3 days a week, and I work a day a week, leaving me 3 me-days.
On my me-days, I work on balancing Pokemon for Pokemon Universe when my Balance Team is on IRC, I work on The Undeadables (more about that in the next paragraph!), and I write for this blog.
I have also started playtesting for a local company called Convict Interactive, but I can't give out information due to the NDA. Exciting stuff from them, anyway. Visit their site: http://cg.stephenbarnes.net/

Sooo I'm busy with all the design and game-related stuff, but I love it. I've always liked designing games more than playing them - and well, I'm not missing gaming too much.

But yes - The Undeadables is in production as a Warcraft 3 map. It just myself and my friend Alex Hewitt (who made 3D images for the Undeadables video), but we're going okay. We started development on Friday - and we've already hit a couple of snags to do with subterfuge vs. in-game communication, but Alex's knowledge of the Warcraft 3 engine is driving the project. We will likely be working on the game once a week. So, there will be some updates on how we're setting up the balance and sorting out issues in that project.

Anyway, I have 4-5 blog posts planned:
  • Pacing (a theoretical post)
  • Balance Concerns Across Different Genres (I promised this one a while back)
  • Canon vs. Gameplay (the problems with games and their pre-existing universe)
  • Setting Up Balance (in depth strategies to starting a balanced game)
  • Conservative Game Balancing (how to ensure minimal effects on the entire game when balancing a particular unit)
Pacing is just one I find fun, and Setting Up Balance has a lot to do with The Undeadables - as myself and Alex are trying to find magic balance numbers from scratch.

Conservative Game Balancing and Canon vs. Gameplay are both very much to do with Pokemon Universe. In that project, myself and the other Balance Team member (Gammal) have to isolate problems in Pokemon, so only that Pokemon is affected. We are trying to be as conservative as possible, to ensure we don't cause larger problems in the game.

Canon vs. Gameplay is an issue I've found in the project, as, many members do not want the Pokemon to change at all, as it will interfere with existing canon. As a firm believer of Gameplay > Canon, I will be listing reasons pertaining to why you should try to preserve Canon, but when change is needed for the sake of balance, or in the name of fun, you shouldn't hesitate.

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.