Realistic Ballistics
Posted: 2006-06-08 16:37
Well, if reality==REALity there would be need for many changes in engine sourcecode (and that's not available, right?).
For real-life ballistics one need:
- inherited gun accurancy (precision of internal mechanics, and its variable factor- for example barrel floating factor during sustained fire)
- ammo quality (cheap, military grade, sniper grade - to see difference look at the test here : http://www.theboxotruth.com/docs/edu8.htm)
-"mount" quality: shaking of hands(stress factor), what kind of grip the shooter uses, are there any "helpers": bipods, tripods, sandbag, backpack, windowsill under frontgrip. For long range sniping breathrate & heartrate are important factor.
for decent sniper with decent rifle with decent ammo hit area should be about 1 MOA in diameter, when firing from fixed mount without applied gravity, crosswind factor and air friction.
with applied gravity&friction comes:
-bullet stability (comes from rotation speed , that comes from barrel rifling)- it's due rotation that bullet goes "straight" on quite straight trajectory.
- targeting device accurancy & pre-set bullseye point: usualy 50m hit with fixed sights. The further bullet goes, the less energy it has(due friction) and the more gravity pulls it down. So the hit point goes down on vertical line, and compensation for that is what the lines/dots or range presets in real sights are for.
-of course when shooting in open space there's need to involve crosswinds to determine horizontal hit point displacement (in "war" movies you hear something like "wind : one click to the right"- that would be it). But well, in what kind of game you got wind simulated?
In order to apply this to game you need to have:
- quality factors in gun & ammo entities, barrel-out energy factor [E0] and directional vector (both with variables applied) (e0 could be instantly calculated from cartrige pressure&calibre &barrel length&barrel friction for every gun and ammo)
- separate bullet entity (when bullet leaves the barrel there is no "human" factor) . It should have mass, energy, spin(stability), and friction pattern (more front area==greater friction in general, but there's need to apply "slickness" factor :bullet shape and coating - more blunt the projectile==more friction). Also terminal hit area would be useful to determine piercing & and shock- inflicted capabilities. And some kind of overall terminal ballistisc handling system would be useful. Also different bullet &cartridges for rifle: classic FMJ, JHP or HP for those "i'dont know anthing about Geneva convention" kind of guys,non-lethal ammo, "stop-patronen", subsonic ammo to use with supressors &more.
- ability to set range on the non-fixed sights
When it comes to "damage" - using the real life values wouldn't be nice? It's calculated from (bullet terminal energy)/(bullet hit area). As I remember delivering 80 Joules/cm2 on vital spot is considered lethal by NATO standards(but I could be wrong). And there is "stopping power" factor for shock generation capability(don't remember actual equation but it is fairly easy to find in the net).
Also armour protection factor could be derived (ablity to absorb X J/cm2 ? and for armour vs ammo You should check: http://www.theboxotruth.com/docs/bot24.htm . That whole site is full of useful info BTW)
Real time handling of limited quantity of bullets should be fairly easy (with access to code) but RT handling of LOTS of bullets (say 6000 RPM from a Vulcan?) could be nightmare. My idea is that one could use "bullet cluster" entity to check aganist other entities with "death density" factor. One cluster physical behavior could be traeted as single bullet.
Same idea could be used to simulate frag damage ( Energy0= ((average frag mass)*(1/2 burn speed of explosive)^2)/2) * average frag hit area - that would be damage factor, and cluster "death density" to determine number of taken hits)
As far as I know in most modern games engine uses straight"laser line" to determine possible hit & random "accurancy" factor for simulating enviroment. (it's not real but it's FAST) From what i see battlefield uses this system too. From games i know only delta force 1&2 used gravity calculations to determine hit (and i saw declarations that newest UT got somethin' like this, but did'nt checked it out myself)
i know that most of above suggestions/ideas would be impossible to add in near future (or in this century, maybe), butt well, it would be nice to have real-life ballistics, real-life damage &wounds instead of arbitrary and not always close to truth values? (Dead/Critical/Crippled/Maimed/Schocked/fleshwound system instead of HP would be nice, don't you think?)
For real-life ballistics one need:
- inherited gun accurancy (precision of internal mechanics, and its variable factor- for example barrel floating factor during sustained fire)
- ammo quality (cheap, military grade, sniper grade - to see difference look at the test here : http://www.theboxotruth.com/docs/edu8.htm)
-"mount" quality: shaking of hands(stress factor), what kind of grip the shooter uses, are there any "helpers": bipods, tripods, sandbag, backpack, windowsill under frontgrip. For long range sniping breathrate & heartrate are important factor.
for decent sniper with decent rifle with decent ammo hit area should be about 1 MOA in diameter, when firing from fixed mount without applied gravity, crosswind factor and air friction.
with applied gravity&friction comes:
-bullet stability (comes from rotation speed , that comes from barrel rifling)- it's due rotation that bullet goes "straight" on quite straight trajectory.
- targeting device accurancy & pre-set bullseye point: usualy 50m hit with fixed sights. The further bullet goes, the less energy it has(due friction) and the more gravity pulls it down. So the hit point goes down on vertical line, and compensation for that is what the lines/dots or range presets in real sights are for.
-of course when shooting in open space there's need to involve crosswinds to determine horizontal hit point displacement (in "war" movies you hear something like "wind : one click to the right"- that would be it). But well, in what kind of game you got wind simulated?
In order to apply this to game you need to have:
- quality factors in gun & ammo entities, barrel-out energy factor [E0] and directional vector (both with variables applied) (e0 could be instantly calculated from cartrige pressure&calibre &barrel length&barrel friction for every gun and ammo)
- separate bullet entity (when bullet leaves the barrel there is no "human" factor) . It should have mass, energy, spin(stability), and friction pattern (more front area==greater friction in general, but there's need to apply "slickness" factor :bullet shape and coating - more blunt the projectile==more friction). Also terminal hit area would be useful to determine piercing & and shock- inflicted capabilities. And some kind of overall terminal ballistisc handling system would be useful. Also different bullet &cartridges for rifle: classic FMJ, JHP or HP for those "i'dont know anthing about Geneva convention" kind of guys,non-lethal ammo, "stop-patronen", subsonic ammo to use with supressors &more.
- ability to set range on the non-fixed sights
When it comes to "damage" - using the real life values wouldn't be nice? It's calculated from (bullet terminal energy)/(bullet hit area). As I remember delivering 80 Joules/cm2 on vital spot is considered lethal by NATO standards(but I could be wrong). And there is "stopping power" factor for shock generation capability(don't remember actual equation but it is fairly easy to find in the net).
Also armour protection factor could be derived (ablity to absorb X J/cm2 ? and for armour vs ammo You should check: http://www.theboxotruth.com/docs/bot24.htm . That whole site is full of useful info BTW)
Real time handling of limited quantity of bullets should be fairly easy (with access to code) but RT handling of LOTS of bullets (say 6000 RPM from a Vulcan?) could be nightmare. My idea is that one could use "bullet cluster" entity to check aganist other entities with "death density" factor. One cluster physical behavior could be traeted as single bullet.
Same idea could be used to simulate frag damage ( Energy0= ((average frag mass)*(1/2 burn speed of explosive)^2)/2) * average frag hit area - that would be damage factor, and cluster "death density" to determine number of taken hits)
As far as I know in most modern games engine uses straight"laser line" to determine possible hit & random "accurancy" factor for simulating enviroment. (it's not real but it's FAST) From what i see battlefield uses this system too. From games i know only delta force 1&2 used gravity calculations to determine hit (and i saw declarations that newest UT got somethin' like this, but did'nt checked it out myself)
i know that most of above suggestions/ideas would be impossible to add in near future (or in this century, maybe), butt well, it would be nice to have real-life ballistics, real-life damage &wounds instead of arbitrary and not always close to truth values? (Dead/Critical/Crippled/Maimed/Schocked/fleshwound system instead of HP would be nice, don't you think?)