-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Overhaul automatic fire #31947
Comments
Here's what I've come up with. At no point should any firing mode be checking for, "stop firing when targets have dropped". |
Why shouldn't we do this? In a long burst you'd have time to react to the target falling over before you would otherwise have stopped firing. Determining what an optimal number of rounds is could be a problem. We can calculate whether to keep firing based on hit probability but firing until accuracy get too low is likely to fire far more rounds than is actually optimal for a given target. |
The problem with most modern automatic weapons is you can easily mag dump before the target being dead registers unless you've got the extensive training to know if you've fired kill shots or not. A little more than a year ago I tracked down information on all the real world guns and an average time to empty a 25rd clip was about 3 seconds. |
I thought I'd chime in here on real world weapon behaviors. It is true that firearms empty rather quickly during fully automatic fire, but this kind of fire is almost entirely relegated to crew weapons, suppressing action (The area fire discussed above) and panicked, untrained shooters. Bursting is a trained, and typically rather normal behavior for even moderately experienced shooters because the reaction is not to the target, but to the feel of the weapon. With a moderate amount of practice with a weapon, you can easily feel when your sight picture or frame has broken from accurate fire. A "realistic" progression of automatic fire is going to start as wide, uncontrolled bursts as your character is incapable of effectively managing the weapon, transferring into measured (still relatively inaccurate) bursts as the character eases off the trigger as their sight picture and recoil puts him off target based on size and range. (This could interact well with the Trigger Happy disadvantage, eliminating the economizing effect.) While in the previous longer round system, a "target check" might have been appropriate, It's outside the realm of reasonable human reaction to acquire a new target inside of a second except at extremely close ranges (Which would again be better suited by the idea of an area fire mode). Instead, You'd be better off simply bringing the time to fire down until at "perfect" levels, you're putting a burst down for every action similarly to single firing, but with the associated recoil. This behavior ties right into weapons with mechanical or electronic firing systems for burst firing: Firing a burst fire weapon would interrupt the early wild firing and help the average skilled survivor maintain consistent, intentional fire. This can also tie into weapons with a "set" burst, like a garage zip gun. So to recap: An unskilled survivor will likely fire long and uncontrolled bursts. A practiced survivor will bring those bursts down to more reasonable sizes, and will cut off their fire at a much more reasonable level of recoil. A skilled survivor will be capable of selecting bursts based on expected recoil and intended accuracy. He will also be able to devote more of his attention to his surroundings than his weapon, allowing him to perform suppressing, overwatch or crowd control style behaviors (Which can likely all be modeled in a similar mode.) |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Maybe the easiest thing that can be done and that improve situation with burst fire immensely will be this:
Just add the limit lower than MAX_RECOIL for total burst recoil. I mean that burst recoil limit could potentially be tied to single shot recoil (in cata terms) x multiplier. Recoil already calculated based off weapon stats like weight and handling. So this way no global rebalancing of recoild needed. In addition there is case then player can't hold the gun because strength way too low. In that case current 45 degree wide spread can be used without extra limit. Adding controlled burst don solve situation by itself- recoil acumulation for ever 3-rd shot already hight enough to guarantee miss >10 tiles. |
This is expected results for a dedicated machine gunner after regular formal training on a tripod or bipod in a qualification test where they are allowed two bursts to score. This a great and concise document outlining the parameters of how machine gunfire is expected to work though. IMO the obvious place to start is reigning in the number of rounds fired, which is objectively correct and will have positive impact on accuracy as well, though I'm not saying it will fix it. That's why I outlined that as the place to start initially, and then we can build and verify a scenario where a professional shooter can maintain those 4cm groups, then as @ymber suggests, walk back from there to less skilled shooters in poorer conditions. |
Based on this:
Based on:
Let's take ingame AK74
Minumum controllable burst: Vietnamese experienced soldier fires AK full auto mode, 2 rounds burst: Then let's take m4a1:
Minumum controllable burst: Firing M4 on 3-round burst: Seems about right. Overall formula to calculate manual short burst size could be:
|
While I agree with your assessment of reaction times, bursting is not based on action-reaction: A competent shooter is "queuing" the behavior: Deciding to pull and release the trigger based on his experience with the weapon and its behavior. This will put the minimum burst behavior below your estimates at high levels of competence, but I'm unsure it's really a useful distinction besides simply allowing the formula to permit a 2-shot burst. Regarding the discussion of MG accuracy, the irony is that burst fire is generally less controllable than sustained fire in a dedicated LMG or larger weapon. I don't have any mechanical statements to make there, just something to consider when balancing. I agree with the assessment of bringing down ROF in general to see how it affects accuracy. Something to consider for the future is calculating the inaccuracy of burst fire in terms of drift rather than random variation: The weapon itself is typically much more consistent than the shooter, and will trace whatever failing in control or form is present. Truly wild fire is only really appropriate for novice gunners and low-control weapons like machine pistols without braces or stocks. Balanced properly, I think we can maintain appropriate levels of accuracy on target, but significantly improve the player feel as bullets aren't literally peppering the entire quadrant. |
Next:
Alghoritm (look player::fire_gun in ranged.cpp):
Of course you can use not exactly range to target but range to target - something , to have some room and to take in account fact that player is not machine. To make it work current recoil levels during burst should be lowered significantly. How much- that a question. |
|
How much of the chance to hit is based on the target? The more static parameters like range and the bullet number in the burst are definitely things a shooter can learn. |
A "before you start shooting" estimate, absolutely. So you have current aim level, target, and fire mode all selected, you can then get an estimate of maybe "hit chance for first round" and "hit chance for last round". |
Based on FY19-3 :
121 meters based on: Link to Real Data Spreadsheet: https://docs.google.com/spreadsheets/d/1aGH8N2kITxZ_8i1Vyi1G-FIVfQOTL6euvKxZkYOc-FE/edit?usp=sharing
So we can assume that automatic fire should be very effective at around 15 tiles. This 15 tiles is almost half of max range of .223 Remington. So maybe we can assume simple rule, like professional shooter should be very effective with burst at least of half of max weapon range. Correct me if I am wrong. |
I recommend to attach issue to project:
And maybe add it to milestone to 0.F (or even 0.E?). It is not gamebreaking but very noticable and long lived issue. |
About original assumption. I've talked with someone with actual shooting and battlefield experience. No one ever uses long bursts. Real use of automatic fire - sometimes you almost have no time aim so you can do short quick short burst over the cover and have higher statistical chance to hit. Also I've been told something about using automatic fire in defense. But that was about something situational, depending on enemy position or how they move(?). That is how it works in practise. So looks like many models (real ones or ones that we use) are not really works in practise. Also usefull link: |
First World military doctrine for infantry squads fighting small wars is not 100% of how people use guns. Plenty of untrained and semi-trained people also use automatic fire, and sometimes at inappropriately long ranges. Vehicle mounted weapons are also used differently. CDDA needs to cover all these situations. |
There was some relevant discussion between IAmTheLastMessiah, mlangsdorf ZhilkinSerg and others in the Artyom mod thread on reddit: https://www.reddit.com/r/cataclysmdda/comments/dq0aq4/requestdiscussion_should_artyoms_gun_emporium_be/f6025k9/ |
This issue has been mentioned on Cataclysm: Dark Days Ahead. There might be relevant details there: |
This discussion reminds me of a Jagged Alliance 2 mod "JA2 1.13" (also called unofficial patch) that is still being developed. There is an optional setting called NCTH ("New Chance To Hit"), in which devs were trying to simulate realistic aiming, shooting, burst and auto-fire calculations and mechanics. Also some thoughts on this discussion.
|
@zanraptora: To what degree is this due to tracers and/or other means of perceiving where the bullets are (likely to be?) hitting? |
Is your feature request related to a problem? Please describe.
Currently firing automatic firearms has very little gameplay value and doesn't reflect how such weapons are actually operated. The combination of large bursts and constantly increasing recoil makes automatic fire largely useless except as an ammo inefficient way to maximize damage per turn at extremely close ranges.
Describe the solution you'd like
The maximum impact of recoil is far too high. Currently it can have shots hitting anywhere in an arc of about 45 degrees. FY19-3 indicates that 4cm groups at 10m are expected from a reasonably competent gunner, which gives 4 milrads as the expected dispersion. These numbers can be used as a base and brought down to cata scale.
The status quo of burst length being constant at 1 second of fire at the weapon's cyclic fire rate is also a problem, as an assault rifle with a cyclic fire rate of 600rpm (eg AK-74M) will always fire bursts of 10 rounds. FY19-3 indicates that 3 round bursts are expected for an assault rifle. That's under 1/3 seconds of fire, so being able to control the gun like that will take practice. Minimum burst size could be tied to weapon skill level, with longer bursts being fired as long as total effective recoil remains under some threshold and the target is still alive.
The impact of recoil on weapons mounted on a tripod or similar should be massively lower than when they are shoulder fired.
Additional context
What I described above may not be the best way to handle burst sizes. I haven't been able to think of a solution I'm completely happy with that doesn't clutter the interface with new burst size controls or force you to fire shorter bursts than you want to.
The text was updated successfully, but these errors were encountered: