Brilliant visuals and growing pains: examining the first generation of Unreal Engine 5 games
UE5 represents the future of gaming graphics - but there's still work to be done.
Unreal Engine 5 was announced more than three years ago and we're only now seeing the first wave of third-party UE5 games on PC and consoles. For the audience on PC, these launches are both exciting and terrifying - we're finally seeing all of the eye candy promised by Epic with Lumen, Nanite and Virtual Shadow Maps, but we've also had an array of UE4 titles that have exhibited poor CPU utilisation and instrusive stutters.
With these conflicting emotions in mind, I thought it would be interesting to round up the first generation of UE5 releases to identify the good, great and not-so-great aspects of these titles - an early barometer if you will of how developers are getting to grips with the engine on PC and what it means for the future of UE5 on the platform.
The goal here isn't to cover any one game in exhaustive detail, but rather to give a potpourri of impressions after testing a variety of games including demos of Jusant, Robocop: Rogue City and The Talos Principle 2, and the full releases of Remnant 2, Immortals of Aveum, Lords of the Fallen, Desordre, Fort Solis and Layers of Fear.
Let's start with what Unreal announced in the beginning: those much-lauded Unreal Engine 5 graphical features. How are Lumen, Nanite, and Virtual Shadow Maps on PC?
Honestly, I think they've lived up to the hype in the first titles I've seen them leveraged in. In The Talos Principle 2 for example, we see Croteam heavily leveraging all three technologies to great effect.
Starting with Lumen, one thing I've noticed is that you can adjust this feature directly with the global illumination (GI) setting in the options menu; this is a global quality parameter in UE5 so I expect to see it in many game releases. In The Talos Principle 2, dropping to the medium GI setting lets you see what the world looks like without Lumen - and there's a massive difference in lighting quality, with Lumen's local bounce lighting and shadowing from the sky lighting providing a stark contrast to the fallback SDFAO (signed distance fields ambient occlusion) and other raster techniques the engine can leverage. Lumen looks great here.
The same is true in Jusant as well - and this demo is perhaps this is the best showcase of Lumen so far, as the game has almost texture detail, making the impact of the surface lighting plain, while artists leveraged the technology to enhanced visual contrast in every part of the demo. It's a great artist-driven usage of the GI that seems to work around Lumen's limitations, with unmotivated lights or blockers placed to create a convincing final result.
While my first impressions of Lumen are great from a visual perspective, it hasn't always been deployed in the manner I prefer. Nearly all shipping UE5 titles only use the software iteration of Lumen, which doesn't leverage the hardware in modern GPUs to accelerate the speed of ray tracing calculations - with performance optimisations that hurt things like reflection quality as a result. For example, Lords of the Fallen suffers from screen-space artefacts and a bit of a blobby look to its water reflections. This game also suffers from light leaks in some areas, with sunlight appearing in what ought to be dark caves; a similar issue occurs in The Talos Principle 2 where emissive surfaces like glowing power cables suffer from obvious screen-space limitations, with light disappearing when the object producing it is occluded by the camera.
Software Lumen's performance/quality trade-offs are often visible then, especially in games with many reflective surfaces, so I think more titles should offer a hardware Lumen option in their menus like Fortnite and Desordre. This allows you to get more accurate lighting and object detail in reflections and bounce lighting, at only a small performance penalty on most GPUs.
Fort Solis is a good example of the difference that hardware Lumen can make. The game ships with only software Lumen, but it's possible to enable hardware Lumen by modding the game. This is a big upgrade given the game's reliance on emissive surfaces, with hardware Lumen solving undersampling issues in many scenes which manifest as instability and a "boiling" effect on light from emissive surfaces.
Beyond offering Hardware Lumen as an option, I also wish more UE5 game developers offered visual options like those found in Desordre. Beyond hardware Lumen, this game includes a setting for hardware ray tracing hit lighting, which uses RT to shade objects in reflections rather than the low-quality UE5 surface cache, removing aliasing and lower-res textures seen in reflections. Desordre also also has an RTXDI setting that does emissive lighting and all direct lighting with accurate ray tracing, adding another layer of realism into the world, and there's even a path-traced lighting option, so objects in reflections show reflections and accurate bounce lighting.
Desordre therefore offers scaling all the way from console-level software RT to super-high-end path tracing. I don't expect every developer to add in heavy or Nvidia-specific features like RTXDI or path tracing but being able to turn on hardware Lumen and hardware RT hit lighting is essential to allow PC versions to scale above the consoles - and these features come stock in the engine and are merely variables. As well as offering better fidelity in the here and now, these features also allow contemporary games to look even better on future graphics hardware. (To achieve better performance now though, one easy optimisation is to drop GI and reflection settings to their second-highest value, which provides a big performance advantage and is often used in console UE5 games.)
While Lumen, Nanite and Virtual Shadow Maps (VSM) are core features of UE5, most UE5 releases haven't used all three. Remnant 2 doesn't use Lumen (despite its randomised layouts being a logical fit for Lumen's dynamic lighting), Lords of the Fallen 2 skips VSM, and Layers of Fear eschews both Nanite and VSM. I imagine QA time and console performance concerns are to blame for some of these omissions, but I would like to see the ability to toggle on and off core VSM and Nanite in the menu as we often can with Lumen using the GI menu parameter.
For example, Virtual Shadow Maps add a lot to the visuals of Lords of the Fallen, as we can see from using Frans Bouma's Unreal Engine Unlocker - so why couldn't this be a menu option rather than a user mod? The developers of Remnant 2 actually did just this, with a detailed shadows setting that toggles VSM on and off, so you can choose between performance and fidelity. More options are always great for the user, especially those that allow the game to scale well far into the future.
Curiously, Remnant 2 also has the option to turn on and off detailed geometry, which turns off Nanite based on the examination of console variables. This shows lower-quality static geometry, which I think is the fallback mesh function of Nanite, intended for platforms that don't support it. Exposing it explicitly as an option for those who want higher performance is pretty neat, and I really like the idea of making Virtual Shadow Maps or Nanite togglable in the options so that UE5 titles can run well now and scale higher for the future.
Getting back to Lumen, one thing that surprised me was that in some titles it doesn't look as obvious as it appeared in the first demos of the technology. For example, the entire intro of Lords of the Fallen 2 almost looked like Lumen wasn't working correctly, with almost no indirect lighting - but later areas of the game do show the kind of per-pixel RTGI more clearly. I believe the game developers are injecting 'fake' lights into the game's environments to brighten them up for gameplay reasons, but this also completely kills Lumen quality - perhaps a symptom of the game's environments being blocked out without Lumen in mind.
Therefore, just because a game uses Lumen, it doesn't mean every scene has the level of lighting fidelity we saw in the initial reveal - it really is down to the developer to leverage the technology in a good high-fidelity way that also serves gameplay.
Coming to performance and user experience, I want to praise these first batch of UE5 titles for having much better image quality options than their UE4 predecessors. Nearly every UE5 title I tested offered DLSS, FSR2, XeSS and Unreal Engine TSR. I love that we're finally at the stage where all vendor reconstruction options are available - and I'm sure that the fact these are all easy-to-install plugins makes this largely a UI issue rather than a deeper technical implementation.
Still, I think there are some best practices here - and I want to highlight how Lords of the Fallen and Jusant have provided these options. In Lords of the Fallen, you can switch between the different vendor upscalers, but the game uses TSR if you use the resolution percentage slider, which I like quite a bit. Going further, Jusant allows you to choose any reconstruction technique and the resolution percentage slider controls the input resolution for them all (though there's no listed percentage, which isn't ideal). Either way, it's good practice to make all of these upscalers easily accessible with extra fine-grained resolution control.
What about Unreal Engine's classic bugbear: shader compilation stutter? Here I can report both great and not-so-great things. For one, all nine UE5 titles I tested for this piece handled shader compilation better than nearly every UE4 title I tested for Digital Foundry, because all of them seem to use the automated just-in-time shader pre-compilation that comes with UE5.1+. This system sorts shader permutations and prepares them just before they are needed on screen, with the ability to delay their appearance to prevent a stutter if desired by the developer.
This works well, but isn't perfect - nearly every title I tested still had some shader compilation stutters. Just three - Robocop, Lords of the Fallen and Desordre - were stutter-free, as they use the new just-in-time system and have a dedicated pre-compilation step before the game starts. I think all developers ought to emulate this approach as it gives these games the chance to wow with their gameplay and graphics with distracting pauses.
Unfortunately, UE5 also exhibits the traversal stutter seen in nearly every single UE4 game. These frame-time spikes, induced by loading or deloading assets when game worlds are traversed, were present in nearly of the titles I tested - even the Jusant demo which has nearly no textures and is only 4GB stuttered occasionally on the powerful 12900K. This is a separate issue from shader compilation stutter and I'm not sure how much control developers have over this issue - it may be more of an intrinsic feature of Unreal Engine.
These traversal stutters negatively affect the gameplay experience and happen repeatedly, unlike shader compilation stutters, and the only way to minimise their impact is to use a faster CPU supported with fast RAM. Lords of the Fallen and Fort Solis are both incredibly gorgeous games, but their atmosphere and fluidity is undermined by traversal stutter in the former and both traversal and shader compilation stutter in the latter.
One aspect complicating traversal stutter is that this first batch of UE5 games seem to be reliant on a single execution thread and make poor usage of modern multi-threaded processors. We'd expect to see more performance unlocked with more threads available, but sometimes we see the opposite, with higher thread counts leading to decreased performance. So it is on Lords of the Fallen, where running the 12900K with all E-cores and only six of eight P-cores enabled and hyper-threading disabled provides the highest frame-rates; frame-rates drop by up to 10 percent with all cores and threads available. Here, only two CPU cores are fully loaded, while the rest remain underutilised. Cyberpunk 2077 serves as an example of how thread scaling ought to work, gaining substantial performance when given access to more than six cores.
12900K (Active Cores) | 6 P-cores | 8 P-cores | 8 P-cores + 8 E-cores |
---|---|---|---|
UE 5.2 Electric Dreams | 100% | 106% | 111% |
Cyberpunk 2077 | 100% | 116% | 131% |
Lords of the Fallen | 100% | 93% | 91% |
There is some evidence that, based on the Rendering Roadmap presentation by Mihnea Balta at Unreal Fest 2023, Epic are looking to improve the engine's multi-threading in UE5.4 - which in 5.3 remains a holdover from UE4 to a large extent. Breaking up the RHI and render thread to be more parallel while reducing unnecessary work could massively improve CPU performance in UE5, which could in turn improve the stutter situation.
The last thing I want to talk about briefly is texture quality, which has been a feature of UE5 games shipped with Nanite virtual texturing enabled. It's hard to complain, especially as the texture quality is very light on the GPU, often requiring just above 8GB of VRAM for max settings at 4K. However, this system is sometimes a bit too aggressive in terms of how little texture info is stored locally on the GPU.
In a number of the titles I tested for this video, there was obvious texture pop-in very close to the camera at times, even on an RTX 4090, which has gobs of VRAM that isn't really being put to use. For example, in Fort Solis, a lot of textures would take quite a while to phase in at times, even while traversing through the world at a slow pace, while in Lords of the Fallen, textures often phased in on camera cuts. Therefore it might make sense to either allow more user control over how much VRAM caching occurs or to allow the streamer to be more greedy when it comes to VRAM if it detects a lot of VRAM is unused.
In broad strokes then, all of the UE5 titles I played for this piece were beautiful in their own right, sometimes impressively so. With the right artwork and direction, these games can look absolutely stunning. I also loved seeing the ability to choose from tonnes of different image reconstruction techniques in many of the titles I tested.
Still, I see some legacy issues in the engine rearing their ugly heads at times, souring nearly all of the titles I tested. Of these, shader compilation stutter and traversal stutter were the most common complaints. Shader compilation stutter has at least improved from its near constant appearance in UE4 titles, but only games with a dedicated pre-compilation step on top of the new UE5 automated shader cache system were free from this annoyance, and this approach ought to be copied by more developers.
Some of the other issues I saw in general were that most games shipped with too few controls exposed in their graphical options menus. It would be great to allow users to turn on and off features like hardware Lumen and Virtual Shadow Maps to allow for a better trade-off between performance and quality. As-is, most games tested used software Lumen only and had very basic menu options beyond that.
Still, it's clear that Unreal Engine 5 is at least trending in the right direction, and with sufficient pressure on both Unreal and game developers we can get closer to the dream: enjoying those genuine upticks in graphical fidelity without the performance hiccups and option obfuscation that has dragged down some of the current crop of titles.