Jump to content

Using a percentage for armour (discussion)


Recommended Posts

Discussion for http://www.wildfiregames.com/forum/index.php?showtopic=16985

Currently armour works by the following rule.

damage = max(attack - armour, 1)

The proposal is to change this to

damage = attack * (1 - armour/100)

So with 20% armour you only incur 80 damage for every 100 dealt.

To keep the proposal clean and neutral I will post reasoning in a new comment.

Link to comment
Share on other sites

I think this change is necessary because it will make balancing much easier and will allow the players to learn unit strengths more easily.

A percentage system is simple when looking at the interactions what stats are changed. This is because it is linear. So if I increase a units attack by 20% I know that it will do 20% more damage against all units. If I increase armour by 10% then the unit will take 10% less damage (assuming it starts with 0% armour) this will be true for all units which attack it. Thus it is easy to understand how a change will affect fights between units, this makes balance easy and it allows players to more easily learn the damage relations between units, especially once techs start being applied.

The current health system does not have this characteristic, it is non linear, so if I increase the attack of a unit by 10% the amount of damage it will do varies dramatically. Taking a case study (carefully picked to exaggerate the problem ;)).

A Macedonian Foot Companion (basic)has 10 pierce and 5 hack attack. It can fight against cretan archers with P2 H3, itself with P9 H4 and thessalonian lancers with P11 H4. By default the damage done is 8+2 = 10 vs the archer, 1+1=2 against itself and 0+1=1 against the lancer. Now we have a nice tech which gives +2 pierce attack. This gives +20% vs the archer, +100% against itself and +100% against the lancer. Now lets add another +2 pierce, we get +18% vs the archer, +50% against itself and +100% against the lancer. Lets say instead that going back to the start we change the first +2 pierce bonus to a +2 hack instead. Now vs the archer the increase is 20%, vs itself there is +100% and against the lancer +200%.

This makes things really unpredictable for high armour units. It is quite noticeable with siege in current gameplay, since getting the third +2 attack on skirmishers suddenly doubles their damage vs siege. Or getting the +2 attack for cavalry skirmishers suddenly triples their attack vs rams.

One argument that was put forward in favour of the current system is that it is feasible because AoE1 and AoE2 had this system. Our game is already more complicated, since we have more units (especially with heroes), although many units have similar stats even tiny changes as shown above have have large effects. Arrows are more inaccurate, this means that arrow damage must be higher to compensate but then high pierce armour units get messy. We have 3 armour/attack types, AoE2 just had melee and ranged with little mixing, we have spearmen with a pierce attack mixing things up more (this is perhaps undesirable since a spear is quite unlike a missile, but that is a different issue). Implementing hero auras and other more advanced attacks like charge is only going to make matters worse.

Link to comment
Share on other sites

A percentage system does sound like a good idea, especially since it's easy to visualise a percentage of the unit's body being covered in armour.

You don't mention it in your post, but are you thinking of removing Armour/Hack, Armour/Pierce and Armour/Crush in favour of just one Armour value? I don't think you are.

Link to comment
Share on other sites

It doesn't make sense, in my view, for a unit's armour to both block 20% of the damage of a little sling bullet and 20% of the damage from a giant siege rock.

And here come's the question

Is it easier to dodge 1 bullet or 1 huge rock ?

You cant make a 100% realistic game because it will make it too complicated and hard to balance.

Link to comment
Share on other sites

It doesn't make sense, in my view, for a unit's armour to both block 20% of the damage of a little sling bullet and 20% of the damage from a giant siege rock.

I was thinking hard about posting this for several minutes. % armor may be simpler but its not realistic or historically accurate. I guess it makes sense if you are folding blocking and dodging into the armor stat or something?

Link to comment
Share on other sites

And here come's the question

Is it easier to dodge 1 bullet or 1 huge rock ?

You cant make a 100% realistic game because it will make it too complicated and hard to balance.

In a battle, you really aren't going to "dodge" a sling bullet or arrow when you're in the middle of a densely-packed formation of men and you are in contact with the enemy.
Link to comment
Share on other sites

What does the current system do in this case?

The current system gives each armour type a value and is subtracted from the attack value of the incoming attack. Look at it like this: Each armour material in real life has its own tolerances. Linen armour will absorb X amount of force, while bronze armour will absorb Y amount of force. Beyond that, there really is no protection. If a sheet of bronze can, say, block 100 lbs of force from penetrating it, then if 110 lbs of force will penetrate, but 80 lbs will not (but will still cause some minor damage, I think 1 hp of damage in our case). If a rock comes sailing in at 1000 lbs of force, then your armour in this instance should be of minimal use (it only blocks 100 lbs of that 1000 lbs). If a percentage is used, then suddenly the amount of force that a piece of armour can absorb changes based on the amount of force being applied. What space-aged materials are our soldiers wearing?! ;) In a percentage system, if a soldier has, say, 25% armour, the piece of armour absorbs 25% of the 110 lbs projectiles and 25% of the 1000 lbs projectile, or 250 lbs of the latter and only 27.5 lbs of the former!

However... I'm okay with a percentage system since it makes it "easier" for some people and I've experienced it playing Age of Mythology.

  • Like 1
Link to comment
Share on other sites

The current system gives each armour type a value and is subtracted from the attack value of the incoming attack. Look at it like this: Each armour material in real life has its own tolerances. Linen armour will absorb X amount of force, while bronze armour will absorb Y amount of force. Beyond that, there really is no protection. If a sheet of bronze can, say, block 100 lbs of force from penetrating it, then if 110 lbs of force will penetrate, but 80 lbs will not (but will still cause some minor damage, I think 1 hp of damage in our case). If a rock comes sailing in at 1000 lbs of force, then your armour in this instance should be of minimal use (it only blocks 100 lbs of that 1000 lbs). If a percentage is used, then suddenly the amount of force that a piece of armour can absorb changes based on the amount of force being applied. What space-aged materials are our soldiers wearing?! ;) In a percentage system, if a soldier has, say, 25% armour, the piece of armour absorbs 25% of the 110 lbs projectiles and 25% of the 1000 lbs projectile, or 250 lbs of the latter and only 27.5 lbs of the former!

However... I'm okay with a percentage system since it makes it "easier" for some people and I've experienced it playing Age of Mythology.

This seems to be a valid point (for me). Whilst I also consider percentage as easier, I don't really see the need for it, as I think most players can handle it without problems with the current system.

Link to comment
Share on other sites

The current system gives each armour type a value and is subtracted from the attack value of the incoming attack. Look at it like this: Each armour material in real life has its own tolerances. Linen armour will absorb X amount of force, while bronze armour will absorb Y amount of force. Beyond that, there really is no protection. If a sheet of bronze can, say, block 100 lbs of force from penetrating it, then if 110 lbs of force will penetrate, but 80 lbs will not (but will still cause some minor damage, I think 1 hp of damage in our case). If a rock comes sailing in at 1000 lbs of force, then your armour in this instance should be of minimal use (it only blocks 100 lbs of that 1000 lbs). If a percentage is used, then suddenly the amount of force that a piece of armour can absorb changes based on the amount of force being applied. What space-aged materials are our soldiers wearing?! ;) In a percentage system, if a soldier has, say, 25% armour, the piece of armour absorbs 25% of the 110 lbs projectiles and 25% of the 1000 lbs projectile, or 250 lbs of the latter and only 27.5 lbs of the former!

However... I'm okay with a percentage system since it makes it "easier" for some people and I've experienced it playing Age of Mythology.

Armour does not work in that simplistic way. It has massively varying strength depending on where and how you hit it, many places on the body have no armour. Lighter armour is effective in some situations because you can move more rapidly and take less damage that way, so armour should not be a literal interpretation of just the materials that a person is wearing.

Our game has a highly idealised combat system. Units take damage it little pieces, this damage has no effect on their performance until they suddenly drop dead. Real armour covers a limited amount of the body, has weak points and can be used dynamically by the soldier (blocking with a shield). We have rocks which do splash damage, which I can't see much basis for in reality, they certainly wouldn't have caused significant shrapnel, we should have linear splash for rocks if we want more realism. The current system probably is closer to reality, but I don't think that a percentage system is particularly ridiculous so that the players will think it is stupid.

As I outlined above I think a percentage system will be much better for game play. I think that since this is a core part of combat we should prioritize game play in this case.

Link to comment
Share on other sites

I agree with Jonathan on that point.

Arguing about what is closer to real life doesn't help us here. We are not implementing a battle simulator (which would require a lot more variables, research and adjustments). The important factors are if it is flexible to achieve what we want and how easy it is to balance. I haven't spent enough time thinking about both options, so I don't have a clear opinion about what is more flexible and easier to balance.

Link to comment
Share on other sites

Lemme put on a broken record: I wish we had Git, so everyone could test both options on separate branches.

There, I said it :P

This would not help in this situation ;). The point of the proposal is so that it is easier to balance the game, so unless you stick a balancing team on each branch and let them find out who can balance better you won't get very far :).

Link to comment
Share on other sites

This would not help in this situation ;). The point of the proposal is so that it is easier to balance the game, so unless you stick a balancing team on each branch and let them find out who can balance better you won't get very far :).

Well, discussions in the abstract have their merits, but they can only get us so far. Surely, people would be able to make more educated arguments if they had tried both options in practice.

Link to comment
Share on other sites

Well, discussions in the abstract have their merits, but they can only get us so far. Surely, people would be able to make more educated arguments if they had tried both options in practice.

It would be a ridiculous amount of work and the difference would be subtle, needing a large amount of testing. You would effectively be trying to balance the game twice, since when working on a small number of units balancing is easy you would need to do large scale stuff which is crazy.

Link to comment
Share on other sites

I heave not read everything but IMO there's only one way to go for armor:

HitpointReduction = DamageIncome * power(0.9, ArmorValue)

In this example 0.9 is just a possible value. It's mainy a bit smaller than 1- That way armor can be any positive number or 0 (no damage reduction since power(a, 0) = 1 for any finite value a). Additionally it's continuous so even float values could be chosen (though I don't think that would help in any way).

In the end its like incoming damage is reduced by 10% (to stick with the top example) for each single point of additional armor. So compared to 0 armor a unit with 1 piercing armor getting 10% less piercing damage. A unit with 2 piercing damage gets 10% less damage than the unit with 1 piercing armor, but not yet 20% less then the unit with 0 armor but only 19%. Indeed even with an armor value of pow(10, 100) a unit would still get damage (if calculated in 512 Bit float ^^).

Changing the basis (0.9 in the above example) can scale how fast damage is absorbed. Here it is 10% per armor because 0.9 = 1-0.1. But it can be more effective e.g. choosing the basis 0.8 or less effective setting the basis to 0.99 only reducing the damage by 1% per point of armor.

It might be not that important in this game since the damage values are quite small integer values making damage dealing non-continuous anyway. But this would be important if someone wants to make an "hack and slay/slash" (allthough quite irritating also known as "roll playing games"... Tz, tz! Only pen and paper is roll playing besides perhaps acting and for some PPL the "act" ^^) game mod for 0 A.D. for example.

A good ruleset is of value - at least for me.

3 Damage types are a good value. More are hard to balance (3 already are BTW), less seams not worth the effort.

Just wanted to let you know my thoughts.

Edited by FeXoR
Link to comment
Share on other sites

I tend to support the percent idea since it's fairly simple, very efficient gameplay-wise, and gives usually pretty sane outputs.

Perhaps the curve could be non-linear but rather dependent on attack strength, ie you'd get 50% defense against an attack of 10, 60% against an attack of five, but only 10% against an attack of 50, thus maintaining the advantage to a catapult or something. I dunno. Might be interesting.

(obviously we'd only show one value, say against an attack of 10)

Edit: might just have rephrased what Fexor wrote.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...