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

12 minutes ago, 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.

We have to look when the patch was committed.

Link to comment
Share on other sites

1 hour ago, Stan` said:

Make a patch ?

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.

3 minutes ago, Player of 0AD said:

We should just leave it as it is

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.

11 minutes ago, Lion.Kanzen said:

We have to look when the patch was committed.

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

1 hour ago, 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.

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

3 hours ago, 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.

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

7 hours ago, 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.)

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

2 hours ago, LetswaveaBook said:
9 hours ago, 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.)

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.

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

1 hour ago, Player of 0AD said:

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

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

2 hours ago, 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

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?

51 minutes ago, 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.

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

30 minutes ago, 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.

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

 

31 minutes ago, 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.

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

Link to comment
Share on other sites

15 minutes ago, hyperion said:

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

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.

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

Link to comment
Share on other sites

5 hours ago, 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.

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 9:13 PM, wowgetoffyourcellphone said:

ctrl-c ctrl-v

That is just a sign of a stable mind!

 

3 hours ago, 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.

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...