Posts
- Pokémon
- Graph theory
I'm interested in looking at type balance mathematically, by using graph theory on the type matchups in Pokémon.
The type matchups are normally presented as a table where you read the attacking type down one side and across to the defending type and read off a value. Graph theory calls that an adjacency matrix, and all adjacency matrices have a corresponding graph. Here's the graph. (I'm using Generation I's type chart because Generation I is a solved game - the optimal strategies are known and no new developments can be made other than by deliberately changing the arena in some way.)
What I'm not sure of now is what to do from here. This is a weighted graph - each edge has a weight of either 2 (green), 0.5 (red) or 0 (black), and can be trivially made complete by connecting all unconnected nodes with edges weighted 1. What metrics are meaningful here?
What do you mean meaningful?
The game is solved, but type alone is not very meaningful. There are no dragon or ghost moves that use the type chart in the game, and few bug moves. Far more 'mons have poison as a sub-type than any other game, which is weak to psychic, hence psychic is the most powerful over all, and you got strategies like ninetales with pin-missle just to hurt them.
Depending on what you measure, types available or mandatory fights could give a general guide for what is best for what parts of the game, mathematically reproducing the guides that say 'use electric against the water gym' and 'use grass or water against hikers.' If you could fine tune it you could make a way to make new guides faster, or explain exactly how much extra time one must spend to use their favorites instead of the 'best.'
I'm aware of factors other than the arrangement and interaction of types affecting game balance, that's not my goal. (My goal really doesn't have much to do with Pokémon itself, I'm using it as a case study.) I'm trying to learn as a game designer how to handle these concepts by equipping myself with mathematical tools to analyse a dataset like this.
My intention is that by ensuring balance at this most basic level, I set myself up with a solid foundation when adding later flavour and complexity simply by tweaking that to restore balance.
Oooh, like a graphical reflection of [url=http://www.sirlin.net/articles/rock-paper-scissors-in-strategy-games.html]this stuff[/url]. I have not dissected enough games to figure that.
Umm, most of my advice would just be regurgitating sirlin anyways, noone else has voiced so much volume on the matter of game balance with so much logic. If someone has, I'd like to read that too.
You can raise the adjacency matrix to the power n to get n'th-step dominance. They then take the limit as n goes to infinity, and a team's final score is the rowsum for that team's matrix row (or something like that, it's not my field of math). This is how sports teams are ranked, I think.
Anyway, to have a balanced foundation, you can insist that the adjacency matrix your using converge to the identity matrix, or maybe to a matrix consisting of all 1's.