Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Recoil of other ammo types was not updated after PR #21926 #26056
As seen in title
The recoil of the .50 BMG was calculated against the value of the 9mm round in game.
The other ammo were never balanced based on the same calculation (as far as I know).
This would essentially nerf the 50 BMG against everything else.
I am reviewing this now.
See ballistic performance for where these stats are being taken from.
It appears the that the 9mm recoil has been changed but things were not updated around it.
The 9mm seems very closely related to it's real life kinetic energy in joules
The heavier 124 grain projectile has a kinetic energy of 494 Joules.
This is about 1.2% different than the current value.
It might make sense to simply based this recoil on the kinetic energy of the bullet directly since it is already so closely tied.
For 9mm that would mean setting the recoil to 494 Joules then doing the same for other bullets we're currently using.
Also of note is that occasionally 115 and 116 grain are mentioned in the 9mm file. 116 grain is likely a typo as I don't believe that is a particularly common grain size for 9mm bullets.
The recoil appears to be closer to the value for the 124 grain bullet so the description will be updated to 124
Regarding overpressure ammo:
An overpressure round generally carries about 10 percent higher internal pressure on the firearm, though this depends on the exact cartridge.
This translates to about ~17.4% difference in energy (494 Joules vs 588 Joules when comparing a 124 grain bullet)
This increase in energy will:
Assuming the increase in energy equates directly to damage we'd be looking at a damage of ~30 (+4) for the standard +P ammo.
I would need to dig into some research to say for certain but I'm pretty sure there will be more difference between a Jacketed Hollow Point and FMJ than there will be between overpressure rounds.
We should consider making certain makeshift or poorly maintained guns fail (or potentially fail) when used with 9mm +P and particularly with 9mm +P+ ammunition
Let me know if anyone is interested in helping me with this project.
A lot of it is sourcing data and crunching numbers.
Here is my current branch.
Also I'm reading more about recoil now to understand if my assumptions of recoil are correct (I think they might not be)
It might actually be EASIER to do this by programming the actual physics calculation for recoil and then filling in that data from existing resources.
What are your thoughts?
Ranged weapon data in general could use a review. I started reviewing the blazemod weapons against stock weapons, and quickly realized that stock weapons have a lot of weird numbers in them too. Not just for recoil, but also damage, range, dispersion, etc.
I (naively) thought this data would be somewhat readily available. Since it seems to not be, I agree that we can probably get some better numbers with plugging the actually available parameters (round mass, propellant volume, barrel length) into some fomulas.
Before getting further into this: I know nothing beyond the most basic of physics and I suck at math (Gravity is that thing that makes apples fall right?)
The summary of this is worth reading
TL;DR: Free recoil is the measurement we likely want to calculate. It is virtually impossible to calculate felt recoil accurately (Also mentioned in above wiki page)
Free recoil is based on solid data that we can factor our other changes around; shooter skill, attachment benefits, and various other factors
The page also includes what is needed for the calculation as well as an example calculation
All of this data should be relatively easy to find, though I haven't ever seen `
Let me know your thoughts or if you think this should perhaps be moved to it's own project.
I've searched for powder burn velocities for another project; they're not that easy to find without a Handloader reference. Even powder weights can be difficult to find, especially down to a quarter of a gram.
I'm not sure that free recoil is that useful of a measurement, either. It specifically doesn't deal with recoil reduction devices, like muzzle brakes and recoil actions. So how useful is that in the game where people put muzzle brakes on their .50 caliber rifles?
Felt recoil (What you feel after all attachments, accounting for gas output, and more) is virtually impossible to calculate.
There are far too many variables to adequately calculate this.
Free recoil is a base, scientific, measurement that is relatively easy to calculate can would give us perspective on the difference between different calibers (and firearms) from a data driven point of view.
After this, manual adjustments can be made to further balance and tune the calculation.
I want to provide an example of why calculating this could have helped us:
Comparing a Glock 17 firing 9mm ammo to a M16A2 firing 5.55, the M16A2 actually has LESS Free Recoil than the Glock 17 (See the previous wikipedia article)
The M16 has lower free recoil than the Glock out of the gate. It's third point of contact (The stock) will end up lowering the felt recoil even further over the Glock (Significantly so)
In our ranged weapons tests, a Glock 17 handgun, should produce more free recoil (and more felt recoil) than an M16 series rifle.
The .223 ammo currently has 3x more recoil than 9mm (500 vs 1500)
Is dispersion on each weapon and the rest of our calculation actually capturing the differences in accuracy, recoil, and damage between these weapons?
As a side note, I did attempt to dig through the source myself (In particular ranged.cpp, is this somewhere else?) but my C++ skills aren't great.
I may open a separate ticket regarding documentation if one does not already exist.
Attempting to find what each of the src files handles seems far more difficult than it needed to be.