With the release of Just Cause 3, a lot of gamers wondered why the game performs so horribly on both the PC and current-gen consoles, especially when Mad Max was a top-notch title. Was it because the game was developed by the New York studio of Avalanche (and not the Stockholm one that was responsible for Mad Max)? Or is it more of a technical issue? And why was Mad Max supporting SLI but not Just Cause 3? Well, Avalanche Studios has detailed the differences between the Mad Max and the Just Cause 3 engines.
First and foremost, these two titles use completely different versions of the Avalanche Engine. The engine powering Mad Max was relying on old lighting paths, whereas the updated version that powers Just Cause 3 is focused on current-gen platforms and features a new lighting system.
Going into more details, the Mad Max Engine sports a classic deferred shading system with 3 G-buffers, whereas the Just Cause 3 Engine features a clustered deferred shading system with 4 G-buffers. And while the ‘old’ engine supports a Flexible Lighting Setup, it does not support Physically Based Lighting.
Regarding Mad Max’s Engine, Avalanche had this to say:
“After Just Cause 2 we ended going the deferred shading route, initially using classic deferred. This worked relatively well for last generation console hardware and allowed us to support many more lights, different light types, shadow casting dynamic lights etc. This was great, but naturally we also got all the downsides of deferred shading, such as problems with transparency, problems with custom material or lighting models, as well as large increase in memory consumption. Initially we supported MSAA, but ultimately we dropped it in favor of FXAA for performance and memory reasons.
Unfortunately, the old forward pass also had to stick around for transparency to work to some extent, although it only ever supported pointlights and the lighting didn’t quite match the much more sophisticated deferred pass. For Mad Max we ultimately moved away from supporting transparency with lighting because of its problems with deferred, plus that the game environment has very little need for transparency anyway beyond particle effects. But for other projects where transparency might be desirable we started looking into alternatives, especially with a new generation consoles on the horizon at the time. “
And as for the Just Cause 3 Engine, here is what Avalanche claimed:
“For Just Cause 3, which is next-gen/PC only, we went with Clustered Shading as our main lighting solution. For this kind of game it really wasn’t a feasible solution to drop transparency. We are still using deferred, but with clustered shading we can use the same lighting data for doing lighting in the forward passes for transparent objects. A nice bonus of having properly working transparency is that we could now use the Wire AA technique we invented. We have attempted to add this to Mad Max as well, but it has been much more problematic in a classic deferred context, so it’s questionable at this point if we will use it to any greater extent in that game. For Just Cause 3 it mostly just worked out of the box.”
In addition, Avalanche shared a CPU Performance graph, showing how better optimized its current-gen version of Avalanche Engine actually is. According to the team, the new engine is 30-50% more CPU efficient than the previous iteration, thanks mainly to all the CPU optimizations that have been made.
“Given that we are doing the light assignment on the CPU, one may suspect that this will become a significant burden for the CPU. However, our implementation is fast enough to actually save us a bunch of CPU time over our previous solution. In a normal artist lit scene we recorded 0.1ms on one core for clustered shading. The old code supporting our previous forward pass for transparency that was still running in our system was still consuming 0.67ms for the same scene, a cost that we can now eliminate.
As of this writing, further optimizations have been made resulting in another 30-50% lower CPU cost than previously.”
Now this new lighting system may explain why there is no support for multi-GPU systems as of right now. Yes, Mad Max supported SLI/Crossfire right out of the box, however its engine relied on the team’s old-gen lighting system. Avalanche Studios claimed that it’s listening to its fanbase and will address most of its issues. Our guess is that the team will add multi-GPU support via a patch, though the big question is whether or not this new lighting system is friendly to such systems.
Let’s also not forget that Just Cause 3 has more things happening on screen than Mad Max. Naturally, this puts more stress to both the CPU (after all, the game uses Havok for its physics calculations) and the GPU.
Still, this latest info will give you an insight into the reasons why Mad Max and Just Cause 3 perform so differently on current-gen consoles and PC.