To start things off, I thought I'd write about one of the oldest traditions in game design: Rock, Paper, Scissors (I'll be referring to it as "RPS" for the rest of the post). RPS is, in many cases, the underlining philosophy behind the entirety of game balance for many games. The most general description of the RPS design is that an individual game move has one or more game moves that that game move defeats and one or more game moves in turn defeats that game move. In the case of RTS and MMO games, a game move may also be an individual game unit or player.
Before we get too far into discussing RPS, let me iterate a few examples of its application. The original game, of course, features two players who simultaneously chooses either rock, paper, or scissors as his or her move. Rock beats scissors, scissors beats paper, and paper beats rock. In RTS games, the RPS paradigm takes the form of unit types. One such example being ground units, air units, and anti-air units. In fighting games, the RPS paradigm is employed in different classes of attacks. For example, a low hit may be beaten by a jumping attack, which in turn is defeated by a standing attack or specific anti-jumping attack, which would then be defeated by the low hit.
The benefits of using a RPS design when designing a game are fairly obvious. The paradigm in its most basic form is both easy to implement and easy to balance. All that's necessary is three types of moves or units that each counter a different type to a roughly equivalent degree. It's simple and intuitive to the end user, so there's no problem in strategies being too abstract for new players to figure out and understand. When playing games, the player often constructs strategies of the form: "If the other player does that, then I can counter it by doing this." The RPS paradigm naturally fits this kind of construct, as game balance is derived by straight counters.
The downsides of employing a RPS design tend to revolve around the desire to create a more varied game-play. To illustrate this, consider this fact: RPS is simple to implement provided there are three types of units or moves. But what if you, as the designer, want more than three types of moves? In a purely theoretical sense, implementing a fair system derived from the RPS paradigm with more than three types of moves/units is demonstrably possible. Unfortunately, in any system with an even number of moves, there must be pairs of moves that, when pitted against each other, produce no winner. Conversely, in a system with an odd number of moves, it is possible to create a perfectly fair system where each move has the same number of winning and losing pairings without any tie moves aside from pairing moves with the same move.
This is not only provable mathematically, its possible to derive an equation that tells us, given a number of moves, the number of winning and losing pairings for any given move (since the system is perfectly fair, the number of winning and losing pairings are necessarily equal). Let's assume that we have a RPS system with n-number of moves. Then we can picture our RPS system as an n-sided regular polygon, where each vertex represents a single move. If we draw this picture, then every possible edge connecting any two points is representative of every possible move pairing. The equation n(n-1)/2 tells us how many edges, and therefor pairings, our system has.
Now that we have all of our pairings, we need to decide which move wins for every possible pairing. The simplest way to represent this in our picture is to give each edge a direction. That is, given the edge AB, declare that the edge goes from A to B, and therefor move/unit A defeats move/unit B. Therefor, we can say each move has some number of winning pairings (or losing). In a fair system, this number is the same for every move. Thus, to find how many winning/losing pairings every move has, we divide the number of pairings our system has by the number of moves:
(n * (n-1) / 2) / n
(n-1) / 2
At this point, it should become clear why only odd values of n can create a fair system without ties that aren't mirror-matches (pairing a move with itself).
Now, another problem with RPS systems that I've conveniently ignored up until now is the question of how ties are resolved. Even using the above information to create a system where it's impossible to have two different moves result in a tie when paired, there's still the possibility of mirror-matches. In the actual RPS game, ties are simply replayed until one of the players wins. This is fine for a game like RPS or a turn-based game, but a real-time game can't allow replaying ties for practicality reasons. There needs to be a definitive resolution.
A solution to this problem is to simply make the outcome random in case of a tie. Through whatever game-play mechanics the developer chooses to implement, he or she could simply design the game in such a way where, in the case of a tie, either player will win about half the time. The problem here is when your system has multiple moves or units that fit into a given vertex, or role, in the RPS system. What happens when two different units fulfilling the same role are paired and for whatever reason one unit has an advantage over the other? The more moves of the same class of moves the developer adds, the greater the complexity in balancing those units. The more classes of moves the developer adds, the greater the complexity in balancing those units, but to a much greater degree.
As a final point of discussion, I'd like to talk about the RPS paradigm in MMO games. In these games, players can be thought of as individual units in an RTS game. Each player has his or her avatar, which generally is of a certain class and fills a certain role in a group of players. Looking at the game design in this way, an RPS system seems like a fair and easy-to-implement way to achieve game balance.
Unfortunately, this ignores a very important fact about RPS-based games: the player, at any time, should be able to choose any move (or at least attempt to choose a move). In most MMO games that take the view that each class fills a role that defeats a certain role and is likewise defeated by a different role, the player is stuck with the role he or she chose on the onset of a conflict. Basically, if your class is paper, you cannot change to rock because you think your opposition is scissors. Likewise, you cannot change to rock because your team doesn't have anyone playing the rock class.
Interesting, fulfilling game-play comes from giving the players options to vary their strategy. If a player playing the paper class can only improve his ability to defeat the rock class or lessen (but never remove) the ability of the scissors class to defeat him, the player isn't going to find the game-play fulfilling.
Subscribe to:
Post Comments (Atom)
3 comments:
You touch on a number of very interesting views in the context of balance in the generic strategy game, but as soon as you hit the (what I think is the) key point of the essay, you do not offer any insight. That is, you mention that if the paper class can only improve his ability to best the rock class and never further his ability at facing the scissors class, he will not have a very enjoyable time in the game.
I completely agree with this point, but as a developer of such a game in the aforementioned genre, what can be done in these complex systems to help fight these types of user-depressing situations?
That's true. That final point was actually what I envisioned the post to focus around, but I ran out of steam when I got to it (Blogger claims I made the post at 10:00, really I opened up the "New Post" page then, didn't write anything in it until a few hours later, and finished around 3:30 in the morning). I think the simplest solution is to simply try to avoid thinking of different classes and class roles in terms of RPS. Of course, that makes the task of class balance all the more difficult as the developer can't use the RPS paradigm to justify imbalances between classes, but I think in the long term it'll be easier to move towards game balance when class and class roles aren't so rigidly defined.
I think that mmos, like WoW, tend to try and stick to this traditional idea of RPS, but end up having too many facets of game-play to balance around. For instance, they make classes who have roles which can be facilitated by other classes. An example of this is a paladin healer versus a priest healer. These cases change the overall structure of the RPS game to more of a "rock, paper, scissors/pruning-shears/exacto-knife/etc" game with many consequences, the worst of which is min/maxing the game-play.
"Raid leaders will only take paladin healers for this fight because paladin healers have high armor, and there are a lot of instances where the target will get off the tank and do some melee damage to the healing classes." Some specific instances like these will creep into the game, and the developers are forced to make a decision between improving the "rock-handling ability" of all the scissor choices, or just accept that one choice is better for that given scenario than the other.
Either of those choices is fine, ultimately, but only if the developers stick to the choice as a balance tactic over-all. When developers go from "well, you just can't bring priests to encounter X because they are poor at taking melee damage" to "we have improved paladins' ability to absorb magic damage because of encounter Y," it shows favoritism on the part of the developers, which causes all the other classes to ask why (or worse, comparable buffs).
Post a Comment