Post by bel on Nov 21, 2011 7:16:21 GMT -5
Alright, baby, now we're talking.
This was originally going to be a post in the bullet data thread, but it's become a monster so I'm making it a thread. Like a couple of other people, I've used the wonderful frankelstner's wonderful python scripts to rip the game data into text files. Den, if you're interested, it works and it comes out readable, but BF3 has a totally insane number of variables.
Personally, I'm interested in recoil, because that's something we can't quantify without the numbers, so I thought I'd have a hunt for that. Turns out It's hell-complicated. They weren't joking when they said every gun has 5000 variables.
I'm going to look just at the SCAR-H as an example, and see what we can find. We get (for the SCAR-H only):
Spread values (for all stances and situations (run/jump etc), for both ads and hipfire)
Horizontal and vertical recoil values
Received suppression effects
Attachment effects on accuracy
------------------------------------------
So let's go.
GunSwayData seems to be the heading for all of the accuracy information.
Spread appears to be called "dispersion", and looks like it's in angles in degrees. It's controlled by four variables:
My guess is that these operate the way they did in BC2, and that MinAngle is the cone on the first bullet, and MaxAngle is the widest the cone can get, incrementing by InceasePerShot and fighting against DecreasePerSecond.
The game has set values of these four variables for every possible combination of stance, zoom/unzoom and action, for every single gun. That's a ton of stuff. What it works out to is blocks arranged as:
Which is a completely insane amount of data. I think I'll try and write a script to rip it all, sometime this week.
SPREAD
It's not really helpful to dump all the numbers cold, but I'll run an example with some of the values for the SCAR to illustrate a few things:
SPREAD RUNDOWN
If you don't want to read the stat dump, I'll go over the important stuff we can pull just from this. Keep in mind, all of this is only for the SCAR so far. I'll have to check some other weapons at some stage.
1. Hip spread decreases slightly from stand->crouch->prone (which you can confirm in game by the size of your crosshair).
2. Stance does not affect ads accuracy; the zoom numbers are the same for prone, stand and crouch.
3. Even on the first shot in ads, the SCAR has a single-bullet deviation of 0.3 degrees. It's not pinpoint accurate on the first bullet. I can't see anything to indicate this might be different in single-fire, but it could be.
4. Moving while in ads significantly decreases your first-shot accuracy, but does not affect the maximum spread from prolonged spray.
5. Jumping immediately maxes out your spread even in ads, and then some. Don't bunny hop.
------------------------------
RECOIL
There's another variable called "Recoil" at [Stance]-[Zoom]-Recoil. This would be gun kick. It does not appear to change from stance to stance, though, so I'll just present it once.
I assume "recoil" is vertical and "horizontal recoil" is what it says on the tin. It's interesting to note that upwards recoil always increments, but horizontal recoil will randomly increment/decrement. That would cause the gun to twitch side-to-side and climb steadily upwards, which is exactly what we see for the SCAR-H.
I'm not sure what those units really are. Degrees would be consistent, but 10 degrees worth of recoil seems absurd even as a maximum.
----------------------------------------------------
SUPPRESSION EFFECTS,
(both zoomed and unzoomed, again, for the SCAR-H only; everything is weapon-specific):
My guess is that this is additive, not multiplicative. Multiplying the increment by 0.07 would significantly help your accuracy, not hinder it. Plus there are some others like MaxAngle that are modified by "0.0", which certainly can't be a multiplier.
So, suppression hugely decreases your first-shot accuracy, and doubles your spread-added per shot.
------------------------------------------------------
ATTACHMENTS:
Here's where it gets interesting.
All weapon-altering attachments have a file listing the ways they modify the spread and recoil values. To prevent it being a massive data dump, I'll only post the values which are changed by the attachment. Assume that it's the same for all stances unless I give explicitly different values.
These are still pulled from the SCAR-H's unique files, but as far as I can see the attachment effects are consistent between weapons.
The laser pointer:
My guess is these ones are multiplicative, unlike the suppression modifiers, as most of the other values are 1.0, not 0.0.
So the laser pointer multiplies your unzoomed MinAngle by 0.67, making your initial shots more accurate when firing from the hip. It does nothing when ADS'd. Hear me, all you snipers using laser pointers because it makes you feel like you're in Delta Force.
The foregrip:
Which is a little interesting as to what it means. There's no variable called "Recoil angle" that I've seen, recoil is done with seperate values for vertical and horizontal amplitude (se above). But nonetheless, the foregrip definitely directs recoil upwards, so I assume it multiplies the HorizontalRecoilAmplitudes by 0.5.
The heavy barrel:
So:
Heavy barrel halves the starting spread when ads'd, but increases your per-shot increment by 50%, and your upwards recoil by 20%.
From the hip, the heavy barrel has no benefits, but still increases your spread per shot and recoil. The spread increment actually makes a big difference when spraying.
The flash suppressor:
So it increases your max angle (which probably only matters when hip-spraying), and your per-shot increment (which always matters).
On the plus side, it has no effect on MinAngle, so your gun doesn't lose accuracy on its first shot, only sustained fire. I'd seen Demize99 tweet something to this effect at some stage, so it looks like he knew what he was talking about.
The bipod:
So the bipod just pretty much makes life swell. It increases first-shot accuracy, decreases per-shot increment, and cuts both vertical and horizontal recoil. It's worth noting that it cuts vertical recoil slightly more, so it promotes a circular rather than rising recoil pattern.
Interestingly, it doesn't affect your maximum or the recovery rate, so if you're going to use your whole LMG clip, you're actually going to be just as inaccurate by the end with or without the bipod.
Also, there's a variable at the end of the file that indicates its modifiers come into effect "OnlyInSupportedShooting," which is pretty self explanatory.
The silencer:
So the silencer halves your initial spread, and decreases your vertical recoil slightly. This file has no information on damage, or the infamous visible-on-minimap thing. I'll have a look elsewhere for that eventually.
--------------------------------------------------------------
Well, that's my essay for today. Keep in mind all of this is a) just for the SCAR-H and b) not 100% confirmed, because the stat files are huge and there might be modifiers I've missed. There also seem to be a number of deprecated variables, like RecoilAmplitudeX,Y,Z, which are all set to 0.0. The variables I've reported are the ones I believe are the most likely to be in use by the game.
I also don't know whether frankelstner's tool is perfect yet; there's a couple of seemingly nonsensical numbers elsewhere in the file that could be DICE or could be the text conversion. He could speak on that if he reads this.
My next project is to see what's different from gun-to-gun, particularly in the attachment modifier stuff, and to try and write a script to pull all this data straight out into a more readable format for every gun, not just the one I'm looking at. Otherwise this will be an absolutely mammoth task.
This was originally going to be a post in the bullet data thread, but it's become a monster so I'm making it a thread. Like a couple of other people, I've used the wonderful frankelstner's wonderful python scripts to rip the game data into text files. Den, if you're interested, it works and it comes out readable, but BF3 has a totally insane number of variables.
Personally, I'm interested in recoil, because that's something we can't quantify without the numbers, so I thought I'd have a hunt for that. Turns out It's hell-complicated. They weren't joking when they said every gun has 5000 variables.
I'm going to look just at the SCAR-H as an example, and see what we can find. We get (for the SCAR-H only):
Spread values (for all stances and situations (run/jump etc), for both ads and hipfire)
Horizontal and vertical recoil values
Received suppression effects
Attachment effects on accuracy
------------------------------------------
So let's go.
GunSwayData seems to be the heading for all of the accuracy information.
Spread appears to be called "dispersion", and looks like it's in angles in degrees. It's controlled by four variables:
MinAngle
MaxAngle
IncreasePerShot
DecreasePerSecond
My guess is that these operate the way they did in BC2, and that MinAngle is the cone on the first bullet, and MaxAngle is the widest the cone can get, incrementing by InceasePerShot and fighting against DecreasePerSecond.
The game has set values of these four variables for every possible combination of stance, zoom/unzoom and action, for every single gun. That's a ton of stuff. What it works out to is blocks arranged as:
Stand
NoZoom
Base
Move
Jump
Sprint
VaultSmall
VaultMedium
Recoil
GunSwayLag
Zoom
[ditto]
Crouch
[ditto]
[ditto]
Prone
[ditto]
[ditto]
Which is a completely insane amount of data. I think I'll try and write a script to rip it all, sometime this week.
SPREAD
It's not really helpful to dump all the numbers cold, but I'll run an example with some of the values for the SCAR to illustrate a few things:
SCAR-H
Standing
Unzoomed
Base
GunSwayDispersionData
MinAngle 2.5
MaxAngle 7.0
IncreasePerShot 0.0799999982119
DecreasePerSecond 11.0
Moving
GunSwayDispersionData
MinAngle 3.0
MaxAngle 7.0
IncreasePerShot 0.0799999982119
DecreasePerSecond 11.0
Jumping
GunSwayDispersionData
MinAngle 7.0
MaxAngle 7.0
IncreasePerShot 0.0799999982119
DecreasePerSecond 11.0
Zoomed
Base:
MinAngle 0.300000011921
MaxAngle 3.0
IncreasePerShot 0.0799999982119
DecreasePerSecond 11.0
Moving:
GunSwayDispersionData
MinAngle 1.20000004768
MaxAngle 3.0
IncreasePerShot 0.0799999982119
DecreasePerSecond 11.0
Jumping:
MinAngle 7.0
MaxAngle 7.0
IncreasePerShot 0.0799999982119
DecreasePerSecond 11.0
Crouching
NoZoom
Base
MinAngle 2.0
MaxAngle 7.0
IncreasePerShot 0.0799999982119
DecreasePerSecond 11.0
Moving
GunSwayDispersionData
MinAngle 2.5
MaxAngle 7.0
IncreasePerShot 0.0799999982119
DecreasePerSecond 11.0
Zoom
BaseValue
GunSwayDispersionData
MinAngle 0.300000011921
MaxAngle 3.0
IncreasePerShot 0.0799999982119
DecreasePerSecond 11.0
Moving
MinAngle 1.20000004768
MaxAngle 3.0
IncreasePerShot 0.0799999982119
DecreasePerSecond 11.0
Prone
NoZoom
BaseValue
MinAngle 1.5
MaxAngle 7.0
IncreasePerShot 0.0799999982119
DecreasePerSecond 11.0
Moving
GunSwayDispersionData
MinAngle 2.0
MaxAngle 7.0
IncreasePerShot 0.0799999982119
DecreasePerSecond 11.0
Zoom
BaseValue
GunSwayDispersionData
MinAngle 0.300000011921
MaxAngle 3.0
IncreasePerShot 0.0799999982119
DecreasePerSecond 11.0
Moving
GunSwayDispersionData
MinAngle 1.20000004768
MaxAngle 3.0
IncreasePerShot 0.0799999982119
DecreasePerSecond 11.0
SPREAD RUNDOWN
If you don't want to read the stat dump, I'll go over the important stuff we can pull just from this. Keep in mind, all of this is only for the SCAR so far. I'll have to check some other weapons at some stage.
1. Hip spread decreases slightly from stand->crouch->prone (which you can confirm in game by the size of your crosshair).
2. Stance does not affect ads accuracy; the zoom numbers are the same for prone, stand and crouch.
3. Even on the first shot in ads, the SCAR has a single-bullet deviation of 0.3 degrees. It's not pinpoint accurate on the first bullet. I can't see anything to indicate this might be different in single-fire, but it could be.
4. Moving while in ads significantly decreases your first-shot accuracy, but does not affect the maximum spread from prolonged spray.
5. Jumping immediately maxes out your spread even in ads, and then some. Don't bunny hop.
------------------------------
RECOIL
There's another variable called "Recoil" at [Stance]-[Zoom]-Recoil. This would be gun kick. It does not appear to change from stance to stance, though, so I'll just present it once.
Recoil
RecoilAmplitudeMax 10.0
RecoilAmplitudeIncPerShot 0.5
HorizontalRecoilAmplitudeIncPerShotMin -0.20000000298
HorizontalRecoilAmplitudeIncPerShotMax 0.20000000298
HorizontalRecoilAmplitudeMax 10.0
RecoilAmplitudeDecreaseFactor 15.0
I assume "recoil" is vertical and "horizontal recoil" is what it says on the tin. It's interesting to note that upwards recoil always increments, but horizontal recoil will randomly increment/decrement. That would cause the gun to twitch side-to-side and climb steadily upwards, which is exactly what we see for the SCAR-H.
I'm not sure what those units really are. Degrees would be consistent, but 10 degrees worth of recoil seems absurd even as a maximum.
----------------------------------------------------
SUPPRESSION EFFECTS,
(both zoomed and unzoomed, again, for the SCAR-H only; everything is weapon-specific):
DispersionMod
MinAngleModifier 1.5
IncreasePerShotModifier 0.0799999982119
RecoilAngleMod 1.0
My guess is that this is additive, not multiplicative. Multiplying the increment by 0.07 would significantly help your accuracy, not hinder it. Plus there are some others like MaxAngle that are modified by "0.0", which certainly can't be a multiplier.
So, suppression hugely decreases your first-shot accuracy, and doubles your spread-added per shot.
------------------------------------------------------
ATTACHMENTS:
Here's where it gets interesting.
All weapon-altering attachments have a file listing the ways they modify the spread and recoil values. To prevent it being a massive data dump, I'll only post the values which are changed by the attachment. Assume that it's the same for all stances unless I give explicitly different values.
These are still pulled from the SCAR-H's unique files, but as far as I can see the attachment effects are consistent between weapons.
The laser pointer:
Unzoomed
MinAngleModifier 0.670000016689
Zoomed
MinAngleModifier 1.0
My guess is these ones are multiplicative, unlike the suppression modifiers, as most of the other values are 1.0, not 0.0.
So the laser pointer multiplies your unzoomed MinAngle by 0.67, making your initial shots more accurate when firing from the hip. It does nothing when ADS'd. Hear me, all you snipers using laser pointers because it makes you feel like you're in Delta Force.
The foregrip:
RecoilAngleMod 0.5
(All other modifiers 1.0 or 0.0)
Which is a little interesting as to what it means. There's no variable called "Recoil angle" that I've seen, recoil is done with seperate values for vertical and horizontal amplitude (se above). But nonetheless, the foregrip definitely directs recoil upwards, so I assume it multiplies the HorizontalRecoilAmplitudes by 0.5.
The heavy barrel:
Zoomed
MinAngleModifier 0.5
IncreasePerShotModifier 1.5
RecoilMagnitudeMod 1.20000004768
Unzoomed
MinAngleModifier 1.0
IncreasePerShotModifier 1.5
RecoilMagnitudeMod 1.20000004768
So:
Heavy barrel halves the starting spread when ads'd, but increases your per-shot increment by 50%, and your upwards recoil by 20%.
From the hip, the heavy barrel has no benefits, but still increases your spread per shot and recoil. The spread increment actually makes a big difference when spraying.
The flash suppressor:
MaxAngleModifier 1.5
IncreasePerShotModifier 1.25
(All stances and zoom/nozoom)
So it increases your max angle (which probably only matters when hip-spraying), and your per-shot increment (which always matters).
On the plus side, it has no effect on MinAngle, so your gun doesn't lose accuracy on its first shot, only sustained fire. I'd seen Demize99 tweet something to this effect at some stage, so it looks like he knew what he was talking about.
The bipod:
MinAngleModifier 0.5
MaxAngleModifier 1.0
IncreasePerShotModifier 0.5
DecreasePerSecondModifier 1.0
RecoilMagnitudeMod 0.5
RecoilAngleMod 0.670000016689
(All stances and zoom/unzoom)
So the bipod just pretty much makes life swell. It increases first-shot accuracy, decreases per-shot increment, and cuts both vertical and horizontal recoil. It's worth noting that it cuts vertical recoil slightly more, so it promotes a circular rather than rising recoil pattern.
Interestingly, it doesn't affect your maximum or the recovery rate, so if you're going to use your whole LMG clip, you're actually going to be just as inaccurate by the end with or without the bipod.
Also, there's a variable at the end of the file that indicates its modifiers come into effect "OnlyInSupportedShooting," which is pretty self explanatory.
The silencer:
Zoomed
MinAngleModifier 0.5
RecoilMagnitudeMod 0.899999976158
Unzoomed
MinAngleModifier 1.34000003338
RecoilMagnitudeMod 0.899999976158
So the silencer halves your initial spread, and decreases your vertical recoil slightly. This file has no information on damage, or the infamous visible-on-minimap thing. I'll have a look elsewhere for that eventually.
--------------------------------------------------------------
Well, that's my essay for today. Keep in mind all of this is a) just for the SCAR-H and b) not 100% confirmed, because the stat files are huge and there might be modifiers I've missed. There also seem to be a number of deprecated variables, like RecoilAmplitudeX,Y,Z, which are all set to 0.0. The variables I've reported are the ones I believe are the most likely to be in use by the game.
I also don't know whether frankelstner's tool is perfect yet; there's a couple of seemingly nonsensical numbers elsewhere in the file that could be DICE or could be the text conversion. He could speak on that if he reads this.
My next project is to see what's different from gun-to-gun, particularly in the attachment modifier stuff, and to try and write a script to pull all this data straight out into a more readable format for every gun, not just the one I'm looking at. Otherwise this will be an absolutely mammoth task.