Feb: More Profiling & Better Interpolation!
New Profiling Tools & Better Interpolation!
Welcome to our roundup of the latest updates from the last month!
Unreal Engine 5.5
Epic has finally released the long-awaited hotfix 5.5.2 for Unreal! And in the 1.71.0 update, nanos world has been updated to Unreal 5.5 as well!
The Steam branch bleeding-edge
is now running on 5.5, while main
remains on 5.4 for now. We strongly recommend that you update your assets as soon as possible to ensure compatibility!
New Profiling Tools
We've introduced several new features and improvements to our profiling toolset!
Network Stats
We've implemented a new profiling feature that displays the amount of network data being used per class during a game session:
Client Network Stats displaying accumulated bytes usage per class in this session
On the server side, a debug message will be output every minute, providing details on the number of bytes sent and received:
Server Profiling displaying Network stats over the last minute
To enable this feature on the client, toggle both profiling
and display network stats in the screen
settings.
For the server, start it with the --profiling
command-line flag.
Network Invokes
By enabling in-game profiling, you can now view the time spent on individual class methods being called:
Client Profiling Network on Screen now displays Network Invokes times
Network Interp Stutters
Recent Unreal updates caused issues with network interpolation in poor connection scenarios. Every packet loss or small delay resulted in visible stutters or hitches, as shown in the video below:
Old Interpolation with occasional packet loss, causing stutters/hitches
We have significantly improved the client-side interpolation/extrapolation system, preventing these stutters even on weak connections:
New Interpolation with packet loss but no stutters/hitches
This improvement currently applies to character movement. We plan to revisit interpolation for physics-based objects soon™.
Cached Vault API
We have implemented an experimental cache system for our Vault, as we know that it's currently extremely slow to load the Vault assets, so we implemented an intermediary cache system that speeds a lot the Vault requests:
Vault Loading time reduced down to a second
As this is a cache system, the results are internally updated at a frequent rate, expect some seconds delay when updating your content in the Vault and seeing it in game.
Docs Improvements
Server Installation
We've updated our Server Installation page with revised minimal OS requirements for setting up a nanos world server on Linux.
API References Pop-up
We've enhanced our documentation with a new component that displays detailed method and event information when hovering over them, improving tutorials and examples:
- Method Reference example:
Actor:SetLocation()
. - Event Reference example:
Destroy
.
New Assets Thumbnails
We've refreshed all asset thumbnails photos and fixed missing ones:
Sandbox Spawn Menu with all thumbnails updated
Loading Screen Improvs
Async Callbacks
The "waiting for async callbacks" step now displays the number of pending tasks:
Smooth Progress
Also, now the progress bars update smoothly instead of jumping between values.
Updated Dependencies
We've updated our internal dependencies to ensure stability and performance:
- CEF updated to version
132
. - Ultra Dynamic Sky Plugin updated to version
8.6
- make sure to update yours too.
Enabled Plugins
We've enabled the MotionTrajectory plugin for use in your UGC projects.
Conclusion
Hope you enjoyed this month's updates!
I'm working on putting together a clearer development roadmap and restructuring some parts of the project to make everything run even smoother. Exciting things are on the horizon, and I can't wait to share more soon!
Big thanks to all of you for your continued support and feedback. It really keeps me motivated. Stay tuned for more awesome updates next month!