Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 ... 7 8 [9] 10 11 ... 19

Author Topic: Dwarven Research: A Comparison Study on the Effectiveness of Bolts vs Armors  (Read 179261 times)

HiEv

  • Bay Watcher
  • Denizen of Counter-Earth
    • View Profile

My current working hypothesis is that it is indeed the [STRUCTURAL_ELASTICITY_CHAIN_ALL] tag that grants projectile protection. More specifically, I believe this tag grants the convert-EDGE-into-BLUNT-damage ability to the armor it is added to. As a result, bolts made of equal or "worse" materials than the chain mail bruise and fracture instead of tearing. This protects against 3 death conditions: Throat tear, Heart tear, and half of the Spinal tears. From what I've heard (but not tested), chain mail does not protect against blunt damage, so that same tag when added could possibly also have the effect of erasing any blunt damage protection that armor might have had.

This hypothesis leads to a second question for me.  Does this mean that it would be better to wear chain mail outside of plate, if that was possible?

Basically, if the chain converts edge to blunt, but does not protect against blunt damage, could you then have a plate layer under the chain which would absorb the now-blunt damage?

I guess this depends on whether Toady tests conditions on each layer sequentially, and if the conditions are modified by the previous layer(s).  If so, then this might mean that wearing chain (with the "STRUCTURAL_ELASTICITY_CHAIN_ALL" tag) outside of plate is the best armor setup in terms of protecting from all types of damage.

(It doesn't have to be plate under the mail, it's just the first thing that came to mind and it's already in the game.  If you want something more traditional, something like a gambeson could be worn under the chain to absorb the blunt damage instead.  There isn't really an in-game equivalent for this already though.)
Logged
The difference between intelligence and stupidity is that intelligence has its limits.

Pirate Bob

  • Bay Watcher
  • [ETHIC: TORTURE_FOR_SCIENCE: ACCEPTABLE]
    • View Profile

My current working hypothesis is that it is indeed the [STRUCTURAL_ELASTICITY_CHAIN_ALL] tag that grants projectile protection. More specifically, I believe this tag grants the convert-EDGE-into-BLUNT-damage ability to the armor it is added to. As a result, bolts made of equal or "worse" materials than the chain mail bruise and fracture instead of tearing. This protects against 3 death conditions: Throat tear, Heart tear, and half of the Spinal tears. From what I've heard (but not tested), chain mail does not protect against blunt damage, so that same tag when added could possibly also have the effect of erasing any blunt damage protection that armor might have had.

This hypothesis leads to a second question for me.  Does this mean that it would be better to wear chain mail outside of plate, if that was possible?

Basically, if the chain converts edge to blunt, but does not protect against blunt damage, could you then have a plate layer under the chain which would absorb the now-blunt damage?

I guess this depends on whether Toady tests conditions on each layer sequentially, and if the conditions are modified by the previous layer(s).  If so, then this might mean that wearing chain (with the "STRUCTURAL_ELASTICITY_CHAIN_ALL" tag) outside of plate is the best armor setup in terms of protecting from all types of damage.

(It doesn't have to be plate under the mail, it's just the first thing that came to mind and it's already in the game.  If you want something more traditional, something like a gambeson could be worn under the chain to absorb the blunt damage instead.  There isn't really an in-game equivalent for this already though.)

I tested this a while back, and at least in the arena it doesn't matter which order you put on plate/chain armor.

Urist Da Vinci

  • Bay Watcher
  • [NATURAL_SKILL: ENGINEER:4]
    • View Profile

Slightly off topic, but as a result of some of the earlier testing I have found that the contact area of items and body parts, unless defined in an attack, is given by the following:

CONTACT_AREA = (SIZE/10)^(2/3)

This gives the following, as an example:
Code: [Select]
Thing contact area
Dwarf fist 19
Dwarf foot 25
Dwarf scratch 7
Dwarf bite 7
Dwarf upper body 100
Dwarf upper leg 63
Dwarf upper arm 34
Dwarf hand 18
Dwarf foot 24
Dwarf head 43
Dwarf finger 2

Also a bowl has a contact area of 4, while a minecart has a contact area of 250.

Compare this to war hammers having a contact area of 10, or maces 20. I'd guess that the lower of the weapon's contact area and the body part being hit's contact area is used in the combat calcs.

Zivilin

  • Bay Watcher
  • Dwarven Science Division
    • View Profile

I guess this depends on whether Toady tests conditions on each layer sequentially, and if the conditions are modified by the previous layer(s).  If so, then this might mean that wearing chain (with the "STRUCTURAL_ELASTICITY_CHAIN_ALL" tag) outside of plate is the best armor setup in terms of protecting from all types of damage.

Truthfully, I wasn't even aware that it was possible to put on clothing/armor out of the Under -> Over -> Armor -> Cover sequence. But I understand what You're saying - it would be amazing if there was a... [PADDING] tag, and padded clothes could be used in conjunction with metal armor to increase protection against bludgeoning damage. For the moment I suppose no such system is implemented. For one, the mail-over-plate doesn't make a difference, as tested by Pirate Bob. For another, I tested the helm + 6 leather hoods setup mentioned on the wiki page on Armor, and it performed exactly the same as using a single helm. Then again, I used crossbows bolts for testing, so maybe a metal helm with leather padding helps against war hammers? Worth a try, I suppose.

Slightly off topic, but as a result of some of the earlier testing I have found that the contact area of items and body parts, unless defined in an attack, is given by the following:

CONTACT_AREA = (SIZE/10)^(2/3)

Information of this type is hard to find sometimes, so I at least am glad to see it, even slightly off-topic. How do You obtain an item's Contact Area? Say I have a... granite block - what is the procedure to find out it's Contact Area?
Logged
No signature

Pirate Bob

  • Bay Watcher
  • [ETHIC: TORTURE_FOR_SCIENCE: ACCEPTABLE]
    • View Profile

Finally, here are my results from varying [SHOOT_FORCE] on crossbows.  I'm very sorry this took so much longer - I was totally confused by the results, and thought that I must have done something wrong (and I've also been too busy to figure out what was going on).  After seeing results from Urist da Vinci and Zivilin, I think I now understand.

I strongly believe that there are at least two types of deflections which can occur.  The type investigated by Urist/Zivilin I would equate roughly to an inelastic collision which destroys the projectile.  If the [IMPACT_YIELD] of the projectile is less than 3.3970 times the [SOLID_DENSITY] of the armor (using vanilla values for all other parameters), then it deflects (yes, I tested it to 4 decimal places - I was sick and bored...).  I confirmed that deflection of copper bolts with modified [IMPACT_YIELD] off steel armor occurs for [IMPACT_YIELD] greater than 26666
I believe this type of deflection occurs if the stiffness of the armor (I don't yet know which DF parameters control this) is not high enough to cause an elastic collision (which is what I assumed all deflections would be).  Rather, if the bolt material is fragile/squishy enough, the bolt is destroyed/deformed, absorbing all the energy of the collision.  In an inelastic collision, some small piece of the armor will be pushed in some distance.  Assuming the armor's stiffness is low enough that it can't provide significant resistance, then the pressure required to push the armor will be proportional to its density.  If the [IMPACT_YIELD] of the bolt is not high enough to withstand this pressure, it is destroyed.  It's a little odd that this is an all-or-nothing thing, but I guess to first order it makes sense.

My results also seem to show that if the momentum (or maybe energy? - it should be momentum based on real-world physics, but who knows...) of an incoming bolt is low enough, then it can deflect off of armor.  For these tests, I used rows of shooters 2 tiles away from rows of targets, with nothing blocking the shooters from targeting any dwarves in the target row (not ideal, but I didn't think of this at the time).  The targets wore helms, breastplates, greaves, 2 gauntlets and 2 low boots of the appropriate material.  I wanted to test deflection off rigid armor only, so I did not include chain mail.  If anything looks "out of place", please let me know - I ran a lot of tests (this is actually only a fraction), so it's possible I might have mixed up some of the data. 
Spoiler: Shoot Force 25 (click to show/hide)
Spoiler: Shoot Force 26 (click to show/hide)
Edit: added in Shoot Force 35 without chain mail. 
Spoiler: Shoot Force 35 (click to show/hide)
The [SHOOT_FORCE:35] data is actually somewhat interesting, as it seems to be right at the point where wood starts penetrating metal, and silver penetrates candy.

See two posts down for data with chain mail and discussion...
« Last Edit: October 19, 2012, 06:08:34 am by Pirate Bob »
Logged

misko27

  • Bay Watcher
  • Lawful Neutral; Prophet of Pestilence
    • View Profile

[NOTE: NOT YET COMPLETE - this will be a largish post, and it is not finished - I am still working on inputting all the data tables.  I wanted to upload what I have so I don't lose it...]

Finally, here are my results from varying [SHOOT_FORCE] on crossbows.  I'm very sorry this took so much longer - I was totally confused by the results, and thought that I must have done something wrong (and I've also been too busy to figure out what was going on).  After seeing results from Urist da Vinci and Zivilin, I think I now understand.

I strongly believe that there are at least two types of deflections which can occur.  The type investigated by Urist/Zivilin I would equate roughly to an inelastic collision which destroys the projectile.  If the [IMPACT_YIELD] of the projectile is less than 3.3970 times the [SOLID_DENSITY] of the armor (using vanilla values for all other parameters), then it deflects (yes, I tested it to 4 decimal places - I was sick and bored...).  I confirmed that deflection of copper bolts with modified [IMPACT_YIELD] off steel armor occurs for [IMPACT_YIELD] greater than 26666


Spoiler: Shoot Force 26 (click to show/hide)
For some reason, It occured to me that citations in the Dwarven universe are alot easier, considering everyone is named urist.
Logged
The Age of Man is over. It is the Fire's turn now

Zivilin

  • Bay Watcher
  • Dwarven Science Division
    • View Profile

I strongly believe that there are at least two types of deflections which can occur.

Agreed. To be more specific, there is one type of deflection, but different mechanisms that cause it, which may model different types of interactions - like a completely inelastic collision. The Wooden bolt deflections off of metal armors can be attributed to IMPACT_YIELD deflections (Wood has a default IMPACT_YIELD of 10000). But Wooden bolts deflecting off of candy armor are obviously a different mechanism - for one thing, they're not 0% or 100%, but in between.

I'll be looking forward to the rest of the post. I do have a question though: what armor are You using in the tests? I don;t think it is full plate+mail, because I see that You have plenty of deaths happening in candy vs candy, which only happened previously in Your plate-mail only tests. Full plate + Mail produces near 100% deflections in candy vs candy (and the hits are all to the facial features not covered my helms - like teeth).


For some reason, It occured to me that citations in the Dwarven universe are alot easier, considering everyone is named urist.

Seems to me that would be confusing as hell. And difficult to give credit where credit is due :P

Presentation ceremony for the dwarven science awards:

"And the Urist Prize for Magma Science goes to... URIST!"

<Everyone stands up and start approaching the podium>

<Everyone starts tantruming>

<Last Urist standing receives award>
Logged
No signature

Pirate Bob

  • Bay Watcher
  • [ETHIC: TORTURE_FOR_SCIENCE: ACCEPTABLE]
    • View Profile

Edit: Zivilin pointed out that my results show less death with candy vs. candy at Shoot Force 35 than with lower forces, among other anomalies.  I went back and checked, and both of the below results include chain mail shirts on top of breastplates, helms, greaves, gauntlets and low boots.  They therefore should not be compared directly with the lower force results.  I will try to retake these sets without chain mail if I get the chance. 
I believe that these deflections which occur at low [SHOOT_FORCE] may be elastic.  This would mean that they bounce off armor without changing speed or depositing any energy.  It would require that the armor material is stiff enough to cause the needed change in momentum without deforming.  I am not sure what DF material parameters determine this stiffness yet, but my next step will be to look at how deflection changes with material to try to figure this out. 

I strongly believe that there are at least two types of deflections which can occur.
Agreed. To be more specific, there is one type of deflection, but different mechanisms that cause it, which may model different types of interactions - like a completely inelastic collision. The Wooden bolt deflections off of metal armors can be attributed to IMPACT_YIELD deflections (Wood has a default IMPACT_YIELD of 10000). But Wooden bolts deflecting off of candy armor are obviously a different mechanism - for one thing, they're not 0% or 100%, but in between.
This is exactly what I was referring to.  I was totally lost at how candy could be the worst at deflecting wood, and yet the best at deflecting everything else.  It didn't occur to me that deflection could occur by more than one mechanism until I realized that the [IMPACT_YIELD] mechanism was clearly completely different from what I had observed.

Edit:  I went to run Shoot Force 35 without chain mail, and accidentally ran the script with chain mail again.  Here is the data for that run - hopefully it should be consistent with the previous run:
« Last Edit: October 18, 2012, 08:06:51 pm by Pirate Bob »
Logged

Urist Da Vinci

  • Bay Watcher
  • [NATURAL_SKILL: ENGINEER:4]
    • View Profile

...
Slightly off topic, but as a result of some of the earlier testing I have found that the contact area of items and body parts, unless defined in an attack, is given by the following:

CONTACT_AREA = (SIZE/10)^(2/3)

Information of this type is hard to find sometimes, so I at least am glad to see it, even slightly off-topic. How do You obtain an item's Contact Area? Say I have a... granite block - what is the procedure to find out it's Contact Area?

From http://dwarffortresswiki.org/index.php/Weight I see that blocks are volume 600.

Note that the weight formula is "Weight = Density * Volume /100,000", and that DF weight is equivalent to kilograms, and that DF density is given in kg/m3. Item sizes and creature body sizes are given in cubic centimeters (cm3). To convert a number from cm3 to m3, you divide it by 100^3=1,000,000. Therefore "Weight = Density * Size /1,000,000" and "Volume = Size/10".

So the contact area of the block should be 600^(2/3) = 71 (or close to that, depending on how you round numbers).

Zivilin

  • Bay Watcher
  • Dwarven Science Division
    • View Profile

If anything looks "out of place", please let me know - I ran a lot of tests (this is actually only a fraction), so it's possible I might have mixed up some of the data. 

Good job on getting all that data!

I was surprised that a SHOOT_FORCE of 26 causes deaths in candy vs candy (I'm not sure how it causes them, since the table also states that there is 100% of deflections), whilst INCREASING the SHOOT_FORCE to 35 leads to absolutely no deaths not only in candy vs candy, but also bronze, copper, iron and steel vs candy. So increasing the SHOOT_FORCE... increased deflections? Increasing it further to 42 seemed to once more cause deaths in bronze, copper, iron and steel vs candy, but still no deaths in candy vs candy.

From http://dwarffortresswiki.org/index.php/Weight I see that blocks are volume 600.

Note that the weight formula is "Weight = Density * Volume /100,000", and that DF weight is equivalent to kilograms, and that DF density is given in kg/m3. Item sizes and creature body sizes are given in cubic centimeters (cm3). To convert a number from cm3 to m3, you divide it by 100^3=1,000,000. Therefore "Weight = Density * Size /1,000,000" and "Volume = Size/10".

So the contact area of the block should be 600^(2/3) = 71 (or close to that, depending on how you round numbers).

Please excuse me if I wasn't clear enough - I more or less know how the weight and volume calculations work. What I was curious about was how do You verify what the Contact Area of an object really is? E.g. the weight formula can be easily verified - the weight of any object can be checked by opening the description of that object in-game, and then it can be compared with the results of the formula. Is there any such way to verify that the Contact Area of a block is really around 71?
Logged
No signature

Pirate Bob

  • Bay Watcher
  • [ETHIC: TORTURE_FOR_SCIENCE: ACCEPTABLE]
    • View Profile

I was surprised that a SHOOT_FORCE of 26 causes deaths in candy vs candy (I'm not sure how it causes them, since the table also states that there is 100% of deflections), whilst INCREASING the SHOOT_FORCE to 35 leads to absolutely no deaths not only in candy vs candy, but also bronze, copper, iron and steel vs candy. So increasing the SHOOT_FORCE... increased deflections? Increasing it further to 42 seemed to once more cause deaths in bronze, copper, iron and steel vs candy, but still no deaths in candy vs candy.
Thanks for catching this!  As I feared, I mixed up what conditions I used for these data sets.  I went back and looked at the logs for the SHOOT_FORCE 35 and 42 tests and found that, on top of breastplates, greaves, gauntlets, helms and low boots, they also have chain mail shirts.  I confirmed that the lower force tests did not have chain mail.  I will try to redo the higher force tests without chain mail if I get the chance.

In the mean time, I do have results for [SHOOT_FORCE:26] with chain mail on top of breastplates, greaves, gauntlets, helms and low boots:
As you can see, this makes much more sense when compared with higher forces, as there are no deaths at all for dwarves wearing candy, and steel also provides full protection against most metals.

I also have results from slade in this set, but slade is heavy enough that it causes jams, which messes up my analysis script.  The script finds hits against armor by looking for the word "through", and the phrase "jamming the X through the X" causes it to mess up.  I haven't yet figured out a way around this (and previously broke the script when trying - this was a big part of the delay).  It is possible that platinum also causes jams rarely, but I didn't find any when searching.  I noticed that slade was causing jams because the results for naked dwarves show hits through armor, and I have never seen this in any other data.

Ruhn

  • Bay Watcher
  • Adept Dwarf
    • View Profile

I just skimmed the entire thread and am quite impressed with this research project.

I was wondering how these would factor into the test?
Bone armor
Wooden armor
Candy clothing - by itself, and in conjunction with metal armor.

Trouserman

  • Bay Watcher
    • View Profile

I also have results from slade in this set, but slade is heavy enough that it causes jams, which messes up my analysis script.  The script finds hits against armor by looking for the word "through", and the phrase "jamming the X through the X" causes it to mess up.  I haven't yet figured out a way around this (and previously broke the script when trying - this was a big part of the delay).

I don't know how your script is structured, but if you're having difficulty modifying it to handle jams, perhaps you could instead preprocess the log by filtering out the jams.
Logged

Pirate Bob

  • Bay Watcher
  • [ETHIC: TORTURE_FOR_SCIENCE: ACCEPTABLE]
    • View Profile

I don't know how your script is structured, but if you're having difficulty modifying it to handle jams, perhaps you could instead preprocess the log by filtering out the jams.
My script is written in perl, so I believe it should be relatively easy to have it recognize the phrase "...through the [small/large/etc] [material]..." instead of just "through" to determine hits.  This should prevent confusion from jams or anything else that I haven't thought of.  I messed this up on my previous attempt (and caused the script not to work at all), but I hope to have another go this weekend.  If it doesn't work I might try filtering out jams, as you suggested.

I noticed some more strangeness with [SHOOT_FORCE:35] data.  For some reason, there are less deflections against steel for [SHOOT_FORCE:35] than [SHOOT_FORCE:26].  I reran the [SHOOT_FORCE:26] set without chain mail, with the same conditions I just used to make sure there isn't some other difference besides [SHOOT_FORCE]
Spoiler: Shoot Force 26 #2 (click to show/hide)
It appears that the difference is real, and there actually are less deflections off steel at Force 35 than Force 26.  I feel like I'm being dyslexic or something, as I am totally confused as to how this could possibly be. 

I do have one thought - maybe at lower force the targets take longer to kill after they have fallen over.  I haven't quantified this, but I've noticed there seem to be a higher percentage of deflections later in the simulation, when more dorfs are lying on the ground, and there is a higher chance of shots coming from large distance (as shooters far up the row will be shooting at the few remaining targets).  I will see if this results is reproduced for iron vs. steel using Zivilin's 1v1 cell arrangement, to rule out the distance factor.  If this doesn't work, I will try to map out the results for iron vs. steel carefully over the range between Force 25 and 40, to see if that gives any insights.

I'd guess that the lower of the weapon's contact area and the body part being hit's contact area is used in the combat calcs.
It's also possible that for this or some other reason deflection depends on body part.  Given that "inelastic" deflection was found to be all-or-nothing, it is possible that "elastic" deflection against each body part is also binary.  This would cause deflection% to change in discrete steps as projectile momentum increases.  I'd also expect that the likelihood of each body part to get hit changes if the dorf is on the ground, so this suggests a way that dorfs falling over could change deflections. 

Furthermore, I've noticed that I get a few percent differences in deflections when re-running the same data set.  Each set contains over 10,000 hits, so if all hits are equivalent and independent, the error should be less than 1 percent.  If instead deflections depend on target stance or distance, then the deflections would be correlated depending on how quickly the dorf fall over etc, and the variance between data sets would be significantly larger.

I just skimmed the entire thread and am quite impressed with this research project.

I was wondering how these would factor into the test?
Bone armor
Wooden armor
Candy clothing - by itself, and in conjunction with metal armor.
I'm glad you like our project!  There are two things which prevent me from immediately adding these armors:
1) They are not available in the arena without modding.  I'm not sure I know the proper way to add them, and I don't want to mess it up.
2) It already takes me all night to run the set I use currently.
I would like to try such things eventually though.  If you know the proper way to add them, I'd be very interested.

Zivilin

  • Bay Watcher
  • Dwarven Science Division
    • View Profile

Furthermore, I've noticed that I get a few percent differences in deflections when re-running the same data set.  Each set contains over 10,000 hits, so if all hits are equivalent and independent, the error should be less than 1 percent.  If instead deflections depend on target stance or distance, then the deflections would be correlated depending on how quickly the dorf fall over etc, and the variance between data sets would be significantly larger.

I have some advice on the topic of obtaining objective data. I redid many of my experiments a few times in an attempt to identify parameters which can add unnecessary interference to the data. Using my limited modding abilities, I implemented all of my observations into a creature template, which I called the arena dwarf:

Spoiler: Arena Dwarf (click to show/hide)

Most of it is based on the standard dwarf code. The notable exceptions are as follows:
  • [NOPAIN] and [NOEXERT] tags added - I verified in melee tests that being unconscious not only causes enemies to automatically target the head, but also causes hits to be... lets say "heavier". After a hammerdwarf experiment, parsed the gamelog to show only headshots and skimmed through the results.  I noticed that the first 10% of the parsed gamelog contained many counts of the hammers bruising the fat of the head. However, the following 90% contained none at all, only skull shatterings and brain jams. I assume that in the beginning of the test, many head shots were performed against conscious individuals, which have some sort of ability to mitigate damage even when a hit lands (perhaps the fighter skill?). Since hammers are pretty strong as a suppression weapon (quickly causing pain and loss of consciousness), for almost the whole duration of the test the subjects were unconscious, and no... skill roll for damage mitigation could be performed. Note 1: This was only confirmed in the case of melee hammerdwarves. Note 2: If You are testing suppression (how quickly an enemy is knocked unconscious) these tags should obviously be removed
  • All attack definitions removed - again, this is more melee oriented. Thanks to this arena dwarves cannot punch, kick, scratch or bite. Unfortunately this does not eliminate wrestling or pushing
  • Skill gain reduced - I think this is an absolutely critical modification - performed by adding [SKILL_RATES:1:8:8:16], it reduces skill gain rates to 1% of the original value. So if You start out the test with Competent Marskdwarves, You'll end it with Competent Marksdwarves, instead of, say, Proficient ones
  • Average size enforced - to be honest, I am not certain whether this changes actual dwarf size or only their descriptions, but I modded the size descriptors so that all arena dwarves are always average size

Also, I remember You once mentioned that Your macros sometimes get messed up during operation, with no apparent reason. I also had this problem, and I recently identified the reason - any mouse movement (not clicking - just movement itself). Now I unplug the mouse when running macros and I haven't had a mishap since.

There are two things which prevent me from immediately adding these armors:
1) They are not available in the arena without modding.  I'm not sure I know the proper way to add them, and I don't want to mess it up.
2) It already takes me all night to run the set I use currently.
I would like to try such things eventually though.  If you know the proper way to add them, I'd be very interested.

The only thing which is not available in arena mode without modding is bone items - wood armor and candy clothes are readily avialable. You can use the fake bone template I introduced in the first post of this thread. Adding it to the inorganic_metal.txt file should allow bone weapons/armors (admittedly, I'm not certain how close fake bone is to real bone, but I am using the parameters for bone from the material_template_default.txt file, so I assume it is pretty close)
Logged
No signature
Pages: 1 ... 7 8 [9] 10 11 ... 19