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.

Hey! If this is your first visit on symthic.com, also check out our weapon damage charts.
Currently we have charts for Battlefield 3, Call of Duty: Black Ops 2, Medal of Honor: Warfighter and Call of Duty: Modern Warfare 3

  • "leptis" started this thread

Posts: 282

Date of registration
: Mar 17th 2015

Platform: PC

Battlelog:

Reputation modifier: 8

  • Send private message

1

Sunday, December 18th 2016, 9:19pm

BF1 moving spread

Credits to @Miffyli for the records and many comments and to @elementofprgress for update the required scripts.

The purpose of this thread is to give the structure of the moving spread in BF1 (parameters and times).

Analyzing the memory records we realized that the spread was a dynamic value that was constantly attributed to the soldier in the function of its movement, NOT ONLY WHEN FIRING. This allows us to record its variations when the soldier moves EVEN IN THE STATES WHERE HE CAN NOT SHOOT (Sprinting or Jumping).

The value of the spread is recorded in two circuits (ADS and HIPFIRING states) with the following movements FORWARD-SPRINTING (only HIP)-STRAFING-BACKWARD, separated by stop phases and a jump (two records for each weapon). NO SHOOTS ARE MADE DURING TEST.

This provides records like this (MG15 LW) - (ADS always blue, HIP always red):

Spoiler Spoiler




In an old thread (2014), WoopsyYaya gave a formula to calculate the spread moving ADS in BF4.

Moving ADS spread values

The formula (without weapon modifiers by atachements or bullpup) is:

Actual Spread = (ADSMoveMin-ADSBaseMin) x Modifier + ADSBaseMin


The first step was to analyze the state of the art of BF4, analyzing BF4-AEK to validate the formula of WoopsyYaya.

The records were these:

Spoiler Spoiler



Their analysis (anomalies in jumping not analyzed) provided the following results where the value "WoopsyYaya" is the value provided by the formula with Modifier = 0.50 for Forward and 0.50x0.75 for Backward and Strafing and "Deducted Modifier" is the modifier that should be used to comply with this formula. Original weapon parameters are given.

Spoiler Spoiler



It can be seen that the formula is true for ADS (the formula was explicitly for this assumption), but not for HIPFIRING if we use 0.50 as the generic modifier for FORWARD (x = 0.75 strafing or backward). The modifier for this assumption is 1.00 ... but with this modifier we are left without formula because what it is saying to us is that in HIPFIRING the spread is simply HIPMoveMin (the value = 0.75 for strafing and backward is still valid). To remember the penalty with high movement (Sprinting and jumping).

In BF1 they have been analyzed with the same methodology AUTOMATICO FACTORY, M1907 TRENCH, MG15 LOW WEIGHT and LEWIS LOW WEIGHT (one assault weapon, one medic rifle and two LMGs).

The values registered and the modifier deducted with the structure WoopsyYaya are:

Spoiler Spoiler




CONCLUSIONS FOR PARAMETERS

- The FORWARD, SPRINTING (in HIP), STRAFING and BACKWARD spread values are the same in every ADS and HIPFIRING state. NO DISTINCTION (0.75 factor is not applied). No advantage is gained by choosing a specific type of movement (for example to surround obstacles or corners). No penalty for SPRINTING.

- Although the values of the basic multipliers are the same as those found in BF4 (= 0.50 for ADS and 1.00 for HIPFIRING), this allows to express the values of the moving spread in a much simpler way than the formula, which creates the illusion of a general validity (any state) that it does not have:




In ADS simply the average of the indicated parameters and in HIPFIRING always HIPMoveMin. Not formula is needed.

- The "jumping" values show a different response of types of weapons in high level of movement states. This would only matter in transitions to a "ready-to-shoot" state. It emphasizes the NON-PENALTY of LMGs (always ready to shoot at nominal spread). Maybe that's why a "Sprint Recovery" delay has been introduced (see Transitions). In any case, remember the effect of Spread FSM to realize the real value of the spread, not only the initial parameter.

The values of the modifiers corresponding to "jumping" are given as an indicator of the response to high movement states. The generalization to the types of weapons can be somewhat reckless because it is not validated by a sufficient number of weapons.

Spoiler Spoiler



To emphasize that the Spread in high level of movement states CAN EXCEED HIPMoveMax that can not be taken as the maximum possible in some cases.

As the records provide the value of the spread by time it is possible to analyze the times and the forms of transitions between movement states.

Transitions are of this type (Automatico Factory: Still to forward and forward to still):

Spoiler Spoiler



The increasing transitions seem to be a uniformly non-uniformly decelerated movement increasing, and the decreasing ones appear to be linear, although an initial and final leap of greater magnitude can be seen.

After many analyzes (too many) which seemed to show that the change pattern was of order 4 (perhaps the composition of two quadratic models, one for the acceleration of the soldier and another for the correlation speed- spread) I realized that the question was much simpler.

TRANSITION TIMES WERE FIXED, regardless of the amount of the change in spread. There isn't a rate of spread/time. Only time is fixed. This is logical because the transition time depends only on the physics of the soldier, how he accelerates and how he stops, not on the magnitude of the spread variation. That's why it should be the same for all weapons.

Taking into account the possible error margins in the measurements (the sampling step was 5 milliseconds so each measurement can have a margin of error of 10 milliseconds and it is difficult to appreciate initial and final points and specially the point of tangency in the growing movements), this allows us to make the hypothesis that they can be (only can be) round values like these:

Spoiler Spoiler



In the event that we accept that the "Sprint Recovery Time" (time the soldier takes to be ready to fire after sprint stops in HIP) is applied after the decrease, these times should be added:

Automatico: 67ms
M1907 : 67ms
MG15 :167ms
Lewis :167ms

Note the over-penaty of LMGs

This post has been edited 4 times, last edit by "leptis" (Dec 20th 2016, 11:26am)


NoctyrneSAGA

PvF 2017 Champion

(9,607)

Posts: 6,965

Date of registration
: Apr 3rd 2012

Platform: PC

Battlelog:

Reputation modifier: 19

  • Send private message

2

Sunday, December 18th 2016, 10:12pm

- The FORWARD, SPRINTING (in HIP), STRAFING and BACKWARD spread values are the same in every ADS and HIPFIRING state. NO DISTINCTION (0.75 factor is not applied). No advantage is gained by choosing a specific type of movement (for example to surround obstacles or corners). No penalty for SPRINTING.


Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
CharacterStatePoseInfo a266a8697cdfad4bb55f99536f2551f6
    $::DataContainer
    PoseType CharacterPoseType_Stand
    Velocity 3.4
    AccelerationGain 0.27
    AccelerationGain_TickRateMult 0.038
    AccelerationGain_TickRatePower 0.35
    DecelerationGain -20.0
    DecelerationGain_TickRateMult -0.234
    DecelerationGain_TickRatePower 0.63
    DirectionChangeAccelerationGain 0.125
    DirectionChangeThreshold 45.0
    SprintGain 0.15
    SprintGain_TickRateMult 0.038
    SprintGain_TickRatePower 0.35
    SprintMultiplier 1.775
    SpeedModifier::SpeedModifierData
        ForwardConstant 1.0
        BackwardConstant 1.0
        LeftConstant 1.0
        RightConstant 1.0
    ShallowWaterMultiplier 0.75


Derived from DefaultSoldierPhysics. This particular block is dedicated to a soldier standing on the ground.

Take a look at the SpeedModifier array.

Notice how the modifiers are all 1.0x.

In BF4, only forward was set to 1.0x. The other three were set to 0.75x.

This explains what you are seeing in regards to the moving spread in BF1.
Data Browser

Passive Spotting is the future!

With this, I'll rid MGO3 of infestation. Sans bad gameplay MGO3 will be torn asunder. And then it shall be free. People will suffer, of course - a phantom pain.

Reddit and Konami will rewrite the records... And I will be demonized in human memory. But... The thirst for good gameplay that I have planted will infest MGO3. No one can stop it now. The Rebalance Mod will unleash that thirst unto the future.


Are you a scrub?

If it flies, it dies™.

Miffyli

Symthic Developer

(6,088)

Posts: 3,650

Date of registration
: Mar 21st 2013

Platform: PC

Location: __main__, Finland

Reputation modifier: 16

  • Send private message

3

Sunday, December 18th 2016, 11:33pm

@NoctyrneSAGA

Dang, I knew I should have included the movement velocities to check how those have changed. Oh well, at least we know there doesn't seem to be anything too special added now ^^
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)
  • leptis - Analysis of shotguns, recoil, recoil control and air drag.
  • Veritable - Scoring of BF4/BF1 firearms in terms of usability, firing and other mechanics.
  • Miffyli - Random statistical analysis of BF4 battlereports/players and kill-distances. (list is cluttered with other threads).
Sorry if your name wasn't on the list, I honestly can't recall all names : ( . Nudge me if you want to be included

  • "leptis" started this thread

Posts: 282

Date of registration
: Mar 17th 2015

Platform: PC

Battlelog:

Reputation modifier: 8

  • Send private message

4

Monday, December 19th 2016, 12:20pm

Derived from DefaultSoldierPhysics. This particular block is dedicated to a soldier standing on the ground.

Take a look at the SpeedModifier array.

Notice how the modifiers are all 1.0x.

In BF4, only forward was set to 1.0x. The other three were set to 0.75x.

This explains what you are seeing in regards to the moving spread in BF1.



I have been working with those DefaultSoldierPhysics (too much as I said, a headache) trying to find how the soldier's speed varies, this is

V = f (t)

And how the spread varies in relation to the soldier's speed

Spread = f (V)

To find Spread = f [f (t)]

But it is difficult to find the composition because there is no information of the speed recorded to validate the hypotheses and in composite functions the composition can be any. Simply stated, to obtain a value 4 the composition can be 2 + 2 or 2x2 or even 3 + 1.

The complexity of the DefaultSoldierPhysics does not help either.

In any case, it is not a very transcendent issue because the transitions occur without the player can do anything to modify them. With the total transition time and with the spread attributed to the state of motion may be sufficient.

It would have been interesting how transitions between states occur, for instance HIPforward ----> ADSforward or HIPSprint ----> ADSforward directly.

Do we know the speed of the soldier "forward" and "sprinting"?.

VincentNZ

Holy War? No Thanks.

(2,088)

Posts: 2,586

Date of registration
: Jul 25th 2013

Platform: PC

Battlelog:

Reputation modifier: 14

  • Send private message

5

Monday, December 19th 2016, 12:38pm

Slightly off-topic is strafing sideways faster than in BF4? I've noticed that I had trouble hitting people that strafed left and right, much more than compared to BF4 in all circumstances?

  • "leptis" started this thread

Posts: 282

Date of registration
: Mar 17th 2015

Platform: PC

Battlelog:

Reputation modifier: 8

  • Send private message

6

Monday, December 19th 2016, 12:46pm

Slightly off-topic is strafing sideways faster than in BF4? I've noticed that I had trouble hitting people that strafed left and right, much more than compared to BF4 in all circumstances?


In BF1 STAND strafing and backward speed is comparatively faster than in BF4. In Bf4 was 75%x forward. Now is 100%.

VincentNZ

Holy War? No Thanks.

(2,088)

Posts: 2,586

Date of registration
: Jul 25th 2013

Platform: PC

Battlelog:

Reputation modifier: 14

  • Send private message

7

Monday, December 19th 2016, 12:51pm

Slightly off-topic is strafing sideways faster than in BF4? I've noticed that I had trouble hitting people that strafed left and right, much more than compared to BF4 in all circumstances?


In BF1 STAND strafing and backward speed is comparatively faster than in BF4. In Bf4 was 75%x forward. Now is 100%.


Okay so I read that right. This of course than has quite an outcome on moving spread than, actually making it more accurate comparatively to BF4, when strafing. Personally I think it is too fast, I did like the moving speed of BF4, what do you think caused this change? To make moving spread consistent?

Do these speed changes also apply to ADS moving speed?

Whatever the reason, I find that quite irritating. It does feel natural that you would strafe and move backwards at a lower speed than walking forward.

  • "leptis" started this thread

Posts: 282

Date of registration
: Mar 17th 2015

Platform: PC

Battlelog:

Reputation modifier: 8

  • Send private message

8

Monday, December 19th 2016, 3:03pm

Whatever the reason, I find that quite irritating. It does feel natural that you would strafe and move backwards at a lower speed than walking forward.


We are judging the soldier's speed through an indirect indicator, which is the assigned spread and it has some peculiarities ( forward and sprint have the same spread but not the same speed).

I do not know what is the reasons for DICE to have simplified the model, with equal Forward-Backward-Strafing speeds.

In DefaultSoldierPhysics there are many different speeds for STAND that do not seem to apply in game (better: I dont know when they applied).

It would not have been difficult to grade those movements better, even allowing movements such Slow-Strafing (for better positioning or shooting accurately) and Fast-Strafing (for melee shooting or covering). It would serve the same key as for "sprint" and the same phillosophy than forward-sprint.

I think Miffyli has been left with the concern of working on the subject of speeds. :)

This post has been edited 1 times, last edit by "leptis" (Dec 19th 2016, 7:32pm)


NoctyrneSAGA

PvF 2017 Champion

(9,607)

Posts: 6,965

Date of registration
: Apr 3rd 2012

Platform: PC

Battlelog:

Reputation modifier: 19

  • Send private message

9

Monday, December 19th 2016, 7:29pm

Do we know the speed of the soldier "forward" and "sprinting"?.


Forward would be ForwardConstant * Velocity which in OnGroundState with PoseType Standing is 1.0 * 3.4.

Sprinting is simply the 1.775x sprint multiplier applied on top of that.

I believe your moving spread penalty is based on how close you are to your current state's maximum speed.

We still have to consider optics modifying your speed as well IIRC.
Data Browser

Passive Spotting is the future!

With this, I'll rid MGO3 of infestation. Sans bad gameplay MGO3 will be torn asunder. And then it shall be free. People will suffer, of course - a phantom pain.

Reddit and Konami will rewrite the records... And I will be demonized in human memory. But... The thirst for good gameplay that I have planted will infest MGO3. No one can stop it now. The Rebalance Mod will unleash that thirst unto the future.


Are you a scrub?

If it flies, it dies™.

  • "leptis" started this thread

Posts: 282

Date of registration
: Mar 17th 2015

Platform: PC

Battlelog:

Reputation modifier: 8

  • Send private message

10

Monday, December 19th 2016, 11:28pm

I believe your moving spread penalty is based on how close you are to your current state's maximum speed.



Just to play with math. Without practical consequences. :) :)

Obviously the spread penalty is "based on" how close you are to your current state's maximum speed.

The problem is how it depends. And it can be made dependent on the elapsed time, the time to reach the final state, the difference of the spread with the final spread or any other way of formulating it. These are simple variable changes.

Here is the graph of a transition:



In blue variation of the spread and in red variation of the spread per unit of time, that is to say an "acceleration". The initial "impulse" can be equated with an "initial velocity". It is decelerated over time, with a non-constant acceleration which again depends on time and non-linearly. This indicates that functions are of order greater than 2.

We can adjust the total variation of the spread with a polynomial curve obtaining a good fit from the order 4.



This is not uncommon. Almost any curve can be fitted to a polynomial (this is called Taylor Series). If you go to the WolframAlpha web (wonderful web for math lovers) and enter, for instance, SIN (x) you will see that it can be adjusted by SIN (x) = X- (X ^ 3) / 6 + (X ^ 5) / 120 + ..... and SIN(x) is a really geometrically complex function.

The order only indicates that the dependency is complex and can be any.

Look at this graph:



It seems promising to adjust the "acceleration" we have seen ... the only problem is that it is generated with the inverse of hyperbolic sine of time: totally arbitrary. Dozens of adjustments can count without knowing how the soldier's speed varies or how soldier's speed and spread are combined.