If you read our post on the rFactor 2 March roadmap update, you may remember that Studio 397 was testing a new update at the time, which was supposed to bring significant performance improvements to the sim. Testing has now successfully been completed and the update is live!
How Was it Done?
As the general idea was to make the game smoother without changing its visuals, the so-called “frame time” is what you want to optimise, i.e. the time it takes to render a single frame. For the experience to be as smooth as possible, you want the obviously want the frame time to be super fast, but also constant.
To achieve the best possible balance of speed and consistency, Studio 397 tackled three key areas: GPU’s, CPU’s and the buses between the two components and the memory.
Wait, bus? Are we not talking about car racing here? We sure are. In computer architecture, the bus describes all the connections between the different components which are used to exchange data for example. It is often the bottleneck of a system as its capabilities are quite limited compared to the sheer speed at which data can be computed now. Hence, you want to keep bus traffic to a minimum.
First of all, thanks to DirectX 11, multiple graphics threads – code running in parallel – can be used with the GPU, and the CPU can be involved a lot more effectively too. For rFactor 2, this multi-threading especially came to good use with shadow rendering. Plus, shadows for each screen are not rendered separately anymore, giving VR and triple-screen setups an extra performance boost.
More and very specific optimisations in terms of CPU and GPU happened for handling of spotlights, brake disk glow, road updates, and especially to reduce GPU load, the most used and critical shaders were improved.
A big emphasis was also put on reducing traffic between CPU and GPU to put less stress on the data bus and therefore furtherly improve performance.
Then There is the New HUD!
The new and now default rFactor 2 HUD is ready and included with the latest update!
But that is not all. The changelog is quite sizeable and might reveal one or two very welcome addition, like the ability to adjust the levels of in-car vs opponent sound via a new dampening setting on a per-car basis.
- Released the newly designed HUD, optimized for Full HD screens and anything else with that aspect ratio, and made it the default. We have removed our old HUD designs from the install.
- The “deltabest” indication gets reset at the start of a session only, instead of every time you get in the car. We also make sure to only show it when you’re on a valid lap.
- Ensured that the Low Speed Indicator (LSI) is still transparent.
- Fixed an issue with the AI throttle and brake application, which would cause poor accelleration at very low AI strengths.
- Changed the way opponent volume works. If you set them to 100% in the past, they were way too loud. If you turned them down, they would not be as loud as the player car in external cameras. We introduced a damping factor now for the cockpit that can be configured per car and defaults to 0.3 that solves this issue.
- The number of engine samples was increased to 12 and the number of transmission samples to 6 to allow much richer sounds for both.
- Changed the way in which we combine primary and alternate inputs for the throttle, brake and steering to end up with more consistent behaviour for both.
- When using keyboard rates for analog, typically used with game controllers, we apply a lot of smoothing which initially results in a fast response, but eventually responds very slowly, making a car hard to control. We’ve designed a new algorithm that works a lot better and is more linear.
- We have added some new 64 bit compatible 3D Studio Max 2012 plugins. They are still in “beta” but have been used at Studio 397 for some time now. These should help anyone working on larger scenes. Please note that, in order to improve stability, we strongly recommend updating Max to Service Pack 2.
- As we no longer support Max 2010 and 2011, those plugins have now been removed.
- We have removed gJED, as we feel the tool in its current state did not meet our quality standards.
- The plugin API has been enhanced and bumped to version 8, with improved application life cycle support. This brings back some of the data we had to remove because it was mixed with DirectX 9 information that we could no longer support. We also added the deltabest time for all cars. The new package and documentation for it will be released on our site soon after this release.
- Fixed the join/leave/join messages and unnecessary reloading of a car when you joined a server with car upgrades selected.
- Fixed a bug in our SteamPlugin which accidentally returned the wrong API version, causing the game to try to invoke it wrongly and crash.
- Fixed viewer crash on startup.
- Fixed the very dark areas on the car in the showroom, which was caused by us not correctly setting up ambient light.
- Fixed black screen that some people got when starting the physics (ptool) and tyre (ttool) tools.
- Removed a redundant log file from the Steam distribution as it would cause a verify ever on every check.
- Fixed two issues with the 32 bits version that crashed in specific circumstances.
- Displaying the performance info now works on VR as well.