I wanted to muse about how the game should be handling this. The following is my best reasoned guess:
-Object is swung at a creature, say a warhammer. It is swung with some amount of force. Relevantly, the head of the hammer is moving at some velocity and has some mass. (Since we can probably assume all hammers in DF have the same volume, we can calculate mass from density).
-The head-velocity achieved by a given creature's swing is a function of the creature's strength and the length of the handle. Since all hammers are probably the same, strength is the only variable here and there's some constant representing hammer handle length.
-Hammer head makes contact with the target creature. The quality of the contact is important: a square hit directs all the force of the blow into the target, a glancing blow will only lose a fraction of the force in contact and the swing will continue on. Presumably, fighter skill and hammer skill are measured against dodge skill to determine the quality of the blow. (Presumably shield skill also plays a role here, but lets assume no shield). Consider contact quality to be a variable on (0,1] which multiplies the force of the hammer head to determine transmitted force.
-the transmitted force is not applied instantaneously. Rather, there is a length of contact between the hammer head and the struck target during which the force is imparted. All else being equal, a collision with a shorter impact duration will cause more damage. Ie, it is the _Impulse_ (I) which is important for damage.
-The elasticity of the striking object effects the I. The more elastic the object is, the longer contact is maintained (and the less elastic the collision is). Basically, the stress of contact will produce a strain on the hammer head. During the deformation of the head (ie, strain) and elastic return to the initial shape, contact is maintained. The less the head deforms, the less time it spends in contact.
-Similarly, the elasticity of the struck object has a similar effect on I. However, that probably only applies to damage done to that layer – a layer which deforms enough will pass force through no problem, even if it is avoiding damage by deforming. (So rigid protection is advantageous as far as it stops force from transmitting, whereas flexible materials reduce the damage they take).
-Creatures are now composed of layers. A given layer should only be damaged if sufficient force is transmitted to it from the impact.
-The force experienced by a layer is dispersed in one of two ways: (1) dispersion of the force across a wider area of the tissue (I think this is the effect of elasticity I describe above), (2) transmitted through the layer to the next layer.
-If you hit a layer at a point, in addition to a compressive loading of force at that point, there will also be a shear loading around that point. If the layer shears enough that the compressed point contacts the subsequent layer, force is transmitted to the next layer. Repeat on a layer-by-layer basis.
-Ok, this is how I think the whole process should work in game:
Initial force hits outer tissue. Tissue layer has a depth, an elasticity, and yield and fracture points.
--Step 1: calculate impact strain and shear strain, treating force as stress
--Step 2: if F > Fracture, layer breaks. If Fracture > F > Yield, layer is bruised
--Step 3: Calculate force transmission
---if layer broke, apply all F to next layer
---else if layer bruised, Fnew = F – (Y*E/Y*E1). Ie, F in excess of the Yield point passes through unhindered.
---else Fnew = F*E/F*E1
--Step 4: Repeat for next layer
E1 is defined as the elasticity of a material that perfectly transmits force. So we’re reducing force by the degree to which a material doesn’t deform.
-Remember I said this had to deal with Impulse right, rather than force per se? Well, I think modeling real behavior using impulse is too complicated for the game engine, because then you have to deal with things like stress-strain elasticity envelopes rather than single elasticity values, and progressive failure at a given load (rather than instantaneous failure). In general, more elastic materials will suffer more complicated failure modes. I believe the actual run down is that impulse has to at some point exceed yield strength or fracture point for a relatively inelastic substance (such as bone), but for a softer substance such as skin its total force which is more relevant. I AM NOT AN EXPERT, however.
-Of course, a better way to do it might be to look at the energy of a strike, since breaking a layer should consume some energy. But then I think the game is defining the wrong variables.