Jump to content

Why does nothing have 0 armor?


ChronA
 Share

Recommended Posts

This is something that really confuses and annoys me. Why do women need a 10 percent damage reduction against every damage type? Why do animals and ranged units need a 10 percent damage reduction against every damage type? Would it have been so game breaking to just let them take the amount of damage it says the attack is supposed to do?

  • Like 2
Link to comment
Share on other sites

  On 23/05/2021 at 4:58 PM, Gurken Khan said:

I'd assume giving female gatherers and animals armor was a decision, so I wonder if there shouldn't be a discussion, hopefully with some kind of consent? And especially with the ranged units it would also be a matter of balancing.

Expand  

We have to look when the patch was committed.

Link to comment
Share on other sites

  On 23/05/2021 at 4:00 PM, Stan` said:

Make a patch ?

Expand  

I am a subscriber to the logic of Chesterton's fence. As much as I don't like this design choice, I must assume it served some purpose at some point in time. Thus it is imprudent for me to invest resources into developing a new solution until I can account for that original purpose.

  On 23/05/2021 at 5:26 PM, Player of 0AD said:

We should just leave it as it is

Expand  

Possibly. However there are some concrete reasons to make a change. It would make it easier to understand the number of hits it takes to kill a unit, which is arguably the most important statistic for understanding unit balance. It would make the GUI slightly simpler and more informative for new players. It would make it easier to test and observe observe in-game how modification that affect damage are working. And it would shorten and simplify some of the template xml files.

  On 23/05/2021 at 5:12 PM, Lion.Kanzen said:

We have to look when the patch was committed.

Expand  

Is there an easy way to do this? It seems like it is probably not the result of a single patch, and who knows when it was introduced. Querying the development log for "armor" turns up a mountain of irrelevant tickets.

  • Like 2
Link to comment
Share on other sites

  On 23/05/2021 at 5:39 PM, ChronA said:

I am a subscriber to the logic of Chesterton's fence. As much as I don't like this design choice, I must assume it served some purpose at some point in time. Thus it is imprudent for me to invest resources into developing a new solution until I can account for that original purpose.

Expand  

It's rare around here that someone actually wants to understand what he is about to change and whether it's a good thing before committing to it. Asking if in doubt is never wrong, though you might not get a decent answer.

 

Finding the commit might be difficult, renames for aesthetics, commit messages like "fix" or "update", etc. Even if you find the commit you might end up with a link to the discussion returning "sorry, insufficient permission"...

 

Why not 0? There are possibly technical reasons, like division by 0 or simply 0 having a special meaning like invulnerable. Should be easy to figure out though. Then there are design reasons. If you set resistance to 0 at the start you will only be able to adjust it into one direction unless you want to utterly confuse people by allowing negative resistance. Then if you want to change it now without affecting the "balance", you have to either change hit points or damage values. Hit points are mostly neat values so you might not want to change them. Alternatively you can reduce all resistance values by 1 and adjust damage across all units which might be not that great either. If just setting them to 0 you have to think about if the change affects the gameplay in a desirable or at least acceptable way.

  • Like 2
Link to comment
Share on other sites

  On 23/05/2021 at 8:52 PM, hyperion said:

If you set resistance to 0 at the start you will only be able to adjust it into one direction unless you want to utterly confuse people by allowing negative resistance.

Expand  

Ah! Now that's a good theory! Maybe there was thought of having a hero with an armor-debuffing aura. If every unit has at least 1 armor they could have it reduced by 1 and not fall into negative resistances. (I don't think negative resistance would intrinsically cause any issues, math-wise, but I can see how someone would worry about it.) Likewise maybe someone was worried about divide-by-zero problems if there was an armor multiplying/dividing aura. These are plausible explanations.

Unless such auras are already in the game and are see a lot of play, I'm not sure I buy that they are worth forgoing the benefits I listed... but it would at least explain things.

Also, thanks for your encouraging words, @hyperion:)
When messing with gameplay and balance I definitely do believe in a conservative approach. I think there was an XKCD to the effect that any time you find some human made thing that looks weird and stupid, it's a sign that a brilliant engineer spent days trying to optimize an impossible set of demands, before throwing up their hands in frustration. It's a bit hubristic to suppose one can simply do better without large portions of effort and luck. 

Edited by ChronA
  • Like 3
Link to comment
Share on other sites

  On 23/05/2021 at 11:57 PM, ChronA said:

(I don't think negative resistance would intrinsically cause any issues, math-wise, but I can see how someone would worry about it.)

Expand  

The amount of damage take seems to be 0.9^A, where A is the armor value. If it is indeed that exact formula, then negative values won´t be a problem.

Link to comment
Share on other sites

I fear the reason is a lot more human than you think: there was no "0 armour" anywhere, and so when standardising (mostly @Nescio's work) we still didn't use 0.
I actually commented that somewhere on some diff, and I think it's agreed that we should probably use 0 armour.

It's basically a series of unfortunate mistakes. Armour is an 'HP modifier', and to make things simple we should have a base HP and then sometimes positive/negative armour on top, but that's not really the system we have (e.g. champions have more armour than Citizen soldier, but that doesn't make sense, they should have more HP instead).

 

---

edit: I'll point out that 0 A.D.'s used of 'exponential armour' is unique as far as I know. It is indeed very convenient: there is really no 'start' point, so you can have -10 or 30 armour and it works the same: 1 point difference is worth about 10% more/less HP.
This property _is_ what makes it possible to use HP efficiently, but we still didn't :P

  • Like 1
Link to comment
Share on other sites

  On 24/05/2021 at 7:17 AM, LetswaveaBook said:
  On 23/05/2021 at 11:57 PM, ChronA said:

(I don't think negative resistance would intrinsically cause any issues, math-wise, but I can see how someone would worry about it.)

Expand  

The amount of damage take seems to be 0.9^A, where A is the armor value. If it is indeed that exact formula, then negative values won´t be a problem.

Expand  

The issue is more of the sort: In a room you have two people, three leave, later two join, now you have a single person in the room ...

Link to comment
Share on other sites

Nobody suggested that all citizens lose their armor. The idea was that units which have 1 armor get that reduced to 0. But this can have a big impact on the game for no signifcant reason, so it should not be done.

At the other hand, you could just lower all armors in the game by 1 and decrease all damages by 10%. But is it worth the effort? No.

Edited by Player of 0AD
Link to comment
Share on other sites

  On 24/05/2021 at 9:34 AM, Player of 0AD said:

It does makes sense. Champs have better gear. So they have more armor.

Expand  

It actually does not. Compare:

  • 200 HP, armour of 10 everywhere > you can take 200 / 0.9^10  => 573 HP of damage before dying
  • 573 HP, armour of 0 => 573 HP of damage before dying.

It's much easier to compare units if they all have a base armour of '0' and HP variations than if they have both.

 

  • Like 1
Link to comment
Share on other sites

  On 24/05/2021 at 9:27 AM, Yekaterina said:

I tried to change the armour value to 0, and suddenly all of the template files were reported to be invalid. I guess the problem lies in the maths behind it. 

However, I can attempt to change the value to 0.0001, which would be close enough to 0

Expand  

Really? The whole reason I made this post was that I was getting tired of always changing units' armor values from 1 to 0 in my personal balance experiment mod, and I have never had a template return invalid as a result. Maybe you made a mistake in the syntax?

  On 24/05/2021 at 10:38 AM, Player of 0AD said:

The idea was that units which have 1 armor get that reduced to 0. But this can have a big impact on the game for no signifcant reason, so it should not be done.

Expand  

Admittedly this is a question of balance philosophy, but I think if an 11% change in damage received or dealt substantively alters the balance of the game it is a sign of a design problem. If your balance needs to be that finely tuned to work correctly, then almost every change in unit stats or meta will necessitate massive balance revisions to maintain a playable experience. In contrast, a balance painted in bolder strokes will maintain its general shape even as the relative popularity of certain tactics rises and falls in proportion to their current strength (a la game theory).**

When I'm doing my experiments, I actually try to start by working only in powers of 2: doubling or halving damage, attack multipliers, and HP until the units have the qualitative relationships I want. Then I try to make minimal fine adjustments necessary to restore game feel. I'll grant that this technique can make for some very hard counters, but it makes maintaining balance easier, and every unit gets a very distinctive role and identity.

** P.S. This approach can definitely cause problem with civ balance when factions are differentiated primarily through their preferred playstyles within a common pool of archetypical strategies. If a certain tactic becomes too niche, civs that specialize in it will get much less play. I would argue that this just means each civ needs to have a couple of viable playstyles in its pocket, but reasonable minds may differ.

Edited by ChronA
Link to comment
Share on other sites

  On 24/05/2021 at 10:56 AM, wraitii said:

It actually does not. Compare:

  • 200 HP, armour of 10 everywhere > you can take 200 / 0.9^10  => 573 HP of damage before dying
  • 573 HP, armour of 0 => 573 HP of damage before dying.
Expand  

This logic only works if the unit has same resistance for all damage types and if there are no hard counters either.

 

  On 24/05/2021 at 10:56 AM, wraitii said:

It's much easier to compare units if they all have a base armour of '0' and HP variations than if they have both.

Expand  

So you could give all units 100 HP for 100% healthy instead.

Link to comment
Share on other sites

  On 24/05/2021 at 11:29 AM, hyperion said:

This logic only works if the unit has same resistance for all damage types and if there are no hard counters either.

Expand  

Correct, which is where Armour comes in: it modifies that base HP to make the unit more/less damageable against other types. Which is why negative values make sense.

  15 minutes ago, hyperion said:

So you could give all units 100 HP for 100% healthy instead.

Expand  

Yes, but that seems less obvious because we show HP and not armour.

Link to comment
Share on other sites

  On 24/05/2021 at 11:45 AM, wraitii said:

Correct, which is where Armour comes in: it modifies that base HP to make the unit more/less damageable against other types. Which is why negative values make sense.

Expand  

Now I see what you are up to. However this is a marginal improvement as you still need all those values to compare the units and the "hint" might actually be misleading. I don't mind negative armour (room example above), but then I don't mind an elephant building houses either. The real issue with changing HP is screwing over the current healing rates. Tripple HP meant it takes trice as long to get HP back to full. Same for building and repairing. Imagine needing 30 minutes to repair a ram due to current 50 pierce converted to HP.

As for what is shown, well that can be changed ;)

  • Like 1
Link to comment
Share on other sites

I actually played a game with everything having 0 armour. It was an absolute disaster; my rams got killed by arrows from the civic centre. All of my pikemen died after marching past a few defence towers. Enemy spearmen are taken out in 1 hit, and archers pose a serious threat to any siege. So this is a very very bad idea. 

Please don't change anything. 

  • Like 1
  • Thanks 1
  • Haha 1
Link to comment
Share on other sites

  On 23/05/2021 at 7:13 PM, wowgetoffyourcellphone said:

ctrl-c ctrl-v

Expand  

That is just a sign of a stable mind!

 

  On 24/05/2021 at 5:46 PM, hyperion said:

The real issue with changing HP is screwing over the current healing rates. Tripple HP meant it takes trice as long to get HP back to full.

Expand  

I think this is a fair point.

  • Like 2
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...