Tag Archives: mechanics

FPS vs RoF

Rate of Fire vs Framerate

It’s a somewhat widely known phenomenon that the Rate of Fire of PlanetSide 2 weapons depends on your PC’s performance. Getting killed because your PC lags too much is bad enough, but dying because your gun literally shoots slower than the other guys’ is just horrible.

Unfortunately, this seems to be the limitation of PlanetSide 2’s engine, and there’s not much the current development team can do to fix it. 

There is a lot of drama revolving around this issue, and there seems to be  a lot of myths or unclear information, so I decided to run my own set of tests to find out what exactly causes the reduction in Rate of Fire, and how strong this effect is.

Usually game’s performance is bottlenecked either by CPU or GPU (Graphics Card). I wanted to figure out which of the two causes Rate of Fire issues. 

GPU Bound Results

Weapon Settings FPS Cap FPS Time, sec Expected Time
EM6
(600 RPM)
Very Low Uncapped ~200 ~20.3 (98%) 19.9
Usual Settings Uncapped ~180 ~20.7 (96%)
RTSS FPS Limiter = 120 120 ~21.2 (94%)
RTSS FPS Limiter = 150 150 ~21 (95%)
Smoothing ~120 ~20.3 (98%)
RQ = 1.41 Uncapped ~100 ~21.6 (92%)
RQ = 2.0 Uncapped ~50 ~23.1 (86%)
M18 Rotary
(1000 RPM)
Uncapped ~60 ~3.6 3.54
RTSS FPS Limiter = 30 30 ~3.6
Kobalt
(Sunderer)
(550 RPM)
Uncapped ~50 ~16.3 16.25
RTSS FPS Limiter = 30 30 ~16.3
EM6
(600 RPM)
MaximumFPS = 45 43 ~20.3 (98%) 19.9
RTSS FPS Limiter = 45 45 ~24.1 (83%)
Smoothing ~54 ~21.5 (93%)
Gauss SAW
(500 RPM)
Uncapped ~50 ~13.7 (87%)  11.88
Watchman
(857 RPM)
Uncapped ~10.9 (80%)  8.68
RTSS FPS Limiter = 30 30 ~12.6 (69%)  

For most of my tests I used EM6 with Extended Mags. It has convenient 600 RoF, which means the time period between two shots should be equal to 0.1 seconds. There are 199 time periods between 200 shots, so firing them should take 19.9 seconds.

To establish some baselines, first I recorded the time to empty a magazine using my Usual Settings, and then with all settings set to Very Low. In both cases I wasn’t capping FPS in any way, and RoF was close to expected values.

Test methodology: I went to Koltyr, stepped outside of the spawn building, and fired at full auto. I recorded using my shitty phone, as I wanted to avoid any potential impact from my own PC. I kinda forgot to disable Shadowplay’s background recording, though. I ran each test only once, and it’s possible the results would be inconsistent.

Then I used RTSS to cap FPS at 120, and then at 150. In both cases there was a negative impact to Rate of Fire.

Then I enabled Smoothing, which caps FPS at your monitor’s Refresh Rate. In my case, this is 120 Hz. That fixed the Rate of Fire issues.

Then I created a GPU-bound scenario by increasing Render Quality to 1.41, making the game render at double resolution, putting a lot of raw workload on my GTX 1060 3 GB. This had a noticeable negative impact to Rate of Fire.

Then I made GPU-bound situation more severe by increasing Render Quality to 2.0, making the game render at quadruple resolution. That reduced RoF even further, and introduced some horrible Input Lag.

Thanks to /u/Octiceps, we know that being GPU bound causes Input Lag, and indeed, it felt like an eternity would pass between moving the mouse and seeing the crosshair move on screen. According to my measurements, the delay was around 0.1 seconds, but it felt much longer, and the game would definitely be unplayable.

Capping the FPS by any means should remove the Input Lag. First I used RTSS to cap FPS at 45. That removed Input Lag, but impacted Rate of Fire even further.

Then I set an FPS limit through UserOptions.ini by setting MaximumFPS to 45. That removed Input Lag and solved the Rate of Fire issues. 

Note that according to Octiceps, using MaximumFPS to cap FPS still adds some Input Lag, but it seems miles better than being GPU bound, and I couldn’t feel any during my short tests.

I also ran a test with Smoothing enabled while GPU bound. In this case having an FPS cap at 120 should not have affected anything, but it’s possible that Smoothing actually does something else behind the scenes. And indeed the RoF impact was lower than while simply being GPU-bound, but it’s possible this was just a statistical margin of error. Since I’m lazy and ran each test only once, there’s no way to tell.

Finally, I wanted to test whether low RoF or high RoF weapons are more affected, so I removed the FPS Cap and ran tests with 500 RPM Gauss SAW and 857 RPM Watchman. As you can see from the results, the impact to higher RoF Watchman was nearly double.

Per /u/Punisherlceman’s suggestion, I ran tests with a couple of vehicle weapons, and surprisingly they seem to be unaffected by this issue at all. Even when I used RTSS to limit FPS at 30, which made the Watchman fire at 69% of its intended Rate of Fire.

CPU Bound Results

Weapon Settings FPS Time, sec Expected Time
EM6
(600 RPM)
1 Core, 1200 MHz ~25 ~24.4 sec (82%) 19.9  
4 Cores, 1200 MHz ~65 ~21.8 sec (91%)
1 Core, 4500 MHz ~120 ~20.6 sec (97%)

My CPU is Core i5 7600k. To create a CPU-bound scenario, I went to BIOS and manually reduced its maximum multiplier to 12 and disabled 3 of the 4 cores, as well as reduced memory frequency to 2133 MHz. 

For the test I set all settings to Very Low to make sure the FPS is not GPU-bound. 

It didn’t feel like there’s any Input Lag, but all animations would play at super low FPS, the famous “Doom Animations“. 

There was a significant impact to Rate of Fire. Then I increased the number of active cores to 4, and impact to RoF was not as huge, but it was still there. “Doom Animations” went away as the number of cores increased, so we can conclude that laggy animations happen when the CPU cannot handle several threads at the same time.

Normally my CPU runs at 4500 MHz, and RAM at 3000 MHz, so I went back to these settings, but once again left only one active core. I would still get laggy animations, but negative impact to RoF all but evaporated. 

During these tests the PlanetSide’s FPS counter was showing [GPU] half the time, in a situation where being GPU-bound is practically impossible, which just goes to show that indicator cannot be trusted.

It’s worth noting that while CPU-bound, the framarate fluctuated like crazy.

Second PC Results

Weapon Settings FPS Time, sec Expected Time
EM6
(600 RPM)
Low Settings, Uncapped FPS ~65 ~21 sec (95%) 20
High Settings, Uncapped FPS ~38 ~20.8 sec (95%)
Low Settings, Capped FPS 53 ~20.5 (98%)

I ran one more round of tests on my brother’s PC, who’s using entry-level Ryzen R3 1200, overclocked to 3.8 or 3.9 GHz, and an obsolete HD5770, middle of the road graphics card from 2009.

  • “Low Settings” = Very Low preset with Ultra Textures.
  • “High Settings” = Ultra Preset with Shadows Disabled. 
  • Render Distance of 800m and FullHD resolution in both cases.

Similar to before, there was considerable Input Lag while GPU-bound with uncapped FPS. Using MaximumFPS in UserOptions.ini to cap FPS at 55 removed Input Lag and mostly solved RoF issues. 

It’s interesting to note that even in worst case scenario RoF impact was not as severe as on my machine.

Conclusions

  • Rate of Fire is reduced when you are:
    • GPU-bound at low FPS.
    • Using RTSS to cap FPS.
    • CPU-bound by frequency.
  • It’s possible to have reduced RoF without any Input Lag.
  • You don’t need high FPS to fire at nearly full RoF.
  • RoF issues can be solved by:
    • Having very high FPS.
    • Setting an FPS Cap through MaximumFPS in UserOptions.ini just below your usual FPS.
    • Using Smoothing if your FPS is usually above your monitor’s Refresh Rate.
    • Preferring weapons with low Rate of Fire.

This set of tests is not intended as the last word on this topic, I mainly just wanted to see the problem with my own eyes and confirm tests done /u/ChasseurDePorcinet and /u/Datnade, and /u/Ahorns, as well as rule out Input Lag as the primary cause.

Aphelion VEX-4: Highly Technical Weapon Guide

Aphelion VEX-4 is an empire-specific secondary weapon for Vanu Sovereignty’s Magrider and Harasser. Harasser variant is less accurate and its minimum damage is one tier lower, but otherwise they are identical.

Aphelion has a couple of unique mechanics. For one, it starts firing at low Rate of Fire, which gradually increases over time, similar to TR’s Vulcan. It takes 1.5 seconds for Aphelion to reach full Rate of Fire, and in that time span it fires 6 shots.

If you let the Aphelion reach full Rate of Fire, then when you stop firing it will unleash an additional blade projectile, which has a larger hitbox, pinpoint accurate, and deals roughly 4 times the damage. Firing the blade projectile does not cost any ammo. 

Due to these unique mechanics, there are two main ways to engage with Aphelion: 

  1. Build up the Rate of Fire and keep firing at full auto, like you would with Vulcan.
  2. Interrupt fire every 1.5 seconds (6 shots) to repeatedly strike the enemy with blade projectile.

Let’s try and figure out which way is better in what situations.

Stats

Shared

AMMO 50 / 300
MAGAZINE SIZE UPGRADE +8 rounds
AMMO POOL UPGRADE +600 rounds
RELOAD TIME 3.0 sec
RELOAD TIME UPGRADED 2.4 sec
PROJECTILE VELOCITY 300 m/s
RATE OF FIRE 150 -> 400 RPM over 1.5 sec
FIRE DETECT RANGE 50m
DAMAGE RESIST TYPE 28 – Armor Piercing Chainguns
BLADE PROJECTILE DAMAGE 800 @ 20m – 680 @ 50m

Note that upgrading Magazine Size does not increase Ammo Pool.

Harasser Variant

DAMAGE 200 @ 10m – 125 @ 50m
CONE OF FIRE 0.85 -> 1.5
CONE OF FIRE BLOOM 0.1

Magrider Variant

DAMAGE 200 @ 10m – 143 @ 50m
CONE OF FIRE 0.7 -> 1.0
CONE OF FIRE BLOOM 0.05

Mechanics

Aphelion RPM over time
Click to enlarge

In PlanetSide 2, Rate of Fire is defined by Refire Time – the amount of time that must pass between shots. The graph above shows how Aphelion’s Refire Time changes over time. Numbers are calculated, and confirmed by in-game tests.

INITIAL RATE OF FIRE 150 RPM
INITIAL REFIRE TIME 400 ms
MAXIMUM RATE OF FIRE 400 RPM
MINIMUM REFIRE TIME 150 ms

Basically, 400 ms Refire Time is 150 RPM, and 150 ms Refire Time is 400 RPM. Try not to get lost in these numbers 🙂

Calculations for Blade Projectile

The blade projectile is triggered specifically by the amount of time you held the “fire” key, not by the number of shots. This is not affected by RoF vs FPS issue.

Since it takes 1.421 seconds to fire 6 shots, it is possible to fire 6 shots without triggering the blade projectile.

It worth noting that the blade always comes out perfectly horizontal, no matter the orientation of the gun, and the projectile does have a horizontal hitbox.

GroundTrooper

The Refire Time for sixth shot is 157 ms, so it will be 1.578 seconds before you can fire again. During that time, you will fire: 

  Magrider Harasser
Normal Shots 6 x 200 @ 10m – 143 @ 50m 6 x 200 @ 10m – 125 @ 50m
Blade Projectile 800 @ 20m – 680 @ 50m
Total Damage 2000 – 1538 2000 – 1430

For the purposes of damage-over-time calculations, we can treat one blade projectile cycle as one super shot that consumes 6 ammo and has a 1578 ms Refire Time.

Aphelion has the default Magazine Capacity of 50 rounds and a 3 second Reload. You can choose to upgrade one of them.

  Magazine Size Reload Time
Magazine Size Upgrade 58 3.0 sec
Reload Time Upgrade 50 2.4 sec

Magazine Size Upgrade

Upgrading Magazine Size lets you fire 9 blade projectile cycles, and then have 4 shots left over. Firing those 4 leftover shots the usual way is an overall DPS loss, so the proper way to take advantage of them is to extend the final blade projectile cycle.

  Magrider Harasser
8 BP cycles 8 * 1.578 = 12.624 seconds
9th BP cycle, extended 2.178 seconds
Reload Time 3.0 seconds
Total Time 17.802 seconds
Total Damage 18800 – 14414 18800 – 13370
DPS 1270 – 974 1270 – 903
DPS w/ Reload 1056 – 810 1056 – 751

Reload Speed Upgrade

The default magazine lets you fire 8 blade projectile cycles, and then have 2 shots left over. Once again, you should take advantage of them by extending the last blade projectile cycle.

  Magrider Harasser
7 BP cycles 7 * 1.578 = 11.046 seconds
8th BP cycle, extended 1.878 seconds
Reload Time 2.4 seconds
Total Time 15.324 seconds
Total Damage 16400 – 12590 16400 – 11690
DPS 1269 – 974 1269 – 905
DPS w/ Reload 1070 – 822 1049 – 763

As expected, upgrading Reload Speed leads to slightly higher damage over time. This is usually the case, because upgrading Magazine Capacity’s advantage is in allowing to maintain the same DPS for longer – Total Damage.

Calculations for Full Auto

We already know it takes 1.578 seconds to fire first 6 shots and reach full Rate of Fire. After that, Aphelion will continue firing with the Refire Time of 150 ms. One blade projectile will be fired when you have to stop for a reload.

Overall, you can think of this as of firing one BP cycle, and then firing off the rest of the magazine at 400 RPM.

First batch of numbers will be exact same as for Blade Projectile Calculations. The rest will depend on whether you upgrade Reload Time or Magazine Size.

Magazine Size Upgrade

With upgraded magazine, Aphelion will be able to fire 52 shots at maximum RoF.

  Magrider Harasser
1 BP cycle 1.578 seconds
Full Auto Time 7.8 seconds
Reload Time 3.0 seconds
Total Time 12.378 seconds
Total Damage 12400 – 8974 12400 – 7930
DPS 1322 – 957 1322 – 846
DPS w/ Reload 1002 – 725 1002 – 641

Reload Speed Upgrade

The default magazine lets you fire 44 shots at maximum RoF.

  Magrider Harasser
1 BP cycle 1.578 seconds
Full Auto Time 6.6 seconds
Reload Time 2.4 seconds
Total Time 10.578 seconds
Total Damage 10800 – 7830 10800 – 6930
DPS 1321 – 957 1321 – 847
DPS w/ Reload 1021 – 740 1021 – 655

Same as before, upgrading Reload Speed instead of Magazine Size allows to reach slightly higher total DPS. 

Conclusion

Until you have to reload, magdumping allows to reach marginally higher DPS, but at the cost of worse accuracy and spending more ammo. Practically, you should go for Blade Shots in nearly every situation. 

You can keep firing if you briefly lose line of sight or if you need to weaken the target just a few hits more so the wave secures the kill, otherwise there really is no reason to ever magdump. DPS gain is negligible, and you spend more ammo, and lose range and accuracy.

– /u/jackch3

Blade Shots are harder to perform mechanically – if you let go of the trigger too early, you will not fire the blade projectile, lowering your DPS.

Also, missing even a few blade projectiles will significantly reduce the effectiveness of that method. However, given that blade projectiles are easier to hit than normal shots, this shouldn’t be an issue. At least, not until you have to deal with blade projectile hitting cover around the target.

The mathematically ideal way to engage with Aphelion is to fire Blade Shots until you can finish off the target in Full Auto mode without reloading, securing the kill with one final blade projectile.

However, in actual gameplay this mathematical perfection is impossible to reach, and your brain power is better spent on something more useful than trying to figure out if it’s the time to switch to Full Auto just so you can deal ~4% higher DPS for a few seconds. 

Damage to Kill

As a bonus, here are some values of how much damage Aphelion needs to deal in order to kill certain targets:

Target Health Resistance Damage
Harasser 2500 60 6 250
Harasser Composite Armor 3000 7 500
Sunderer 5000 75 20 000
Sunderer Blockade Armor 6000 24 000
Deployment Shield +10 000 Effective Health
ANT 4000 75 16 000
ANT Reinforced Armor 4400 17 600
Lightning* 4000 75 16 000
Prowler* 5000 75 20 000
Vanguard* 6000 75 24 000
ESF 3000 65 8 572
ESF Composite Armor 3300 9 429
Valkyrie** 3000 75 12 000
Liberator*** 5 000 75 20 000
Galaxy 7 000 67 21 213

And DPM numbers for reference:

 

Damage per Reload

  Magrider Harasser
Blade Shots / Capacity 18800 – 14414 18800 – 13370
Blade Shots / Reload Speed 16400 – 12590 16400 – 11690
Full Auto / Capacity 12400 – 8974 12400 – 7930
Full Auto / Reload Speed 10800 – 7830 10800 – 6930

* – Tanks take double damage from the rear, so you would need to deal only half as much damage in order to destroy them.

** – Valkyries take only half damage from the bottom, so you would need to deal the double amount of damage in order to destroy them.

*** – Liberators take 80% damage from the bottom, so you would need to deal 25% more damage in order to destroy them.

These calculations should help you decide whether you want to focus on Magazine Size or Reload Speed, and which firemode to choose in which situation.