Bay 12 Games Forum

Please login or register.

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

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

Pirate Bob

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

i'm a bit late to this party, i know, but i've got a possible solution for your range:20 tests to be more reliable (ie the dwarf being shot shouldn't move at all). too bad i didn't see this back a ways, but just in case it helps...

you just need to have a nice, deep pit. unless things have changed (which i suppose you could test for at the same time), range downward for crossbows is treated the same as range in any other direction... so a dwarf that is 20 z-levels down should be at range 20.
The arena only has 8 z-levels, so that won't work.  Nice idea though.  We still haven't done this properly, as we need to have a situation where deflection rate etc. will actually change due to a moderate change in bolt velocity, which is not at all true with vanilla settings.  I will try this soon with maybe Shoot Force 60, iron vs. steel, or something similar.  When I get the time I want to test if/how a whole host of inputs change bolt performance.

I think Zivilin suggested a while back using a setup like this
Code: [Select]
S#________________#Twhere S is the shooter, # is a fortification, and T is the target.  If the whole thing is enclosed in walls, then the target can't move.  If the shooter is Great or better (or something like that) then they can shoot through both fortifications with no problems.  Even if they do miss sometimes, I think it is very unlikely that going through fortifications has any impact on bolt behavior once it strikes the target, and I record deflections etc. versus the number of hits, not the number of shots fired.

Edit:
I just ran iron bolts vs. steel armor with and set [IMPACT_YIELD:1085000] for iron.  I still get 100% deflections at Force=47 and 22% and Force=48, so IMPACT_YIELD does not seem to have an effect.  I DO strongly suspect that some other material paremeter(s) are responsible for the binary behavior at this force.  I'm going to go nuts and have my computer try to scan the whole force range for all materials today, and see how bad it does...
« Last Edit: October 25, 2012, 07:16:12 am by Pirate Bob »
Logged

Urist Da Vinci

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

...
Edit:
I just ran iron bolts vs. steel armor with and set [IMPACT_YIELD:1085000] for iron.  I still get 100% deflections at Force=47 and 22% and Force=48, so IMPACT_YIELD does not seem to have an effect.  I DO strongly suspect that some other material paremeter(s) are responsible for the binary behavior at this force.  I'm going to go nuts and have my computer try to scan the whole force range for all materials today, and see how bad it does.

OK, I took a step back and did some confirmation testing, and admit that you seem to be right and the bolt shoot_force (which in combo with shoot_maxvel only seems to alter the bolt's velocity) doesn't affect the impact yield equation.

I tried to answer the question "which parameters in the game produce changes in the impact yield equation?".

I fired a pair of copper bolts against iron armor, one of which should deflect (IY 26666), and the other which should hit (IY 26667):
Code: [Select]
If you increase       Effect
Armor density         both deflect
Armor thickness       both deflect on thicker armor piece, otherwise no change
Armor IY              no change
Armor Istrain         no change
Armor Ifrac           no change
Ammo size             both hit
Ammo contact area     both deflect sometimes
Ammo density          no change
Ammo SY               no change
Ammo Istrain          no change
Ammo Ifrac            no change
Actual bolt speed     no change
Bolt item vel         no change
Creature bodysize     no change
body part relsize     no change

ammo contact area x10 both deflect (using uniarmor)
ammo contact area x20 both deflect (using uniarmor)
ammo contact area x10 no change (using only mail)
ammo contact area x20 both deflect (using only mail)


So, the IY deflection mechanism is related to armor density, armor thickness, bolt size, bolt impact yield, bolt contact area, and the difference between mail and plate at larger contact areas.

It seems that, for larger contact areas, that mail doesn't protect against blunt damage. Mail must have some threshold that allows it to protect against point loads, but not against larger things that can change it's geometry. Furthermore, at very large contact areas the impact force is so distributed that the bolt deflects anyways on mail.

Because of the apparent armor thickness sensitivity (which might explain the 22% deflection), I propose the following to other researchers:

Use a set of armor that puts a uniform thickness of plate armor across the arena dwarf, such as this "uniarmor" which doesn't overlap:
Code: [Select]

[ITEM_ARMOR:ITEM_ARMOR_UNIPLATE]
[NAME:uniplate:uniplates]
[ARMORLEVEL:3]
[UBSTEP:1]
[SHAPED]
[LAYER:ARMOR]
[COVERAGE:100]
[LAYER_SIZE:20] alter this to change "thickness"
[LAYER_PERMIT:50]
[MATERIAL_SIZE:9]
[HARD]
[METAL]


[ITEM_HELM:ITEM_HELM_UNIHELM]
[NAME:unihelm:unihelms]
[ARMORLEVEL:1]
[METAL_ARMOR_LEVELS]
[SHAPED]
[LAYER:ARMOR]
[COVERAGE:100]
[LAYER_SIZE:20] alter this to change "thickness"
[LAYER_PERMIT:20]
[MATERIAL_SIZE:2]
[HARD]
[METAL]
[BARRED]
[SCALED]
[LEATHER]
[SHAPED]

[ITEM_PANTS:ITEM_PANTS_UNIGREAVES]
[NAME:unigreaves:unigreaves]
[ARMORLEVEL:3]
[LBSTEP:MAX]
[SHAPED]
[LAYER:ARMOR]
[COVERAGE:100]
[LAYER_SIZE:20] alter this to change "thickness"
[LAYER_PERMIT:30]
[MATERIAL_SIZE:6]
[METAL]
[BARRED]
[HARD]


[ITEM_SHOES:ITEM_SHOES_BOOTS_UNILOW]
[NAME:uni boot:uni boots]
[ARMORLEVEL:1]
[METAL_ARMOR_LEVELS]
[LAYER:OVER]
[COVERAGE:100]
[LAYER_SIZE:20] alter this to change "thickness"
[LAYER_PERMIT:15]
[MATERIAL_SIZE:1]
[METAL]
[LEATHER]
[HARD]

[ITEM_GLOVES:ITEM_GLOVES_UNIGAUNTLETS]
[NAME:unigauntlet:unigauntlets]
[ARMORLEVEL:2]
[UPSTEP:1]
[SHAPED]
[LAYER:ARMOR]
[COVERAGE:100]
[LAYER_SIZE:20] alter this to change "thickness"
[LAYER_PERMIT:15]
[MATERIAL_SIZE:2]
[SCALED]
[BARRED]
[METAL]
[HARD]

... Even though the velocity of an fired projectile is calculated using the floored weight value of the bolt, knockback calculations are done in floating-point. So it is possible to obtain a relative value of velocity of all the dwarves. I call it relative, because at the moment I have nothing to relate it to. So if a dwarf was propelled at the speed of 1829.65 (silver), then at this level of study I cannot really say what that means exactly. ...

See http://www.bay12forums.com/smf/index.php?topic=112831.msg3536975#msg3536975 for an explanation of the velocities common to minecarts and projectiles in the new system.

Velocities of falling, found in arena by stepping ahead single ticks of time while checking using my chkproj.lua code in dfhack:
Code: [Select]
time pos vel zlevel
0 0 0 0
1 0 -4900 0
2 -4900 -9800 0
3 -14700 -14700 0
4 -29400 -19600 0
5 -49000 -24500 0
6 -73500 -29400 0
7 47100 -34300 -1
8 12800 -39200 -1
9 -26400 -44100 -1
10 -70500 -49000 -1
11 30500 -53900 -2 (fell 1z and hit floor at the start of this tick)
12 -23400 -58800 -2
13 67800 -63700 -3 (fell 2z and hit floor at the start of this tick)
14 4100 -68600 -3
15 -64500 -73500 -3
16 12000 -78400 -4 (fell 3z and hit floor at the start of this tick)
17 -66400 -83300 -4
18 300 -88200 -5 (fell 4z and hit floor at the start of this tick)
19 62100 -93100 -6 (fell 5z and hit floor at the start of this tick)
20 -31000 -98000 -6
21 21000 -102900 -7 (fell 6z and hit floor at the start of this tick)
22 68100 -107800 -8 (fell 7z and hit floor at the start of this tick)
23 -39700 -112700 -8
24 0 1000 -8 (fell 8z and hit floor at the start of this tick)

Each tile is 2mx2mx3m LxWxH, and that translates to position dimensions of +/- 75000 height and +/- 50000 width. So 150000 tall and 100000 wide and long.

Bolt knockback produces dwarf velocities of 25*bolt_velocity/dwarf_weight, capped to be between 10000 and 50000. Horizontal velocities don't decay in midair.

A bronze colossus grand master wrestler can't throw anyone faster than 50000 anymore.

Minecart collisions can violate this "speed limit".

Pirate Bob

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

I will definitely use uniarmor for future tests.  That's a great idea!  I'm not sure if the data supports that layer size is responsible for the jumps in deflection %, as pants have 15, boot and breastplates 20, and helms 30 (so it doesn't look like 78% of the body all has the same thickness which is suddenly penetrated at [SHOOT_FORCE:47]), but having a uniform thickness and no overlaps will make the results much easier to interpret.  Maybe the 22% is the area which has overlapping armor, plus helms?  Who knows.  In any case, this armor will help sort it out.

Is it correct that adding [STRUCTURAL_ELASTICITY_CHAIN_ALL] to all pieces will turn this into uniform chain mail?  That would be nice to have eventually as well.

I noticed you didn't test [ARMORLEVEL].  Do you think that might make a difference?  I'm not really sure what it does.  I assume higher level is better, because breastplates have 3, while mail shirts have 2, but I don't really know, as helms have only 1.  Is this just a flag that says the item is armor, such that the number doesn't matter so long as it's greater than zero?

Now that I've got the hang of using scripts to edit the raws, I hope to test as many parameters as possible.  I just need to get my computer to actually run the scripts without stalling.  We'll see how things go today...

Urist Da Vinci

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

I will definitely use uniarmor for future tests.  That's a great idea!  I'm not sure if the data supports that layer size is responsible for the jumps in deflection %, as pants have 15, boot and breastplates 20, and helms 30 (so it doesn't look like 78% of the body all has the same thickness which is suddenly penetrated at [SHOOT_FORCE:47]), but having a uniform thickness and no overlaps will make the results much easier to interpret.  Maybe the 22% is the area which has overlapping armor, plus helms?  Who knows.  In any case, this armor will help sort it out.
...

Default thicknesses:
Breastplate 20
Gauntlets 20
Helm 30
Greaves 15
High boots 25
Mail shirt 15

So if you needed thickness 23+ or something to deflect, then only the feet, lower legs, and head would deflect. According to Zivilin's Vitruvian Dwarf, that is 1.38% + 1.36% + 7.13% + 7.15% + 5.28% = 22.3%

This assumes that each piece of armor gets in line and takes its turn with respect to deflecting an attack, similar to bad guys in a martial arts movie. Toady actually uses that method for heroes fighting armies in worldgen, so it's reasonable.

...
Is it correct that adding [STRUCTURAL_ELASTICITY_CHAIN_ALL] to all pieces will turn this into uniform chain mail?  That would be nice to have eventually as well.

I noticed you didn't test [ARMORLEVEL].  Do you think that might make a difference?  I'm not really sure what it does.  I assume higher level is better, because breastplates have 3, while mail shirts have 2, but I don't really know, as helms have only 1.  Is this just a flag that says the item is armor, such that the number doesn't matter so long as it's greater than zero?
...

Yes. There is another one for cloth items (i.e. trousers), and one for items that are chain only when made from metal but not when made from leather (i.e. leggings).

I don't know. According to the wiki and general knowledge, [ARMORLEVEL] is used to decide if an item is clothing and should wear, and it is also used for dwarf AI when equipping the military.

HiEv

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

I noticed you didn't test [ARMORLEVEL].  Do you think that might make a difference?  I'm not really sure what it does.  I assume higher level is better, because breastplates have 3, while mail shirts have 2, but I don't really know, as helms have only 1.  Is this just a flag that says the item is armor, such that the number doesn't matter so long as it's greater than zero?

It probably does matter, but I'm not really sure either.  Note that the [METAL_ARMOR_LEVELS] tag will give most (but not all) armor items an additional ARMORLEVEL if that item is made of metal (see the wiki).  So, apparently higher levels makes the item better in some way.  Whether "better" means "dwarves will want it more", "works better", something else, or maybe some combination of those is unknown.
Logged
The difference between intelligence and stupidity is that intelligence has its limits.

Pirate Bob

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

...
So if you needed thickness 23+ or something to deflect, then only the feet, lower legs, and head would deflect. According to Zivilin's Vitruvian Dwarf, that is 1.38% + 1.36% + 7.13% + 7.15% + 5.28% = 22.3%
That does seem like a plausible explanation.  I ran a full set of deflection vs (standard) plate armor at various forces.
Spoiler (click to show/hide)
It looks like whenever the deflection plateaus vs. force it is at a value of around 20%, so this seems consistent with the idea that there is a break point in deflection corresponding to 23+ thickness (assuming armor stacking as you described).

Naturally, deflection of bone and candy bolts does not depend on force, as they weigh less than one urist, so velocity is independent of force. 

I will try your uniarmor this weekend.  That should hopefully clarify things.

Sutremaine

  • Bay Watcher
  • [ETHIC:ATROCITY: PERSONAL_MATTER]
    • View Profile

So, apparently higher levels makes the item better in some way.  Whether "better" means "dwarves will want it more", "works better", something else, or maybe some combination of those is unknown.
I believe it's a hangover from the days of 40d and earlier. There were three uniform presets to choose from: leather, chain, and plate. Which items the dwarf would pick up for each level of uniform was determined by the item's armour level.

It's still used to determine what's armour and what's civilian clothing, but the non-zero numbers do less than they used to. They might cause a dwarf to swap a lower-level armour piece for a higher-level one. I've seen dwarves who were formerly clad in mail suddenly end up in plate once it became available, which I found most annoying. Apart from the discoveries being made here, breastplates simply cover less of the body than mail shirts do. But I haven't done any testing on it. Should be easy enough...
Logged
I am trying to make chickens lay bees as eggs. So far it only produces a single "Tame Small Creature" when a hen lays bees.
Honestly at the time, I didn't see what could go wrong with crowding 80 military Dwarves into a small room with a necromancer for the purpose of making bacon.

Urist Da Vinci

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

Removing mail and using a uniform armor thickness allowed me to isolate the remaining variables on the impact yield deflection equation.

Algorithm:
1. The projectile is hitting the creature on a body part protected by a piece of rigid armor (i.e. bolt hits steel breastplate).
2. Multiply the armor's LAYER_SIZE by the projectile's CONTACT_AREA, and round the result down to the nearest 100. The exception is that you round up to 100 instead of rounding down to zero if the result was less than 100 (i.e. 20x2=40 -> 100).
3. IMPACT_YIELD = (800/157) * ARMOR_SOLID_DENSITY * (step #2 result) / PROJECTILE_SIZE

i.e. (800/157) * 7850 * 100 / 150 = 26666
A projectile with IMPACT_YIELD less than that which was calculated will deflect.

This equation can be used to find, for example, that a platinum armor of LAYER_SIZE 399 won't deflect normal iron bolts, but if it is LAYER_SIZE 400 then the iron bolts will be deflected. Several such examples were verified during testing. The equation also works for dropped items.

Weaknesses:
- I don't understand what is happening with flexible mail armor.
- The equation only applies to projectiles that don't have a high enough SHEAR_YIELD to penetrate plate armor, so there is a chance of a blunt deflection.
- All my tests were at grand master skill levels. I don't know if skill matters.
- It appears that the 4000/785 or 800/157 or 5.0955 constant is only there to normalize the deflection criteria to iron/steel.
- For the falling object cases, I didn't check for a velocity dependance.
- For the bolt cases, velocity might involve a different deflection mechanism, or it might be part of the equation.

Insights:
- Based on the variables used, I think this is a "ricochet" equation. The force required to deform the bolt is related to the inertial resistance of the armor plate.
- I wonder if the criteria also applies to "glance" deflections off creature skin?

Pirate Bob

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

Here are some results using uniarmor instead of standard plate armor.  There appear to be no changes for deflections of metal bolt vs. steel armor.
Spoiler (click to show/hide)
Based on these results, it is clear that velocity-dependent deflection depends on momentum:
Spoiler (click to show/hide)
For this set of bolts, all masses round to 1, so the velocity is equal to the [SHOOT_FORCE] (I have also verified this for all these materials).  Therefore, momentum will be proportional to density times force.  When I plot deflection vs. momentum (force*density), the data for all five bolt types falls onto the same curve.  This shows that this type of deflection is proportional to momentum, and not energy (as then it would depend on force^2 * density).  This would be consistent with modeling an elastic collision, but then again it doesn't appear that Toady worries about making DF physics agree with the real world at this level.

Edit:
The fact that I am able to get the same result for deflection of different bolt materials plotted vs. momentum indicates that this mechanism is independent of bolt material properties other than density.  This of course means that it is independent of [IMPACT_YIELD], and is therefore different from the [IMPACT_YIELD] deflection Urist describes in the previous post.  I suppose I cannot rule out all dependence on other bolt material parameters, as some parameters might be fairly similar for all metals, but I did specifically rule out [IMPACT_YIELD] as I get no change in this behavior from doubling it (not to mention that the impact yield of steel is almost 5 times that of silver).

Also, it does not look like variations in layer thickness are responsible for the sudden drop from 1.00 to 0.20.  Since there was no change at all from minor modifications in the layer thickness (going from normal armor to uniarmor), I suspect that the layer thickness is rounded in this case as well.  Furthermore, in the full table of results for different materials, there are some deflection ratios between 0.2 and 1.0, such as copper bolts vs. iron.  Taken together, this suggests that there is not actually a binary transition for this deflection mechanism, but rather a fast change that we can't always see with integer changes in force.  If I squint at the curve, it appears that there may be an exponential decay from 1.0 to ~0.2 that begins at about momentum 370,000, and then a second (slower) decay from 0.2 to zero that starts at about momentum 440,000. 

Edit #2:
My next step is to test how armor material parameters impact the two transitions.  To test this I am measuring deflection of iron off steel for [SHOOT_FORCE] 47, 48, 60 and 65 after doubling the indicated material parameter multiplying the indicated material parameter by 10 (I realized multiplying by ten is much easier when doing string matching, as you just have to add a zero).  I will add results here as I get them.

Edit #3:
So, it seems my script to automatically go through all the material parameters wasn't working, and ended up saying that all bolts deflect all the time.  It appears that I somehow messed up the part of the script that changes force when I added in the material parameters.  I think I might take a break for a while and work on this another day.  Very sorry if anyone looked at my preliminary results and was confused.
« Last Edit: October 27, 2012, 04:01:10 pm by Pirate Bob »
Logged

Urist Da Vinci

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

Investigating Pirate Bob's low velocity deflections for iron bolts vs steel armor:

What can cause an iron bolt at shoot force 47, which normally deflects, to hit?
- Increasing bolt weight from 1.18 to somewher less than 1.95 using bolt SIZE or bolt material SOLID_DENSITY. Increasing bolt weight to 2.01 causes the bolt to deflect again, because of how velocity is determined when the bolt is launched.
- Increasing armor IMPACT_STRAIN_AT_YIELD (bruising muscle only, and occasional deflections).
- Increasing armor IMPACT_YIELD
- Decreasing armor IMPACT_FRACTURE.

What can cause an iron bolt at shoot force 50, which normally hits (only causing bruising!), to deflect?
- Increasing armor LAYER_SIZE.
- Increasing bolt CONTACT_AREA.
- Increasing armor IMPACT_FRACTURE (weaker bruising and more deflections).
- Increasing armor IMPACT_FRACTURE and then increasing IMPACT_YIELD (total deflection).
- Increasing armor IMPACT_FRACTURE and then lowering IMPACT_STRAIN_AT_YIELD (total deflection).
- Lowering IMPACT_STRAIN_AT_YIELD (default is 940, lowering to ~900 gives weaker bruising and more deflections, lowering to ~840 gives total deflection).

What is the precedence of deflection?
1. The game compares SHEAR_YIELD of armor and weapon, and decides if blunt or edged damage will take place.
2. If blunt, then the ricochet check is made.
3. If the projectile didn't ricochet, then this deflection mechanism is examined.

Insight/wild guessing:
- The bolt's momentum is used as a pseudo-energy.
- The pseudo-energy is distributed across a certain contact area and thickness of armor material.
- The IMPACT_* properties of the armor are used to determine the energy requirement to first yield and then fracture the armor. See http://en.wikipedia.org/wiki/Stress%E2%80%93strain_curve and http://en.wikipedia.org/wiki/Modulus_of_Resilience
- If the bolt deflects, then the IMPACT_YIELD and IMPACT_STRAIN_AT_YIELD were enough to absorb all of the pseudo-energy.
- If the bolt hits but only causes bruising, then the distance between IMPACT_YIELD and IMPACT_FRACTURE was sufficient to absorb a lot of energy and only dent the armor.
- If the bolt hits at high velocity (say 1000 instead of 47 or 50), the armor is shattered and the blunt force is directly applied to the underlying skin.
- If the armor has a large IMPACT_STRAIN_AT_YIELD, the blunt force is directly applied to the underlying skin. This also seems to happen for flexible clothing and mail in some situations.

Implication of guess:
- If a silver bolt from a vanilla crossbow hits adamantine armor, it doesn't cut the armor or ricochet. Adamantine is perfectly rigid, so there will be no pre-fracture strain. This means that the blunt damage is sufficient to shatter the adamantine armor and deal damage to the tissue below. This is consistent with modding creatures to have adamantine skin, which will be shattered/smashed apart by the bolt. VANILLA CROSSBOWS PROVIDE SO MUCH PSEUDO-ENERGY TO THE BOLT, YOU HAVE TO NERF THEM TO FIRE AT 5% VELOCITY TO LET ARMOR EVEN HELP TO STOP THE BOLT.
- Toady is probably missing a few zeroes somewhere in the calculations.

Pirate Bob

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

I simultaneously ran similar tests, and I think got identical (if somewhat less detailed) results.  In each of these tests, I multiplied the indicated material parameter of the armor by 10, and then measured deflection at SHOOT_FORCE 47, 48, 60 and 65.  The first row shows the result with no changes in armor material parameters.  All tests are for (unmodified) iron bolts vs. steel armor.
Spoiler (click to show/hide)
So I agree that IMPACT_YIELD, IMPACT_FRACTURE and IMPACT_STRAIN_AT_YIELD of the armor all play a role in determining deflections, and that the behavior is as Urist described.  I hope to figure out the exact dependence on each of these parameters eventually, but probably Urist will do it first :P.
« Last Edit: October 27, 2012, 08:29:11 pm by Pirate Bob »
Logged

Urist Da Vinci

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

I simultaneously ran similar tests, and I think got identical (if somewhat less detailed) results.  In each of these tests, I multiplied the indicated material parameter of the armor by 10, and then measured deflection at SHOOT_FORCE 47, 48, 60 and 65.
...
So I agree that IMPACT_YIELD, IMPACT_FRACTURE and IMPACT_STRAIN_AT_YIELD of the armor all play a role in determining deflections, and that the behavior is as Urist described.  I hope to figure out the exact dependence on each of these parameters eventually, but probably Urist will do it first :P.

My method used less data and was simply a pass/fail test for both SHOOT_FORCE 47 and 50. I'd adjust a variable, and then test to see if it did anything.

In the case of the stress-strain curve, the area under the curve is proportional to energy. This is why raising the IMPACT_YIELD (to a number just below the IMPACT_FRACTURE) caused iron bolts at SHOOT_FORCE 47 to hit instead of deflecting - I actually reduced the area under the curve.

These calculations are probably used for blunt damage to living tissues as well.

Isn't it funny that a lead bolt which weighs 1.70 urists will do more blunt damage to a target than an electrum bolt which weighs 2.23 urists, due to the velocity weirdness?

My comment about the crossbows was probably off the mark. The bolt velocity might be reasonable (as shown by how much knockback momentum it imparts to small birds), but the damage calculation treats a bolt travelling at high velocity the same way it would treat a person stabbing someone with a bolt, swinging their arm in for the attack at the bolt's velocity.

Here are some results using uniarmor instead of standard plate armor.  There appear to be no changes for deflections of metal bolt vs. steel armor.
Spoiler (click to show/hide)
...


The average momentum of your bolt set is 376,335 at the point where deflection occurs. The steel armor has IMPACT_YIELD 1505000.

1505000/376335=3.9991 (which is very close to 4!)

EDIT: That doesn't hold up for your other material vs material statistics. More data is required.
« Last Edit: October 28, 2012, 12:13:06 am by Urist Da Vinci »
Logged

Belteshazzar

  • Bay Watcher
    • View Profile

Given all the data collected as regarding bolt energy and bolt lethality by material what course of action is suggested in bringing deflections more in-line with the desired "plate armor actually being useful vs projectiles?"
Logged
In the year 570, Kjerdregus occurred.

Pirate Bob

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

The average momentum of your bolt set is 376,335 at the point where deflection occurs. The steel armor has IMPACT_YIELD 1505000.
1505000/376335=3.9991 (which is very close to 4!)
EDIT: That doesn't hold up for your other material vs material statistics. More data is required.
This force for this first transition appears to be increased by increasing IMPACT_YIELD and decreased by increasing IMPACT_STRAIN_AT_YIELD, while IMPACT_FRACTURE does not effect this transition, but rather the second one at higher force.  Maybe the transition depends on the ratio IMPACT_YIELD/(IMPACT_STRAIN_AT_YIELD*momentum)?

While I have a degree in physics, I actually know nothing about stress/strain calculations.  I will have to take a look at that wikipedia article you posted to give myself a crash course (maybe this afternoon).  Then again, I wouldn't necessarily assume that Toady follows real world physics here, but it can't hurt to check for that.

Given all the data collected as regarding bolt energy and bolt lethality by material what course of action is suggested in bringing deflections more in-line with the desired "plate armor actually being useful vs projectiles?"
I don't think we quite have a solution yet, but hopefully we will soon.  The rough answer is to reduce [SHOOT_FORCE] to something between 25 and 50, and then also reduce [MAX_VELOCITY] to maybe 100?  Understanding this is definitely a major goal for me.

My comment about the crossbows was probably off the mark. The bolt velocity might be reasonable (as shown by how much knockback momentum it imparts to small birds), but the damage calculation treats a bolt travelling at high velocity the same way it would treat a person stabbing someone with a bolt, swinging their arm in for the attack at the bolt's velocity.
I disagree that the momena for crossbow bolts are in any way reasonable.  First of all, the mass of metal crossbow bolts is about an order of magnitude larger than it should be.  Furthermore, a quick search of the internet suggests that real bolts should fly at around 100 m/s, while DF ones reach 1000(.  I'm unsure of units, but I'll guess m/s.  This would put the momentum of bolts roughly 100 times what it should be.  If it's 1000 tiles per tick, then this would actually be much more than 1000 m/s, as a tile is 2(?) meters wide and there are several ticks per second.   

It does seem reasonable that bolts should knock back pigeons but not creatures much larger, but who knows if the momenta needed for knockback are anywhere close to real world numbers?

Edit:  Here's some more numbers for force dependence after multiplying IMPACT_YIELD, IMPACT_FRACTURE and IMPACT_STRAIN_AT_YIELD by 10:
Spoiler (click to show/hide)
If the lower cutoff (the drop from 1.0 to 0.2 which normally occurs at Force=48) depended linearly on the ratio IMPACT_YIELD/(IMPACT_STRAIN_AT_YIELD*momentum), then I would expect it to occur between Force 470 and 480 when I multiply IMPACT_YIELD by 10, and between 4 and 5 when I multiply IMPACT_STRAIN_AT_YIELD by 10.  Clearly this does not happen.  This suggests a slower than linear dependence on both IMPACT_YIELD and IMPACT_STRAIN_AT_YIELD for this transition (such as a square root, or a log). 

Conversely, the upper transition normally occurs between 60 and 65, and would occur between 600 and 650 if it depended linearly on IMPACT_FRACTURE.  I see no upper transition even at 650 when I multiply IMPACT_FRACTURE by 10, which suggests that the dependence of this transition on IMPACT_FRACTURE is faster than linear (such as squared or exponential).  Given that the upper transition already looks like an exponential decay, I am going to guess that it's some kind of exponential behavior, but that's just a guess.
« Last Edit: October 28, 2012, 12:27:59 pm by Pirate Bob »
Logged

Urist Da Vinci

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

...
That does seem like a plausible explanation.  I ran a full set of deflection vs (standard) plate armor at various forces.
...

I used your data from this test and crunched the numbers. It appears that the armor IMPACT_YIELD divided by the kinetic energy of the bolt is about the same for all materials except for bronze armor.

IMPACT_YIELD/(MASS*VEL*VEL/2)=?
1505000/(1.1775*49*49/2)=1064.67 iron bolt, steel armor
5000000/(1.3395*80*80/2)=1166.48 bronze bolt, addy armor
245000/(1.5735*17*17/2)=1077.54 silver bolt, copper armor
602000/(1.1775*16*16/2)=3994.16 iron bolt, bronze armor

Since the above doesn't depend on strain, I think the reason bronze armor is different is that it is triggering some kind of strain criteria. Steel is 2.8x as strong as iron, and 2.9x as flexible. Copper is half the strength and half the flexibility of iron. Bronze is 1.1x as strong as iron, but 1.7x as flexible.

If we lower bronze's IMPACT_STRAIN_AT_YIELD carefully, we should see a jump in 'required velocity' from 14-16 to 26-30. You have the setup to do the statistics better than I can.

EDIT: That doesn't actually work. Something else is going on with Bronze.
« Last Edit: October 28, 2012, 09:23:41 pm by Urist Da Vinci »
Logged
Pages: 1 ... 9 10 [11] 12 13 ... 19