The ballistics model in Blood & Bullet
The behavior and interactions of projectiles is a central part of Blood & Bullet. I have a fairly detailed ballistics model in place now. It is largely based on kinetic energy. Projectiles spawn with a starting velocity, which combined with the projectile's mass produces its kinetic energy.
In flight the projectile is pulled to the ground by gravity and is losing velocity due to drag. The drag is not doing much on an intact, high velocity projectile but it has a more dramatic effect when it has slowed down after hitting something.
Each object that should be possible to hit has a set of material properties assigned to it. These determine how projectiles interact with them, and the calculations being made on impact can be ordered into the phases of the projectile's (potential) travel through it: entry, interior travel and exit. First up is the entry test.
The material has a threshold value for how much energy it takes to break through the object's surface. If the projectile has less energy than this it will fail to penetrate and bounce off. It may also glance off the surface if its angle toward the surface is low enough. If it passes the test it will now have entered the inside of the object. On hitting an object the projectile is deformed. The amount of deformation is determined by properties of both the projectile and the material. If it enters the material it continues on to the next phase.
During the interior travel phase the projectile is working its way through the inside of the object. The distance the projectile will manage to penetrate depends on its kinetic energy, how much it deforms, and the density of the material. The further it penetrates the more deformed it becomes. Some projectiles don't deform much at all, while others are softer and can break into separate pieces which then continue independently. The projectile will keep working its way through until it runs out of energy or until it reaches the far side of the object. There comes the last test.
The material can also require the projectile to have a least amount of energy for it to exit, though this is optional. Most materials I've made so far don't have this and the projectile is simply let out the far side.
Lodge or exit
If the projectile runs out of energy or doesn't have enough energy to pass the exit test it will stay inside the object. If it does exit, it is now reduced in energy and velocity, and it is deformed thus flying less efficiently. Furthermore its flight path is altered so that it exits in a slightly different direction than that it entered with. This makes a stray projectile's path unpredictable.
All together my model for ballistics is intended to be realistic. You should need to be careful in your choice of weapons and ammunition in Blood & Bullet, along with consideration of where stray projectiles may end up when you fire your weapons. In the campaign, collateral damage may very well cause you to fail a mission.
The example I made in this article was of a projectile hitting some inert level geometry, but the same model is used for character limbs. A projectile may travel through several limbs or parts of the body before becoming lodged or carrying on to hit something or someone else. This model gives me a lot of data to work with in creating the damage model for the characters. The damage model is not taking advantage of all of this yet but it is my plan to make it so. Trauma and tissue damage will be based on the volume of tissue "touched" by a penetrating projectile. For example, a ricocheting projectile may have enough energy to breach the skull of a character but not penetrate enough to damage the brain. This would render the character unconscious, but with help soon enough would not need to die. Similarly a shallow wound will cause less bleeding than a deep one.
That's it for this time. I'm open to queries and suggestions, honor me with a comment!
Wow that's really incredible! It really takes the realism to another level! It's gonna be awesome to play around with different kinds of ammo.
Wow! I love what you're doing with ballistics!
The ballistic system is looking good!
Thank you all! I'm really looking forward to start using it for the damage on characters.
AND I'm also looking forward to releasing the sandbox demo. That's what I'm working towards but there always seem to pop up news things I think need to be in it or need to be fixed.
Looks great! Your ballistics model seems really well thought out. Looking forward to try it out!
Supa Realistic! respect+
I really love the realistic smoke particles too man!
Thanks! You'll like the stun grenades then, I've been updating the smoke effect on them.