FeXoR Posted March 7, 2013 Report Share Posted March 7, 2013 (edited) I like the current system It's straightforward, and doesn't lead to counter-intuitive cases like a wooden shield absorbing 50% of the blast from a nuclear bomb.In reality mechanically "dealt damage" (so not considering lasers or nuclear bombs) and the "reduction" of it by other material depends on the force divided through the area it is focused on and the absorbing materials hardiness to be deformed. So for weapons of the 0 A.D. time-frame that would mean piercing weapons might deal less damage to a body but get absorbed much less by armor also. It indeed extremely depends on the angle an attack hits because the absorbing material might be a lot thicker in that direction than it's thickness normal to it's surface. Such complex considerations might be helpful for RPG/H&S games but due to a lot harder balancing it seams unsuitable for RTS games to me.Besides: It is hardly intuitive that the damage dealt to a catapult is considered when hitting the catapults wooden frame (like it is considered for armor values as it seams). I pretty much doubt that (non-fire) arrows where used to destroy the catapult but to kill the operating crew. So the armor values of catapults against piercing attacks are much to high IMO. On the other hand an axeman could disable a catapult with a single blow by cutting an essential rope. So non-tank mechanical units are quite vulnerable to attacks - that's why they where heavily guarded. Edited March 7, 2013 by FeXoR Quote Link to comment Share on other sites More sharing options...
Pedro Falcão Posted March 7, 2013 Report Share Posted March 7, 2013 Okay, you guys convinced me. Of course there is the difficulty about the method of calculation, but it's not like any player needs to know how it's done, i see now. And if the player ever wants to know how it's done, it'll probably be for complex calculations about if this or that upgrade is better and this kind of players generally have high level maths.And yes, Warcraft 3 used it, but it didn't use "upgrade 10% of this armor", it was more like "add 1 armor point to every unit with this kind of armor"And zoot, that is why the attack itself had a damage value range, instead of the absolute value, in wc3. And the percentage simulates the average protection of the armor. Quote Link to comment Share on other sites More sharing options...
FeXoR Posted March 7, 2013 Report Share Posted March 7, 2013 (edited) And yes, Warcraft 3 used it, but it didn't use "upgrade 10% of this armor", it was more like "add 1 armor point to every unit with this kind of armor"What should "upgrade 10% of this armor" mean? That's what this discussion is about.In WC3 "add 1 armor point to every unit with this kind of armor" exactly means "reduce the damage compared to the damage done before the upgrade by 8% (to every unit with this kind of armor)" (in our example it would be 10%). Edited March 7, 2013 by FeXoR Quote Link to comment Share on other sites More sharing options...
zoot Posted March 7, 2013 Report Share Posted March 7, 2013 And zoot, that is why the attack itself had a damage value range, instead of the absolute value, in wc3. And the percentage simulates the average protection of the armor.Seems like substituting one simulation for another - the current armor value is also just a "simulated average". Quote Link to comment Share on other sites More sharing options...
FeXoR Posted March 7, 2013 Report Share Posted March 7, 2013 (edited) Sry, zoot, forgot to point out that in general you are right: Armor is more like subtraction than multiplying (with a number smaller than 1) the force of an attack (in context of games referred to as "damage"). How balanced a game is on the other side mainly effects its "playability" IMO and with it the amount of fun playing it grants. So making it "easy" to balance to me is equivalent to making it more fun. I like fun games ^^.I don't have any objections though if anyone wrote a physics engine and abandon all the game rules that got obsolete with it! I just don't think that will happen...(On the second thought I can't remember a game based on a physics engine - e.g. total annihilation - that was as much and as long fun to play as games with a more "synthetic" ruleset - like Starcraft, Warcraft 3 or Age of Empires 2: AoK/AoC) Edited March 7, 2013 by FeXoR Quote Link to comment Share on other sites More sharing options...
Mythos_Ruler Posted March 7, 2013 Report Share Posted March 7, 2013 I think showing the armor value (that might seam arbitrarily to some PPL) and the percentage damage reduction would be fine for most PPL like:Armor (Damage reduction)1 (10%)2 (19%)3 (27%)4 (34%)5 (41%)...Only showing the armor value in the GUI and the percentage damage reduction in the tooltip/mouseover and adding an explanation to the manual would do IMO.Note that Warcraft 3 was and is a very popular game and uses that as well. Most players are not at all interested how a game works in sense of game rules and are just happy when they works fine. They don't notice/care "why" it is fine in most cases IMO (sorry if I do the gamers wrong but that's my experience).So focusing on good game rules while making the GUI as informative as possible and explaining them to interested PPL in the manual seams the best way to go for me. The game rules should not depend on the average understanding of math but on the fun PPL have in average playing this game. Most will find out by try how the game "works" anyway rather then calculating everything before actually playing.I like how it is presented here. Perhaps then, we present the armour techs under the terminology of "levels"? So, even though the game is using percentages, it is presented to the player as:Pierce Armor Level 1 (10%)Pierce Armor Level 2 (19%)etc.I could definitely support something like this. My main concern was how the exponential system would be presented to the player, and presenting it something like above would pretty much solve everything for me. Quote Link to comment Share on other sites More sharing options...
Pureon Posted March 7, 2013 Report Share Posted March 7, 2013 So we'd be limited to 9 levels of armor? Quote Link to comment Share on other sites More sharing options...
zoot Posted March 7, 2013 Report Share Posted March 7, 2013 (edited) So we'd be limited to 9 levels of armor?As I understand it there would be diminishing returns, but armor level 50 would be essentially the same as armor level 9000. Edited March 7, 2013 by zoot Quote Link to comment Share on other sites More sharing options...
quantumstate Posted March 7, 2013 Author Report Share Posted March 7, 2013 So we'd be limited to 9 levels of armor?There is no need to stick with integers or we can switch to a 0.95 base to provide more granularity. I think we should just show the percentage in the UI.As I understand it there would be diminishing returns, but armor level 50 would be essentially the same as armor level 9000.No, the return remains constant. With 99% armour you take 10 ties less damage than with 90% armour. Each armour point reduces the damage taken by a fixed multiplier. Level 50 would be silly levels of armour strength so enemies would need to deal 200 damage for every hit point reduction. level 9000 armour is absolutely ridiculous needing 10^409 damage for every hit point reduction.Unless by essentially the same you meant it basically becomes impenetrable beyond a certain point. Quote Link to comment Share on other sites More sharing options...
Pureon Posted March 7, 2013 Report Share Posted March 7, 2013 There is no need to stick with integers or we can switch to a 0.95 base to provide more granularity. I think we should just show the percentage in the UI.That sounds reasonable. I have no clear preference at the moment. Quote Link to comment Share on other sites More sharing options...
FeXoR Posted March 8, 2013 Report Share Posted March 8, 2013 (edited) That's another very nice thing with exponential armor increase: There is no limit in armor "level"! And it always reduced the same amount of damage compared to the last level no matter how high it is (of cause only if the accuracy of the calculation allows it. Even integers would give a reasonable accuracy until armor 25 (93%). Changing to float values would be good though).Level 50 would be silly levels of armour strength so enemies would need to deal 200 damage for every hit point reduction. level 9000 armour is absolutely ridiculous needing 10^409 damage for every hit point reduction.That's not necessarily true. If damage scales the same way per upgrade this would work too. Just the hitpoints would look poor compared to the extreme damage that would be dealt then. Still units would need the same amount of hits to kill each other due to the extreme damage reduction on the other hand. Edited March 8, 2013 by FeXoR Quote Link to comment Share on other sites More sharing options...
zoot Posted March 8, 2013 Report Share Posted March 8, 2013 (edited) No, the return remains constant.Perhaps I'm misunderstanding, but using FeXoR's suggested formula:damagereduction(armor) = round(100 * (1 - pow(0.9, armor)))If we translate to JS and plug in the numbers:damagereduction(50) = Math.round(100 * (1 - Math.pow(0.9, 50))) = 99 (link)damagereduction(9000) = Math.round(100 * (1 - Math.pow(0.9, 9000))) = 100 (link)Or if we use armor level 51:damagereduction(51) = Math.round(100 * (1 - Math.pow(0.9, 51))) = 100 (link)100% damage reduction for armor level 51 versus 100% damage reduction for armor level 9000 is what I mean by "essentially the same". Of course one can always discuss whether more than 50 levels are needed, but it's a valid point that there is a limit. Edited March 8, 2013 by zoot Quote Link to comment Share on other sites More sharing options...
FeXoR Posted March 8, 2013 Report Share Posted March 8, 2013 (edited) zoot, it's the math.round that does that. As said in the last post integers (for percentage damage reduction) give only sane values up to armor 25 or so. If the calculated damage reduction is not rounded but changed to float, however, it will work much further (about 5 times as much armor per additional decimal precision so 32 bit float values would allow 2M armor [5 ^((2^32)^0.1) ~= 2649998]).Armor 101 reduces the damage compared with armor 100 by the same amount than armor 1 would compared to armor 0 - the unit gets 10% less damage:Armor 0: 0.9^0 = 1Armor 1: 0.9^1 = 0.9Compare armor 1 to armor 0: 0.9 / 1 = 0.9 <- gets 10% less damage than before.Armor 10: 0.9^10 = 0,3486784401Armor 11: 0.9^11 = 0,31381059609Compare armor 11 to armor 10: 0,31381059609 / 0,3486784401 = 0.9 <- gets 10% less damage than before (Though the % damage reduction only changes by 3.5 percent points but that's exactly the idea)And it will be the same for armor 101 compared to 100. Edited March 8, 2013 by FeXoR Quote Link to comment Share on other sites More sharing options...
Pureon Posted March 8, 2013 Report Share Posted March 8, 2013 We don't necessarily need 50 levels of armor - even 9 will do in most cases won't it? Quote Link to comment Share on other sites More sharing options...
Pedro Falcão Posted March 8, 2013 Report Share Posted March 8, 2013 Even in Scenarios/mods, i don't think common folk will go past armor lvl 20, but since there is always some crazy ppl, adding support for them won't hurt. Quote Link to comment Share on other sites More sharing options...
LordGood Posted March 17, 2013 Report Share Posted March 17, 2013 I have a crazy ideawhy not have the percentile be a hit/miss chance instead of percentage damage taken.seems kind of silly for some armored soldier to get run through with a spear and take 50% damage from it. I feel like a chance between all or nothing would better reflect a realistic combat mechanicI feel like this sort of thing would work well with formations too where it's blocking oncoming attacks but is vulnerable to rear attacks 1 Quote Link to comment Share on other sites More sharing options...
alpha123 Posted March 17, 2013 Report Share Posted March 17, 2013 I have a crazy ideawhy not have the percentile be a hit/miss chance instead of percentage damage taken.seems kind of silly for some armored soldier to get run through with a spear and take 50% damage from it. I feel like a chance between all or nothing would better reflect a realistic combat mechanicI feel like this sort of thing would work well with formations too where it's blocking oncoming attacks but is vulnerable to rear attacksSee http://www.wildfiregames.com/forum/index.php?showtopic=14516I'm also in favor of this idea, but perhaps it belongs in Part 2 so we can get the details sorted out a bit better. Also, it really depends on proper formations and perhaps larger numbers of units than 300. Quote Link to comment Share on other sites More sharing options...
alpha123 Posted April 9, 2013 Report Share Posted April 9, 2013 I have a patch for exponential armor at #1908. It implements the formula and makes a couple of GUI changes to show both the armor level and the percent reduction. It does not change any unit stats though, so if you do test it, expect some of the stats to be a little weird (mostly that everything has slightly higher armor than it should). Quote Link to comment Share on other sites More sharing options...
FeXoR Posted June 16, 2013 Report Share Posted June 16, 2013 (edited) alpha123: Thanks for this patch!Any drawback in performance to speak of?Now that exponential armor is in I'd recommend to do the same for damage upgrades.Damage would be then calculated like: BaseDamage * 1.2 ^ numberOfDamageUpgrades(Again 1.2 is just an example and could be any number greater than 1. It should just be slightly greater though)This is a lot less needed then the armor upgrade change but has the following advantages:- Balancing will be a lot easier because everything scales independent on the number of upgrades- An upgrade effects all units (this upgrade applies to) the same. (This only is true if floats would be used for damage and health but using floats only for the calculation of health loss while base damage and health stay integers would be fine as well)What to keep in mind:- It still might be good to scale up base damage and health by a factor of 10. That way we'd get at least another decimal point precision (while keeping base damage and health as integers). That is not really needed though as you can see below.- I chose 1.2 as a basis because a damage upgrade is than stronger than an armor upgrade (To be equally strong it would have to be 1/0.9 = 1.11...). That way battles become more rapid with the game time (after 5 damage and armor upgrades combat will become about 1,5 times as fast/deadly). As is now (absolute damage upgrades and exponential armor upgrades) battles will take longer later in game.- Although base damage could stay integer it might be good to show the damage in the GUI with 2 decimal point numbers. In the bottom center of the screen (with one unit type selected) just 1 value could be shown e.g. if a unit type got 7 base damage and 1 armor upgrade effects this unit type it could say "8.4 Damage". In the mouse-over a simplified calculation (with base damage + damage gained by upgrades) could be shown like "7 + 1.4 Damage" while in the manual the exact formula could be mentioned with an example for a unit type (or for all units a detailed description with a table or the calculation for all possible upgrades and the resulting damage e.g. "1 Damage Upgrade: 7 * 1.2^1 = 7 + 1.4 = 8.4, 2 Damage Upgrades: 7 * 1.2 ^ 2 = 7 + 1.4 + 1.68 = 10.08 and so on).For me a main reason why I'd like to have this is because I like consistency Edited June 17, 2013 by FeXoR Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.