• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Balancing out Item stats

Status
Not open for further replies.
Level 7
Joined
Dec 28, 2009
Messages
257
Heya folks :D
This isnt actually total question, more like seeking advice and so on, but:

Im working on my map, and id like to have some items there. They should give all types of stats for Heroes, like Strength, Agility, Mana regen, Max HP, Damage, Armor, some custom abilities (from evade to custom) and so on.

Also, there will be (at least) 2 "tiers" of items, lower will give total of 6 stats, and higher total of 12 stats (like, 12 Agility or 6 inteligence)

And my question! :D

As id like to make those items equal, ive got one problem: While i know that item that gives 6 Strength should be equal to 6 Agility... How much pure Hitpoints does it equal? 200?250? Since Strength = HP +DMG + HP regen?

Note: Im using normal wc3 stat, therefore
1 Strength = 25 HP, 0.05 HP regen
1 Agility = 0,30 Armor, 0.02 Attack Speed
1 Intelligence = 15 MP, 0.05 MP regen
And i guess 1Str = 1Agi = 1Int


So, my "question": How would you equal this? If i had whole list of available stats, how would YOU equal it?

For example:

10 Strength = 250 HP + 0,5HP regen
Does 0,5 HP regen equal to 50 HP, or more, or less?
Does 10 Strength equal to 5 Armor, or its too much, not enough?

So, what does 10points of Any Stat equal to?*
X Armor
X HP
X HP regen
X MP
X MP regen
X damage
X Attack speed
X Movement speed
Other stats = X% Evasion, Critical strike, etc.

*What do you think. Some calculations would be awesomeee :D

So eventually, id like to have some item that gives, lets say 200 HP and 5 Armor, and other items should be equally strong - not that other item would give +30 damage, that would be 2x stronger than this. And so on.

Ayup, hopefully you know what i mean :D Its just, id prefer some more tips how to equal it all , thanks for help! :D
 
Level 21
Joined
Mar 27, 2012
Messages
3,232
You've asked a tough question.

Basically it is impossible to give a one true value for every stat. That's because the value of a stat varies wildly depending on situation(lifesteal is good if you have lots of combat, while life regeneration is much better for passively recovering when out of combat)
I guess if you have some strong initiative to work on this, then I can help. Perhaps you can somewhat be helpful to me too.

I have an experimental balance sheet(or a couple, but I only use the latest).
As it is, I can't upload the balance sheet here. It's xlsx, which is not supported.
If you truly are interested, then I can provide it to you and help you use it though.
 
Level 7
Joined
Dec 28, 2009
Messages
257
Oh, thats true, my map is combat intensive, and i guess HP regen would be quite useless, so i think ill make HP and MP regen a little stronger :D(or at least MP one)

and about that sheet, okay, i guess i could at least check it (unless it will be too hard for me to understand, or something :D), if you can get it here somehow :D
and also, what is xlsx.. eh? thanks :D
 
Level 21
Joined
Mar 27, 2012
Messages
3,232
Oh, thats true, my map is combat intensive, and i guess HP regen would be quite useless, so i think ill make HP and MP regen a little stronger :D(or at least MP one)

and about that sheet, okay, i guess i could at least check it (unless it will be too hard for me to understand, or something :D), if you can get it here somehow :D
and also, what is xlsx.. eh? thanks :D

xlsx is the file format that microsoft excel 2007 uses.
In case you don't have this I can also upload the spreadsheet to google.
 
Level 6
Joined
Oct 1, 2012
Messages
166
Well, I believe that you could do some maths with simply checking how many hits would a unit survive with, let's say, 10 in every stat (or more likely: agi and str, since int does nothing to defences) , if the hits attack for 100?
And then check how many more hits will it withstand with +1 to str/agi and then try making the value constant among them? I know, this won't be completely sure and perfect, but it's something.

What I mean:

Let's have a Paladin with 100 starting HP (so a normal Paladin unit) and 10 in all stats. That gives us 350 HP, 0.5 HP/sec, 1 Armor (base is -2, 3 for Agi).
With 100 dmg per sec caused to him:
-94 (base attack - armor's reduction)
+0.5 ('cause the regen)
====
-93.5

He'll survive approx 3.74 seconds.

Now, let's add 10 str.
Stats: 700 HP, 1 HP/sec, 1 Armor
The same 100 DPS again:
- 94 (base attack - armor's reduction)
+1 ('cause the regen)
=====
- 93 (not much changed, cause STR gives no armor)

He'll survive approx 7.52. That is, +3.78 per 10 STR, so 0.38 per 1 STR.

Now, let's add 10 agi to the first set
Stats: 350 HP, 0.5 HP/sec, 4 Armor (gives about 22% reduction, I believe, since WC3 is weird about that)
The same 100 DPS again:
- 78
+0.5
=====
- 77.5
Will survive about 4.51 sec, that is + 0.77 per 10 agi, so + 0.08 per 1 Agi point.

It looks very simple, but it is not, as for a perfect answer you'd need to do the same for Agi while adding 10, 20, 30, 40... to 100 at least, since armor reduction is not a constant function and does not add +6% reduction per armor point as Game Constants say. Yet, strength bonuses are constant and kinda perfect for such maths.

Next, you'd propably want to check every stat for offensive potential and then see how good would Int be by checking, maybe, how many spells per second you can cast while assuming some base mana cost.

Hope my idea helps anyhow, I am gonna use it to balance my map when I'll finish it too :)
 
Level 21
Joined
Mar 27, 2012
Messages
3,232
Well, I believe that you could do some maths with simply checking how many hits would a unit survive with, let's say, 10 in every stat (or more likely: agi and str, since int does nothing to defences) , if the hits attack for 100?
And then check how many more hits will it withstand with +1 to str/agi and then try making the value constant among them? I know, this won't be completely sure and perfect, but it's something.

What I mean:

Let's have a Paladin with 100 starting HP (so a normal Paladin unit) and 10 in all stats. That gives us 350 HP, 0.5 HP/sec, 1 Armor (base is -2, 3 for Agi).
With 100 dmg per sec caused to him:
-94 (base attack - armor's reduction)
+0.5 ('cause the regen)
====
-93.5

He'll survive approx 3.74 seconds.

Now, let's add 10 str.
Stats: 700 HP, 1 HP/sec, 1 Armor
The same 100 DPS again:
- 94 (base attack - armor's reduction)
+1 ('cause the regen)
=====
- 93 (not much changed, cause STR gives no armor)

He'll survive approx 7.52. That is, +3.78 per 10 STR, so 0.38 per 1 STR.

Now, let's add 10 agi to the first set
Stats: 350 HP, 0.5 HP/sec, 4 Armor (gives about 22% reduction, I believe, since WC3 is weird about that)
The same 100 DPS again:
- 78
+0.5
=====
- 77.5
Will survive about 4.51 sec, that is + 0.77 per 10 agi, so + 0.08 per 1 Agi point.

It looks very simple, but it is not, as for a perfect answer you'd need to do the same for Agi while adding 10, 20, 30, 40... to 100 at least, since armor reduction is not a constant function and does not add +6% reduction per armor point as Game Constants say. Yet, strength bonuses are constant and kinda perfect for such maths.

Next, you'd propably want to check every stat for offensive potential and then see how good would Int be by checking, maybe, how many spells per second you can cast while assuming some base mana cost.

Hope my idea helps anyhow, I am gonna use it to balance my map when I'll finish it too :)

By the way, armor is actually relatively easy to balance. Every next point of armor gives an effective bonus of 6% to healability,lifesteal, health and health regeneration compared to the previous.
This means that if the first point of armor gives 60 health to a 1000 hitpoint unit, then so will the next.
It's strange, but that's how it seems to be.
 
Level 6
Joined
Oct 1, 2012
Messages
166
I don't pretty much get what you mean, Sir.

I meant that the '0.06' value in Game Constants at 'Damage Reduction per Armor Point' is 0.06 only for the first point and then gets +0.05, +0.05, +0.04 or something like that. With this in mind, by my inderstanding, what you said doesn't work.

I'm not saying you're wrong, I'd just like you to tell me how would that work?
 
Level 21
Joined
Mar 27, 2012
Messages
3,232
I don't pretty much get what you mean, Sir.

I meant that the '0.06' value in Game Constants at 'Damage Reduction per Armor Point' is 0.06 only for the first point and then gets +0.05, +0.05, +0.04 or something like that. With this in mind, by my inderstanding, what you said doesn't work.

I'm not saying you're wrong, I'd just like you to tell me how would that work?

It is designed with seemingly diminishing returns, but in reality the gain from armor is linear.
The first point of armor reduces damage by 6%, aka the damage is
damage*0.94
This is effectively repeated for every point, so that it would be impossible to get a 100% damage reduction. (100% - Endlessly good)
 
Level 6
Joined
Oct 1, 2012
Messages
166
Okay, I pretty much get it now.

Still, getting the 'value' of a stat point is problematic, so it would be better to check a unit with 10, 50 and 100 agi and get the average value.
 
Level 21
Joined
Mar 27, 2012
Messages
3,232
Okay, I pretty much get it now.

Still, getting the 'value' of a stat point is problematic, so it would be better to check a unit with 10, 50 and 100 agi and get the average value.

Agility is a very problematic stat to balance in a larger scale.
In melee it was meant so that agility heroes start out weaker than others, but get stronger as they level up. Thus, they have the attack rate reduction that can possibly make them overpowered in a larger scale.
Strength heroes have health regeneration for this same purpose(becoming OP in a way)
Intelligence heroes give some utility/support and have the highest burst damage of all.

It's very balanced in the melee game, but it was never expected for each stat to be exactly as good as any other.
 
Level 6
Joined
Oct 1, 2012
Messages
166
Well, that's true. That'w way I leave balancing to the end and at the beginning simply set every value to that which my common sense dictates :D

@EDIT: I forgot. The question was not solely on the stats. But on, let's say, evasion.

First thing about it is that the percentages in skill's stats are kinda wrong. They are balanced in melee maps, but do not work in rpg maps. I always make criticals and evades with custom scripts.

Still, if you work it out perfectly, calculating evade's defensive value is pretty simple. 20% chance of dodging equals 20% damage reduction (or more likely - 20% chance of 100% damage reduction, but, statistically, it's the same thing and statistics are what we need).
 
Level 21
Joined
Mar 27, 2012
Messages
3,232
Well, that's true. That'w way I leave balancing to the end and at the beginning simply set every value to that which my common sense dictates :D

@EDIT: I forgot. The question was not solely on the stats. But on, let's say, evasion.

First thing about it is that the percentages in skill's stats are kinda wrong. They are balanced in melee maps, but do not work in rpg maps. I always make criticals and evades with custom scripts.

Still, if you work it out perfectly, calculating evade's defensive value is pretty simple. 20% chance of dodging equals 20% damage reduction (or more likely - 20% chance of 100% damage reduction, but, statistically, it's the same thing and statistics are what we need).

True, the value is easy to find. I have a spreadsheet that calculates this among other things.
Although making a system that scales the evasion in a fair way is a bit more difficult.
 
Status
Not open for further replies.
Top