Language:
All English
Sub-Category:
All Programming (1)
|
 | |  | |   | Real Time Strategy Game Design 101: Faction Balancing | | | (2008-11-19 07:00:00) | [viewed: 468] |
| | Sub-Category: Programming | |
When you are trying to design a real time strategy game system, you want to make the factions diverse and yet balanced; they seem contradicting with each other though.
Some designers chose to have very distinctive approach (e.g. zealot of Protoss & zergling of Zerg of StarCraft series). However, the infamous Zerg Rush was a very good example that distinctive unit development resulting compromised faction balance. That requires a lot of beta testing to balance the system and, yet, it still can happen. Some game designers, therefore, decided to make initial units identical (e.g. riflemen of GDI & NOD of C&C series) to avoid the rush strategy. It is a challenging task to design multiple entertaining, balanced and diversified faction tech trees in a game universe.
Here, I want to discuss the root of all evil: initial unit balancing. Let’s suppose all factions were all given initial resource needed for creating initial assault units, so the difference of resource gathering methods, if any, are not considered here. Also, the difference of structures required to create the initial units is not in the scope of this article either.
Now, let’s say we have two factions and we are trying to design two distinctive initial unit types, X and Y, for each faction.
X: Cost = 100, HP = 100, Damage (per shot) = 100, Build Time = 10
Y: Cost = 50, HP = 50, Damage (per shot) = 50, Build Time = 5
Please note that the build time of Y should be shorter than the time needed for Y to travel to X’s location; otherwise, rush becomes a possibility (the first two Ys arrive at X’s location while the first X is still in production). Of course you can choose to make structures and resource gathering system stronger to minimize the rushing damage. The moving speed, armor and accuracy of X and Y are all equal here to make the problem simpler.
If two Xs encounter with each other, it is very likely that two Xs will mutually destroy each other unless one did not fire a shot in time before being destroyed. It is obvious that Y is half of X, so two Ys equal one X, which sounds pretty balanced right? In a perfectly balanced scenario, they should have about equal chances of defeating the other when encountered; that is the two Ys should win 50% of the times and so should X.
However, based on the above setup, the two Ys will prevail most of the times. When two Ys and one X encounter, X will fire a shot with damage of 100 while the two Ys will shoot two shots, one each, with 50 damage. What will happen is that the 100 shot will completely destroy one of the Ys and the X will be completely destroyed by the two 50 shots. The result is that one Y, which is completely health, will survive.
So what options do we have here? We can:
* make X slightly tougher (i.e. HP = 103). This way, X will always survive two shots from Y with little HP left, and have a chance to fire a second shot at the remaining Y (also subject to Y's second shot).
* tweak the shot damage to make it variable (i.e. DMG 47~50 vs. DMG 95~100). This way, X will survive two shots from Y most of the times with little HP left, and have a chance to fire a second shot at the remaining Y (also subject to Y's second shot).
Which solution do you think is more workable that we can actually try to make it a 50-50 chance scenario? However, this is just an over-simplified scenario as the system balancing becomes more complicated when more unit types are being added to the system. |
| |  | |  |
|