I know there are already a few balancing formulae on this forum already and for all intensive purposes they work, as far as any formula can. Indeed I have used them myself in order to try and balance my own creation. But I've just developed a system which was designed more for my needs because the others just weren't QUITE working for me.
In essence, this formula works of the principal of determining how much time it takes for a unit to kill an opposing unit and vice versa. I decided n the formula having to disregard a few factors:
Player's ability to micromanage - This is to do with skill and thus (IMHO) should never be factored into a balancing formula
Any abilities units might be able to use - Again IMO, this is something you can only balance through play testing, abilities are far too varied and many of them are based on synergy with other abilities.
There are no special damage types (though armour ignoring abilities and the like can easily be factored in)
So on with the formula:
For the sake of my example unit stats include thus: (This is entirely based off of how the mechanic in the game I'm developing will work)
Life
Armour (A secondary health bar with no regeneration)
LPS (Life gained per second)
DPS (Damage Per Second)
Range
Speed (I could be wrong here, but I believe speed is the amount of 'range' a unit moves a second, hence how it is used in my formula)
The formula itself looks like this:
a Prefix is the killing unit's stats.
b Prefix is the defending unit's stats.
(bHealth/(aDPS-bLPS))+(bArmour/aDPS) = KillSecs
(bRange-aRange)/aSpeed = ExtraSecs
IF (aRange < bRange) THEN (KillSecs + ExtraSecs = KillTime)
KillSecs is purely how much time it takes for unit A to kill unit B
ExtraSecs is how much time you are running to the enemy whilst they are attacking you.
then IF unit A's range is less than unit B's then you want to add ExtraSecs onto to get your total KillTime.
Otherwise KillTime is just KillSecs
I found it best to do this in a spreadsheet, just make a comparison table between to units. The two KillTime's can then be used to to compare who would kill who first. you can then divide the greater value by the smaller to find out how many of the losing units you'd need to equal/beat the winning unit.
Here's an example
Unit A
Health : 120
Armour : 0
LPS : 10
DPS : 20
Range : 10
Speed : 3
Unit B
Health : 100
Armour : 50
LPS : 10
DPS : 20
Range : 5
Speed : 3
Using these values:
Unit A has a killTime of 12.5 (because his range is greater than Unit B's the ExtraSeconds are not counted)
Unit B has a killTime of 13.7 (His KillSecs is 12, but because his range is lower, he is getting shot 1.67 seconds whilst doing no damage)
So here we have it, this formula should account for one on one fights between units, it can't really work for multiple weak units because it does not take into account the added DPS which is being dealt, but then reduces over time etc.
For a different formula (that would work better for multiple weak units etc) that does not account for range, speed or regeneration, check out Antimatterthun's Trinity balancing formula here
Hope this is useful, let me know if anything's unclear, hopefully you should be able to use it to adjust for your game types (like armour reduction etc).
Peace Out.
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
I know there are already a few balancing formulae on this forum already and for all intensive purposes they work, as far as any formula can. Indeed I have used them myself in order to try and balance my own creation. But I've just developed a system which was designed more for my needs because the others just weren't QUITE working for me.
In essence, this formula works of the principal of determining how much time it takes for a unit to kill an opposing unit and vice versa. I decided n the formula having to disregard a few factors:
So on with the formula:
For the sake of my example unit stats include thus: (This is entirely based off of how the mechanic in the game I'm developing will work)
The formula itself looks like this:
a Prefix is the killing unit's stats. b Prefix is the defending unit's stats.
(bHealth/(aDPS-bLPS))+(bArmour/aDPS) = KillSecs
(bRange-aRange)/aSpeed = ExtraSecs
IF (aRange < bRange) THEN (KillSecs + ExtraSecs = KillTime)
KillSecs is purely how much time it takes for unit A to kill unit B
ExtraSecs is how much time you are running to the enemy whilst they are attacking you.
then IF unit A's range is less than unit B's then you want to add ExtraSecs onto to get your total KillTime.
Otherwise KillTime is just KillSecs
I found it best to do this in a spreadsheet, just make a comparison table between to units. The two KillTime's can then be used to to compare who would kill who first. you can then divide the greater value by the smaller to find out how many of the losing units you'd need to equal/beat the winning unit.
Here's an example
Health :
120Armour :
0LPS :
10DPS :
20Range :
10Speed :
3Health :
100Armour :
50LPS :
10DPS :
20Range :
5Speed :
3Using these values:
Unit A has a killTime of 12.5 (because his range is greater than Unit B's the ExtraSeconds are not counted)
Unit B has a killTime of 13.7 (His KillSecs is 12, but because his range is lower, he is getting shot 1.67 seconds whilst doing no damage)
So here we have it, this formula should account for one on one fights between units, it can't really work for multiple weak units because it does not take into account the added DPS which is being dealt, but then reduces over time etc.
For a different formula (that would work better for multiple weak units etc) that does not account for range, speed or regeneration, check out Antimatterthun's Trinity balancing formula here
Hope this is useful, let me know if anything's unclear, hopefully you should be able to use it to adjust for your game types (like armour reduction etc).
Peace Out.