What kind of noise is Spread?

I've been recently playing around with math/simulations quite a bit to see the statistics of H & V recoil and their interaction with spread. This of course then depends on how spread in implemented in BF3. The aim of this thread is to see if there is an overall consensus about spread mechanics and to then explore how this affects our interpretation of the spread values / gun.

So, each gun is given a minimum spread and a spread increase per shot. Thinking of a continuous burst in isolation of other game activities affecting spread, the maximum spread for any given shot is given by

MaxSpread = MinSpread + NumberOfShots * SpreadIncrease,

where NumberOfShots, is the number of shots before the current shot.

To grasp how this number affects shooting in-game, we need to make assumptions about how spread is implemented in game code. I presume that Symplot is based on these too.

Assumption #1: Spread value is the radius within which random values are obtained. (Discussed earlier here.)

Assumption #2: A given realization of spread is obtained by creating a vector that in polar coordinates has a random angle (-pi...+pi) and a length ranging with from 0 to Spread with an uniform random distribution. (As implied by tehmoriz here.) In an equation for spread around the aim, this assumption means that

Spread(r,theta) = MaxSpread * rand(0,1) * exp(i * theta),

where the term r = MaxSpread*rand(0,1) is an uniform probability for every distance from the aimpoint for MaxSpread. Exp(i*theta) just expresses the random phase angle.

Question: Is there any way to test these assumptions in-game or from code or by personal communications w/DICE? Does the Symthic community agree with these premises?

If these assumptions are correct, there are interesting implications on the statistics of Spread distribution. Please look below:

2. "Cumulative Area of Inner Discs": because the area inside a circle is A = pi*r^2, the area increases much slower than the amount of hits. More exactly, the fraction of total area is proportional to the square of radius. Red box is for radius = 0.25 and shows that the area inside this radius is 6.25 % (0.25^2) of the total area. Likewise, the green box shows that a radius of 0.5 encompasses 25% (0.5^2) of the total area.

3. "10000 Hits" shows random values created with this mechanism. The points would correspond to shot with an arbitrary gun aimed at (0,0) having a MaxSpread = 1 degrees. Every annulus of a given width has an equal amount of hits regardless of its proximity to 0,0 (see 1.) and hence the Hits are much more dense in the center than in the surroundings. The red and green lines again show radii 0.25 and 0.5, and correspondingly contain 25 and 50% of all Hits.

4. "Distribution of X values": a histogram of X values (think horizontal recoil and spread!) of the circular distribution is pointy and decays towards larger radii. If spread values were uniformly distributed in the circle: this distribution would be flat. It can be made flatter by changing the equation r = MaxSpread*rand(0,1) to r = MaxSpread*SQRT(rand(0,1)) (...think DICE & noobification of BF). Can we dissociate these alternatives? The distribution is important to know, because pointy and flat distributions interact in different ways with the Normal distribution (H Recoil is Normally distributed ... I'm getting back to this later).

tl;dr, if the assumptions are correct, spread (excluding recoil) can be understood so that N% (say, 25%) of all hits are around the aimpoint within the radius of N% (25%) of the current Spread value. Comments?

"Less is more? How can that be? How could less be more, that's impossible. More is more." Yngwie Malmsten
"Many bullets help." WoopsyYaya
"most rhetorically legitimate ad hominem 2015" ToTheSun!

This post has been edited 4 times, last edit by "3VerstsNorth" (May 8th 2013, 2:27pm)

If you fired one shot, with a spread increase of 0.1 and a base spread of 0.2, your shot would be fired at 0.2 spread, but the max spread ends at 0.3. Are the hits in the graph there accurately represented by that? I know that the effect over such a large sample size is probably negligible, but still...

Sig

The T-90 is a challenge, the BTR-90 is going to kill everyone in a 100 meter radius and go flying off a hill into a helicopter only to drive off while the corpse of the Cobra it just went through is being dragged through the beach on Oman.

IKEA is the problem! Its all Desksdesksdesksdesksdesksdesksdesksdesks but oh, oh the second you say you want a table they chuckle and say "A table? You mean a kitchen table? How about a bedside table? Oh! Oh you must mean a dining room table!" and I'm like "NO! NO I JUST WANT A STANDARD, BLACK, BORING TABLE!" and they look at me then smile and go "You mean this? Â£170..."

Quoted

Is there any way to test these assumptions in-game or from code or by personal communications w/DICE

In-game testing for this is problematic simply because of randomish recoil (right?) plus it wouldn't give reliable values. Checking game code is possible but I guess it's part of compiled code so it would require reverse engineering skills to do that. As for asking DICE, I have no idea.

About the assumption. Couldn't it also be recursive formula? Instead of increasing number of shots it sums up last calculated spread and new spread or something similar.

Links to users' thread list who have made analytical/statistical/mathematical/cool posts on Symthic:

3VerstsNorth - Analysis of game mechanics in BF4 (tickrates, effects of tickrate, etc)

Quoted

Is there any way to test these assumptions in-game or from code or by personal communications w/DICE

In-game testing for this is problematic simply because of randomish recoil (right?) plus it wouldn't give reliable values. Checking game code is possible but I guess it's part of compiled code so it would require reverse engineering skills to do that. As for asking DICE, I have no idea.

About the assumption. Couldn't it also be recursive formula? Instead of increasing number of shots it sums up last calculated spread and new spread or something similar.

Agree about in-game, although there are symthicians that have so good recoil compensation skills that testing with a low-recoil gun "quantifiable" conditions (known distance from wall and known FOV) could actually deliver data for dissociating the radial noise (here) vs. uniform noise hypotheses.

Asking DICE would be easiest ofc if anyone has the connection.

Re recursivity, I doubt it because 1. it would turn spread from noise into a random walk which could interact really weirdly with the random walk of aimpoint (H Recoil) and 2. programming spread is easiest with the equation above and I know that programmers are fucking lazy when it comes to getting the job done in a simple vs. in a complex manner . On the other hand, in the absence of evidence, anything's possible.

"Less is more? How can that be? How could less be more, that's impossible. More is more." Yngwie Malmsten
"Many bullets help." WoopsyYaya
"most rhetorically legitimate ad hominem 2015" ToTheSun!

I think it was implicitly confirmed somewhere in the plotic thread. However for long bursts you can see how the angle is not independent of the previous shot.

Ok, interesting, thanks! The dependence on the previous shot(s) could still be caused by the H recoil though. H recoil does have an iterative formula and which will always lead to shot-to-shot correlations even with perfect compensation of the mean H recoil.

"Less is more? How can that be? How could less be more, that's impossible. More is more." Yngwie Malmsten
"Many bullets help." WoopsyYaya
"most rhetorically legitimate ad hominem 2015" ToTheSun!

Ok, let's take 50 rounds of bipodded M60. Without spread, the aim location will wander around like this:

When the horizontal component (vertical ignored for clarity here) spread is added, the aimpoint+spread will look like this:

So, already after ~5 shots, spread dominates the angle where bullets end up flying (I can compute this more precisely later...). If hitmarks on wall are not spread all over (= uncorrelated), the spread mechanism is not the one assumed here.

...time to go shooting at walls?

"Less is more? How can that be? How could less be more, that's impossible. More is more." Yngwie Malmsten
"Many bullets help." WoopsyYaya
"most rhetorically legitimate ad hominem 2015" ToTheSun!

This post has been edited 1 times, last edit by "3VerstsNorth" (May 8th 2013, 8:20pm) with the following reason: Spread in lower figure now has the correct SpreadIncreasePerShot (was 0.12, now 0.012 when considering the 0.1 multiplier from bipod).