Symthic Forum was shut down on January 11th, 2019. You're viewing an archive of this page from 2019-01-08 at 22:39. Thank you all for your support! Please get in touch via the Curse help desk if you need any support using this archive.

Welcome to symthic forums! We would love if you'd register!
You don't have to be expert in bit baking, everyone is more than welcome to join our community.

You are not logged in.

2manyPosts4me

Posts: 9,755

Date of registration
: Jan 7th 2012

Platform: PC

Location: 'Murrica

Battlelog:

Reputation modifier: 19

Saturday, January 12th 2013, 7:59am

For those of you reading this, expect a somewhat heavily mathematical post. IÂll give a summary at the end so if you donÂt want to see my math or the programs in MATLAB I wrote to automate this process, feel free to skip to the summary.

### ÂHow I got to thisÂ

Writing this, I donÂt expect this to be nearly as important or interesting as RezalÂs work on the Foregrip attachment, but IÂd like to get my work on this out there in case someone wants to use it as a tool for further work.

I derived the spread reset equation last semester trying to figure out the AN-94Âs best rate of fireÂthe one at which it maintains its perfect accuracy (which I think I calculated with .12 as the spread increase value, now that I think about it). I noted at the time that the resulting average rate of fire didnÂt depend on the amount of rounds fired. I found it interesting but didnÂt revisit it.

Later on, while writing my SKS review, I needed to derive the equation for its natural recoil recovery rates depending on its attachment structure. I decided to automate this process and wrote a MATLAB function to do this step-by-step for the SKS.

IÂve been asked three or four times recently natural settling rate (of recoil and spread) altered the effective rate of fire of each weapon. I redid my spread derivation and generalized the equation from my SKS review and found two formulas. IÂll go through the derivation below.

Explanation
One of the things thatÂs been brought up a lot recently is that spread and recoil recovery start not when a round fires but instead when the second round could be fired. This delay creates some interesting effects on rate of fire. If you wait for spread and recoil to settle between shots, you can see some interesting effects on the resulting rate of fire of the weapon.

Since you canÂt compensate at all for spread, itÂs obviously the main limiting factor when you talk about the performance of a weapon at range. It turns out that there is a rate of fire which gives you near-perfect accuracy on each shot in single-fire. Knowing this rate of fire may have applications for long-range shooting. However, as these tend to be rather high, I honestly donÂt expect us console peasants to worry too much about this, though itÂs definitely possible to get into the range of firerates at which this value is exceeded on console, much less PC.

Recoil tends to be much the same, except vertical recoil can be completely controlled and horizontal recoil can at least be somewhat compensated for. However, as the equations are linked, I decided it would be worth deriving and posting both equations at the same time.

These two factors, spread and recoil, limit your maximum rate of fire when firing in bursts of limited length. As such, it is important to understand where they tend to be for each weapon.

Assumptions:
1) Spread and recoil recovery start when the next shot could be fired.
2) Recoil recovers by finding the shortest route to the default aiming pointÂthe hypotenuse of a triangle defined by horizontal recoil and vertical recoil.
3) No recoil compensation is performed.

Derivation of Equations
This all stems from the equation linking rate of fire and time between shots:
60/(RoF*(time between shots))=1

Spread recovery starts when the next round could be fired, at 60/RoF seconds.

Take 60/<this value> to get your new rate of fire. ItÂs actually quite simple.

In performing this estimation for bursts and sustained fire, interestingly enough, the length of the burst drops out of the equation for average spread recovery firerate. However, it heavily complicates the equation for recoil recovery (in the average case).

The Equations Themselves
The equations given calculate average fire rates. A longer burst requires more time to settle after itÂs done but the time between individual shots in the burst is shorter. Therefore, I felt justified in giving the averages rather than the timeline of shots.

n is the number of shots fired. The other values should be self-explanatory.

HRecoil is chosen by you. If you want to find just the vertical recoil value and assume that the weapon doesnÂt deviate horizontally (ideal, but not realistic), set HRecoil equal to zero. YouÂll derive the vertical recoil equation. If you want to calculate the worst-case scenario (also not realistic), set HRecoil equal to its maximum value to either side. If you want to calculate the normal behavior, find the horizontal recoilÂs center and use that value. Note that on some weapons (those with balanced recoil), the center of recoil will be 0.

Recoil recoveryÂgeneral case
RoF=60*n/[(60*n/RoF)+(RecoilLength/RecoilDec)]
Where RecoilLength is the length of a straight line between your aiming point and where the barrel is pointed. ItÂs the hypotenuse of a right triangle defined by horizontal and vertical recoil. Below are the equations for RecoilLength in all different cases.

Recoil recoveryÂjust verticalÂsingle or burst
RecoilLength=VRecoil*(InitialMultiplier+(n-1))

Recoil recoveryÂhorizontal and verticalÂsingle-fire
RecoilLength=sqrt{(VRecoil*InitialMultiplier)^2+HRecoil^2}

Recoil recoveryÂhorizontal and verticalÂburst
RecoilLength=sqrt{[VRecoil*(InitialMultiplier+n-1)]^2+(HRecoil*n)^2}

MATLAB Code

### Quick Instructions for the first function

Call the program from your Command Window as [a,b]=RecoveryFireRate( <inputs> ). Then look up a and b from your Workspace. a is the spread recovery rate of fire, b is the recoil recovery rate of fire.

### MATLAB function text to calculate both--copy/paste/save for best effect

%The inputs should be self-explanatory. Assume that spread and recoil
%recovery starts when the next round can be fired.

%For horizontal recoil, choose between the center of recoil (average), 0
%for pure vertical recoil, or the maximum value to see the worst-case
%average.

n=ShotsFired;

Net_Vertical_Recoil=VRecoil*InitialMultiplier+(n-1)*VRecoil;
Net_Horizontal_Recoil=HRecoil*n;

RecoilLength=sqrt(Net_Vertical_Recoil^2+Net_Horizontal_Recoil^2);
%This is the length of the hypotenuse created by the recoil. Recoil
%recovery acts along this line.

Recoil_Reset_RPM=n*60/(n*60/RoF+RecoilLength/RDecrease);
end

### Quick instructions for the second program

Just call it in the Command Window as BestRecoveryRate( <inputs> ) and the ans output will be the rate of fire limited by whichever natural recovery rate is worse.

### MATLAB function to calculate your maximum effective rate of fire permitting both recoil and spread to recover naturally

function [RecoveryROF] = BestRecoveryRate(ShotsFired,RoF,SIncrease,SDecrease,VRecoil,HRecoil,RDecrease,InitialMultiplier)
%The inputs should be self-explanatory. Assume that spread and recoil
%recovery starts when the next round can be fired.

%For horizontal recoil, choose between the center of recoil (average), 0
%for pure vertical recoil, or the maximum value to see the worst-case
%average.

n=ShotsFired;

Net_Vertical_Recoil=VRecoil*InitialMultiplier+(n-1)*VRecoil;
Net_Horizontal_Recoil=HRecoil*n;

RecoilLength=sqrt(Net_Vertical_Recoil^2+Net_Horizontal_Recoil^2);
%This is the length of the hypotenuse created by the recoil. Recoil
%recovery acts along this line.

Recoil_Reset_RPM=n*60/(n*60/RoF+RecoilLength/RDecrease);

RecoveryROF=Recoil_Reset_RPM;
else
end
%Picks which recovery rate limits your rate of fire and selects that as
%If the two are too close for comparison, it averages them.

end

Summary and Conclusions
IÂve been using these equations in slightly simplified forms (and individually for each weapon) for some time now and my experience indicates that most weapons lose between approximately 50 and 150 rpm to let spread settle perfectly. Recoil is more trouble to calculate given its wide variety of values and dependency on burst length.

In a nutshell, for most weapons, feel free to spam the trigger while in single fire as itÂs hard to hit the maximum value for most weapons. Faster-firing weapons tend to lose more to their fire rates than slower-firing weapons of the same spread increase value.

The next post will contain spread recovery comparisons for each weapon. IÂll respond to questions and criticisms in the morning because itÂs 2am and IÂm tired from staying up and writing this.
Emperor Nick of the Cult of Defibrillation

I'm basically just a degenerate weeb who doesn't post much nowadays.

I'm secretly Old Man Symthic

You're fedorable

### Quoted from "ToTheSun!"

I have the highest postcount. Nick doesn't count.

### Quoted

23:44 Lt_Col_Jesus: I'm -
23:44 Lt_Col_Jesus: Okay
23:44 Lt_Col_Jesus: I'm stabbing everyone
23:44 Lt_Col_Jesus: Bye guys
23:44 Nick: *flips table*
23:44 Legion: Bye, happy stabbing
23:44 *** Lt_Col_Jesus quit (Quit: off to murder the public at large).

### Quoted

10:41 LB: You just...reanimated Steve Jobs.
10:41 Dice: Well that would be unfortunate, I was just getting used to him being dead.

### Quoted from "Pheozero"

... fuck. Damn you hindsight!

### Quoted

23:58 Failure117: CAUSE IM FREEE
23:58 Nick: AS A BIIIIRD NOW
23:58 Failure117: FREEE OF NICK'S WORM RAPE

### Quoted

ViperFTW: HEY LOOK
ViperFTW: AN ALIEN LASER FISH THE SIZE OF THE SUN
ViperFTW: I WANT TO SWAT IT WITH MY COMICLY LARGE SWORD
ViperFTW: WITH
ViperFTW: THIS
ViperFTW: AS
ViperFTW: MY
ViperFTW: FUUUUCKING SOUNDTRACK DDD
(the album in question)

This post has been edited 1 times, last edit by "Blue Panda" (Aug 12th 2013, 1:19am)

2manyPosts4me

Posts: 9,755

Date of registration
: Jan 7th 2012

Platform: PC

Location: 'Murrica

Battlelog:

Reputation modifier: 19

Saturday, January 12th 2013, 8:01am

For some reason, the far right column is getting cut off on my screen. The link below is for anyone who's having the same issue.
http://i.imgur.com/uHW5J.png
Emperor Nick of the Cult of Defibrillation

I'm basically just a degenerate weeb who doesn't post much nowadays.

I'm secretly Old Man Symthic

You're fedorable

### Quoted from "ToTheSun!"

I have the highest postcount. Nick doesn't count.

### Quoted

23:44 Lt_Col_Jesus: I'm -
23:44 Lt_Col_Jesus: Okay
23:44 Lt_Col_Jesus: I'm stabbing everyone
23:44 Lt_Col_Jesus: Bye guys
23:44 Nick: *flips table*
23:44 Legion: Bye, happy stabbing
23:44 *** Lt_Col_Jesus quit (Quit: off to murder the public at large).

### Quoted

10:41 LB: You just...reanimated Steve Jobs.
10:41 Dice: Well that would be unfortunate, I was just getting used to him being dead.

### Quoted from "Pheozero"

... fuck. Damn you hindsight!

### Quoted

23:58 Failure117: CAUSE IM FREEE
23:58 Nick: AS A BIIIIRD NOW
23:58 Failure117: FREEE OF NICK'S WORM RAPE

### Quoted

ViperFTW: HEY LOOK
ViperFTW: AN ALIEN LASER FISH THE SIZE OF THE SUN
ViperFTW: I WANT TO SWAT IT WITH MY COMICLY LARGE SWORD
ViperFTW: WITH
ViperFTW: THIS
ViperFTW: AS
ViperFTW: MY
ViperFTW: FUUUUCKING SOUNDTRACK DDD
(the album in question)

Respected

Posts: 1,487

Date of registration
: Jul 20th 2012

Platform: PC

Battlelog:

Reputation modifier: 15

Saturday, January 12th 2013, 8:43am

are we assuming a 2 round burst here, or does it not matter?

either way, REALLY good work nick.

Posts: 549

Date of registration
: Dec 24th 2011

Platform: PC

Battlelog:

Reputation modifier: 10

Saturday, January 12th 2013, 8:57am

This is a very interesting theory (if it's safe for me to call it that)! I'm sure that many of the very technical members here will look into it.

Too bad that belt-fed machine guns don't have semi-automatic modes though (which is to be authentic of course). I could imagine doing the recoil test with the QJY-88 (Type 88 LMG) equipped with the bipod and flash suppressor since the recoil margin would be very low. The L85A2 is the best substitute I can find that has a semi-automatic mode. For the in-game tests, you would obviously use a "rapid fire" controller that can register a hefty of inputs (R1/RB presses) within a second.

EDIT: If I'm doing it correctly, then it seems like the AS Val should have a rate of fire of roughly 895 rounds per minute in the semi-automatic mode as long as it keeps on its horizontal recoil center (0.05 right). (This is using the recoil method.) So, that seems like good news for anybody that wants to abuse some sort of modded or third-party controller while maintaining the AS Val's initial recoil for every shot. With the extreme horizontal recoil (0.3 right), it still maintains a rate of fire of roughly 891 rounds per minute. So, that's virtually no recoil as the gun would resettle almost completely after each shot. You would just need to watch out a bit for spread at that firing speed.

This post has been edited 2 times, last edit by "CReaperDorian" (Jan 12th 2013, 9:24am)

Posts: 1,009

Date of registration
: Jan 7th 2012

Platform: PC

Location: Australia

Battlelog:

Reputation modifier: 9

Saturday, January 12th 2013, 10:19am

Amazing work.
POI~

Too cool for a title

Posts: 872

Date of registration
: Jun 4th 2012

Platform: PC

Location: Germany

Battlelog:

Reputation modifier: 6

Saturday, January 12th 2013, 10:45am

Why does the UMP have 2 different Spread Recovery Values?
Random comma is, random

### Quoted from "The World Champion"

like some kind of all kit terribad M16 clone.

Oh, an all kit m416?

Steam ID: greenatacker

Moderator

Posts: 2,606

Date of registration
: Feb 10th 2012

Platform: PC

Location: Avalon, Somerset, England

Battlelog:

Reputation modifier: 12

Saturday, January 12th 2013, 12:40pm

### Quoted from "Greenatacker"

Why does the UMP have 2 different Spread Recovery Values?

I assume this is because it has 0.1 Spread Inc. when standing but 0.06 for crouching and prone.
Forum Rules

### Quoted from "J0hn-Stuart-Mill"

Hey guys, lets all remember here that this is Symthic, and we are all mature enough to debate a topic without becoming emotional or insulting. Ad Hominim attacks only demonstrate that your position is weak and that you've run out of supporting evidence and serve to undermine your own position. I hope no one here drops to that level.

### Quoted from "ViperFTW"

[Auto's] voice is like butter on the ears

### Quoted from "Mickey"

I am quite positive auto's worst fear is a forum with no threads that need to be locked.

Cheapnub

Unregistered

Saturday, January 12th 2013, 12:54pm

Awesome work!

When I was making my neurotical AR BSH analysis, I too was thinking of this. I just briefly calculated the time you have to wait inbetween bursts, and that's it. But this...this is way more detailed and worked-out on this particular stat.
Either way, this is a very interesting workout. The effectiveness-nerds will be going to love this

If I may add in a little suggestion: I noticed that as your burst becomes bigger (going from a 3-round burst to a 5-round burst), when using a weapon with a faster ROF, the difference between the spread recovery ROF and the normal ROF becomes less and less (percentage-wise), in comparison to the slower weapons. This might be something that you will want to look into.

PS would you mind if I would link to this thread in my AR BSH topic, to clarify this particular stat a bit?

Be Creative.

Posts: 7,811

Date of registration
: Mar 9th 2012

Platform: PC

Location: Portugal

Reputation modifier: 19

Saturday, January 12th 2013, 3:49pm

I'd revise those charts with actual in-game data. Since you don't have a PC, maybe ask rezal to do it? Pretty sure he'll find some inconsistencies.

2manyPosts4me

Posts: 9,755

Date of registration
: Jan 7th 2012

Platform: PC

Location: 'Murrica

Battlelog:

Reputation modifier: 19

Saturday, January 12th 2013, 5:33pm

@tehmoriz
The spread recovery rates are for all burst lengths. The length of the burst drops out of the equation when you do the derivation. However it's an average. The time between shots in a 2-round burst is shorter but the recovery time is longer. Interestingly enough, they result in the same average rate of fire.

@Dorian
Assuming you compensate completely for vertical recoil, when looking at just the average horizontal recoil, you have 60/(60/900+.05/15) = 857 rounds per minute.

@Green
See Auto's post.

@Cheap
As far as the burst length goes, when I derived the spread equation, the length of the burst dropped out. The time for spread recovery is n*SInc/SDec and the time you're been firing is n*60/RoF. Add them together and take 60*n/<this number> and the n's divide out.

@Sun
That's why I said in my assumptions list that spread recovery started after the delay. Keep me posted on testing results.
Emperor Nick of the Cult of Defibrillation

I'm basically just a degenerate weeb who doesn't post much nowadays.

I'm secretly Old Man Symthic

You're fedorable

### Quoted from "ToTheSun!"

I have the highest postcount. Nick doesn't count.

### Quoted

23:44 Lt_Col_Jesus: I'm -
23:44 Lt_Col_Jesus: Okay
23:44 Lt_Col_Jesus: I'm stabbing everyone
23:44 Lt_Col_Jesus: Bye guys
23:44 Nick: *flips table*
23:44 Legion: Bye, happy stabbing
23:44 *** Lt_Col_Jesus quit (Quit: off to murder the public at large).

### Quoted

10:41 LB: You just...reanimated Steve Jobs.
10:41 Dice: Well that would be unfortunate, I was just getting used to him being dead.

### Quoted from "Pheozero"

... fuck. Damn you hindsight!

### Quoted

23:58 Failure117: CAUSE IM FREEE
23:58 Nick: AS A BIIIIRD NOW
23:58 Failure117: FREEE OF NICK'S WORM RAPE

### Quoted

ViperFTW: HEY LOOK
ViperFTW: AN ALIEN LASER FISH THE SIZE OF THE SUN
ViperFTW: I WANT TO SWAT IT WITH MY COMICLY LARGE SWORD
ViperFTW: WITH
ViperFTW: THIS
ViperFTW: AS
ViperFTW: MY
ViperFTW: FUUUUCKING SOUNDTRACK DDD
(the album in question)