Optimizing a UE5 Horror Game for Low-End PCs While Using Nanite and Lumen

When thinking about game optimization, I currently have two PCs with RTX GPUs. The lower-spec one has an RTX 2070, 16 GB of RAM, and an i7-9700K CPU, which I would consider around average performance today.

The game I am developing is a small-scale horror game that takes place in a small village, so it does not require extremely high-end specs. However, I value visual atmosphere and scenery, so I placed a large number of trees using foliage. I capped the maximum FPS at 40, and the game runs without issues on Medium scalability settings, but it starts to stutter on High settings.

Visually, Medium quality is honestly good enough, but I plan to include graphics options in the settings menu so that players with higher-end PCs can increase the visual quality if they want.

My game uses Nanite and Lumen, and I have confirmed that they work properly on my own PC. However, since I plan to release the game on Steam, I want as many players as possible to be able to play it, including users with lower-spec PCs.

Below is an example of the minimum system requirements used by another indie developer:

  • 64-bit processor and operating system required

  • OS: Windows 10 x64 or above

  • Processor: Intel® Core™ i5-10600 or AMD equivalent

  • Memory: 8 GB RAM

  • Graphics: NVIDIA® GTX 1060 or Radeon™ RX 580

  • DirectX: Version 11

I would like my game to be playable for users within this kind of hardware range, but I have several concerns.

If I add options in the settings menu to enable or disable Nanite and Lumen, the game should run more smoothly for lower-spec users. However, when optimizing for this type of hardware, are there specific things I should pay attention to?

For example, is it possible that some PCs do not support Nanite or Lumen at all due to hardware limitations? In such cases, would I need to manually set up traditional LODs for each mesh?

It seems that when releasing a game, setting the minimum target hardware to something like a GTX 1060 is quite common. I also learned that Unreal Engine provides nodes such as Run Hardware Benchmark and Game User Settings.

By using these, the game can detect the player’s PC specifications at startup. For example, if the system is identified as being around GTX 1060–level performance, it would make sense to automatically disable Nanite and Lumen, and instead rely on traditional LODs and baked lighting.

From what I understand, Nanite and Lumen put a significant load on GPUs like the GTX 1060, so disabling them for lower-end hardware seems reasonable.

For developers who aim to make their games playable even on low-end PCs, what kinds of optimization strategies do you usually focus on?

This is an interesting topic, I wonder how hard it is to dynamically turn Nanite/Lumen on/off on a Shipped Project.

r.DynamicGlobalIlluminationMethod 0

Should do the trick :slight_smile:

But seriously, it’s easy to set the global scalability level, because they will ramp down everything else with it.