MechWarrior 5: Mercenaries Developer on NVIDIA RTX and NVIDIA DLSS: We’ll Get the Greatest Benefit from Doing Both
As promised, here's another in-depth interview focused on the implementation of the brand new NVIDIA RTX (raytracing) and DLSS (deep learning supersampling) technologies featured on the new GeForce RTX cards.
This time around, we talked with Alexander Garden, Producer at Piranha Games, the studio behind MechWarrior 5: Mercenaries. The first single-player focused MechWarrior experience since 2002, this game was made with Unreal Engine 4 specifically for the PC platform. It's now due sometime in 2019, meaning Piranha Games will have plenty of time to optimize both NVIDIA RTX and NVIDIA DLSS features ahead of launch.
How long have you been working on getting raytracing into MechWarrior 5: Mercenaries? Was it a complicated process?
We began working with NVIDIA on raytracing support in early July, and the integration process was fairly straightforward for us. MechWarrior 5 is built with Unreal Engine 4. Our raytracing work to this point was all done using a distinct branch of the engine, as support for it at the engine level is still under development. So in terms of initial implementation, we had the benefit of the invaluable groundwork already in place from Epic Games and NVIDIA.
A greater amount of time was spent refining the Hangar environment and raytracing aesthetics we demonstrated during the NVIDIA RTX event at Gamescom. It took a few weeks to get there and primarily involved material, lighting, and layout changes. Much of this work was done in tandem with a general overhaul and improvement pass that was already underway on the player Hangar hub space we’re using in MechWarrior 5: Mercenaries, so it was a good fit in terms of our existing production pipeline. Not a lot of that was on display in the stage demo due to the focused lighting and staging of the single MechBay, though.
The big talking point on the Web now is the performance hit that comes with raytracing, even on the high-end GeForce RTX 2080Ti card. Can you reveal how MechWarrior 5: Mercenaries is currently handling the RTX features in terms of resolution and frame rate? Do you expect significantly improved performance after the final optimization pass?
This may go without saying, but it’s worth stressing that we can only speak to our specific case when it comes to performance. I expect every team, every title is likely to be a little different, even between titles that are using the same engine. Optimization is a long process, and at least at this early stage, we weren’t focusing our resources toward it a great deal. By the end of our work in this phase, we were operating at 60fps with raytraced shadows and ambient occlusion at 1080p and maxed out quality settings, down to around 30 when we activated raytraced reflections together with those two features. The reflections aren’t cheap, no doubt about that, but with additional optimization on our end and continued work from NVIDIA, I expect all of the raytraced features to be a perfectly performant option in our case.
Since you'll have multiple raytraced features, I'm wondering which one stands out the most in your opinion. Also, will you allow players to activate or deactivate them individually in the settings panel?
In a suitable environment, reflections. No question. Being familiar with current reflection solutions, raytraced reflections are straight up amazing. Speaking generally though, it can really depend on the use-case. With environments or assets that really leverage the tech the dynamic raytraced reflections stand out the most simply due to the stark difference in fidelity; it’s the most night-and-day case. My experience so far is that people can sometimes miss all the scene improvements when it comes to shadows or ambient occlusion, particularly when there’s a lot of shadowed geometry; they want to see it back and forth a couple times to really notice the differences. The improvement in reflections is immediately obvious to everyone.
Our intention is to give people as much control over the settings as possible; you’ll be able to set them independently, and I expect we’ll be providing some quality-level adjustment options as well.
Can you explain your implementation of NVIDIA DLSS in the game? How hard was it adding it? Does it improve image quality compared to TAA? What kind of performance improvements have you seen after enabling it?
DLSS support for MechWarrior 5: Mercenaries is something we only started looking at very recently, with the team over at NVIDIA doing the initial testing, so it’s a little too early for us to provide any real details about implementation or our experience with it. The tech is really promising though; really looking forward to working with it.
After noticing that the GeForce RTX cards are equipped with both raytracing (RT) cores and Tensor cores for DLSS, I surmised that the optimal solution for a game developer would be to implement both raytracing and DLSS at once as they are clearly meant to work together. Do you agree? In your opinion, are we going to see several games adopting both as you do with MechWarrior 5: Mercenaries?
You could say they’re meant to work together in the sense that the hardware is specifically built to accommodate the two systems, but one doesn’t really require the other. Image quality as a whole will benefit from DLSS, and the raytraced features would benefit by extension. So we’ll get the greatest benefit from doing both, but it isn’t necessarily a requirement.
I can’t speak specifically toward DLSS at the moment, but in terms of raytracing feature support, at this point I think it’s hard to say for now what kind of coverage we’ll see going forward in games as a whole, or in terms of average support levels for raytracing features. We’re still in the early days here, even though this tech has been on a path to maturity for some time now. I think the idea of what constitutes an optimal solution can be really specific to each developer and the game they’re making.
Once we evaluated the benefits of the tech, the performance impact, the integration process, the artistic requirements, and the end result of it all, we determined the optimal approach for us was full raytracing support and doing whatever we need for leveraging DLSS. We wanted to go all-in. The optimal solution for another team may be entirely different, whether due to the type of the game they’re making, the internal resources available to them, the engine they’re using, and so on.
When it comes to features like this, from a development and production perspective I think it comes down to a question of internal resource investment compared to the level of visible return. A title featuring environments or assets where reflections aren’t really going to be on clear display may end in a case of minimal visible return at the cost of significant development investment, particularly if you’re talking about smaller teams. Artists still need to follow through on leveraging the tech; engineers need to follow through on maintenance and optimization. Basic implementation will be relatively easy, but I think developers are likely to get burned if they don’t follow through and polish from there.
Thank you for your time.