Skip to main content

Oct: Unreal Engine 5.4 & Loadings!

· 5 min read
Gabriel T. Nardy
nanos world developer (SyedMuhammad)

Unreal Engine 5.4 & Loadings!

Welcome to our roundup of the latest updates from the last months!

Unreal Engine 5.4

We're excited to announce an upgrade to Unreal Engine 5.4! This update brings numerous quality-of-life improvements that enhance our development experience. For a detailed look, check out the complete Unreal Engine 5.4 changelog here.

Loading Improvements

We've made significant enhancements to our loading screen subsystem:

Faster Maps Loading

Entering servers with large levels is now much quicker! We've optimized the loading stage which was doing some work twice and also introduced pre-loading for commonly used assets, which reduces stuttering during gameplay.

Reconnect Logic

A new system has been implemented to reattempt connecting if a file fails to download. Additionally, the client will also reconnect if the server reloads packages during the loading screen, resolving scripting desynchronization issues.

Assets Validation Async

Our local Assets Validator has received a major overhaul getting advantage of multi-core processors. Now all asset files are split between all core threads and processed in parallel, greatly improving the Asset Packs loading times.

In our internal tests, an Asset Pack with ±130.000 files (±50 GB), on an i9 14th gen processor, we saw incredible improvements:

Note

The following times are meant to be used as comparison with the other times in the same processor/Asset pack, giving a sense of magnitude of improvement and not absolute times.

Before, loading this asset pack for the first time in a cold read¹ was taking almost 4 minutes and 15 seconds to complete. Now it takes just ±35 seconds.

In a warm read², it took ±75 seconds, and not takes just ±7 seconds.

And putting together with our internal cache system, reading this Asset Pack (after it was cached by us), it was taking ±10 seconds, and now it takes less than ±4 seconds.

We got almost 10x speed boost in a multi-core processor reading Assets Packs for the first time, and almost 2x when reading it after it was cached.

LoadBeforeAfterSpeed Change
Full Cold4m 15s35s7x faster
Full Warm1m 15s7s10x faster
Cached10s4s2.5x faster

¹ Cold Read: the files were not read before by the processor during since the OS was started.
² Warm Read: the files were already read by the processor during this OS startup, and are now cached by the OS, increasing the next read times.

Note

Results vary based on processor specifications and thread counts.

Testing Map Water

The Testing Map Ocean is back!

We've resolved the issue that prevented water from appearing, allowing you to dive in once again. 🌊

Network Authority Debug

We've enhanced the World Network Debug by adding the ID and Class Name of nearby entities, making debugging much easier.

Events.UnsubscribeRemote

We've introduced a new method Events.UnsubscribeRemote() to unsubscribe from remote events.

This way the use of Events.Unsubscribe() is now limited to local events only, getting in accordance with the Events.Subscribe() and Events.SubscribRemote() methods names.

Make sure to update your package's compatibility_version to 1.65.0 to use this new functionality.

64bit Hash

All internal hashing operations have been upgraded to 64 bits, significantly reducing the likelihood of hash collisions when dealing with hundreds of thousands assets from huge asset packs.

Console.Error & Warn Stack

Now when using Console.Warn() or Console.Error(), the console will output the stack trace of the scripting call, making it easier to identify the source of warnings and errors:

testing/Server/Index.lua
function MyError()
Console.Error("error from scripting")
end

MyError()

New Anti-Aliasing Settings

We've added new anti-aliasing options in the settings. You can now choose between disabling it or using Unreal's native Temporal AA (TAA), FXAA, or Temporal Super Resolution (TSR):

Updated Dependencies

We continue updating our internal dependencies to always be up-to-date with the latest bug fixes and security patches:

  • CEF: Version 130.
  • DLSS: Latest version 3.7.20.
  • Lua: Latest version 5.4.7.
  • Ultra Dynamic Sky: Latest version 8.4 (if you use it on your map, make sure to update yours too so your map won't crash).
  • Various other internal libraries (e.g. zip, toml, openssl and more).

Conclusion

Hey everyone! We've got some important and needed updates since last news blog, but I know things have been a bit slower recently. Some personal factors have contributed to this, but I want to reassure you that the development is still moving forward and far from being halted. I'm always on the lookout for new ideas and have some exciting plans to bring more updates and improvements to nanos world!

I really really appreciate your patience and support during this time. I'm excited about what's ahead and can't wait to share more updates with you soon! Thanks for being such an awesome part of our community!