We are continuously trying to improve performance as well as add more content to the maps. These two things often pull in opposite directions as more objects in the game gives more hiding places while also hurting performance. We try to keep ahead of the issues of bad performance by tracking performance over the different builds.
The game is set up so it reports the framerate you get to the server and that is one of the parameters used to evaluate performance. We currently split the data into 3 groups. Players consistently getting more than 60 frames (they do not need performance optimizations right now), players getting up to 60 frames pr. second and players getting up to 30 frames pr. second.
Below you can see the the average FPS for the last 3 builds for players with an average framerate between 0 and 60.
Looking a bit closer on these numbers we get a mean value of 29.39 for Hansen, 28.48 for Irwin & 30.26 for Jefferson.
Those numbers look decent enough so let us take a closer look at the development on the lower end of the scale.
This shows us a peak around 20 fps and mean values of 18.09 (Hansen), 18.10 (Irwin) & 17.96 (Jefferson).
SO! what can we learn from this?
Well, the average framerate has been more or less stable around 30 for the last 3 builds (remember there are a lot more people with lower to normal machines and laptops, than there are high-end gaming beasts), but of course an average fps value does not tell the whole story.
If the game then runs at 50 FPS normally and 30 in iron sights you get a mean value of 48FPS. That is (for example’s sake an OK framerate for playing). IF we then shuffle things around and improve your normal framerate from 50 to 52 FPS, but unfortunately something breaks in iron sights and now you only get 13 FPS in iron sights. Then the mean would jump from 48 to 48.1 even though the game experience is worse than before as you would hardly notice the jump from 50 to 52, but you would [em]really[/em] notice the drop from 30 to 13.
Knowing this; we are currently looking into identifying the various cases where performance drops in specific situations or in specific locations so we can optimize the game in these situations and eliminate the frame drops. This involves both digging into the performance data we collect (that’ll be Reto.CrazyCat doing that) and also identifying the various performance bottlenecks and generally improving performance. It seems that part of the problem stems from an unholy alliance between loading resources/textures from disk, moving these into graphics memory, overall graphics performance on some configurations and CPU power.