5/15/2020

Oodle and UE4 Loading Time

Jon Olick has done a study for us on what benefit Oodle Data compression has on Unreal load times :

Oodle and UE4 Loading Time

This is different than the benchmarks I've shown here, which are just the decompressors being run in isolation in a test bench. Jon measures times in Unreal. "Time to first frame" is the best measurement of load time, but it isn't total load time, as Unreal continues to do async loading after first frame.

Jon measured times on his PC, but with Unreal locked to one thread (as well as we could), and with various simulated disk speeds. This let us see the times more clearly, and lets us make some times that are more comparable to slower machines, or the last gen of consoles. Consoles like Switch will see the most load time benefit from Oodle, as they need help with both CPU time and IO time, so the double benefit of Oodle really helps there (Ooodle gives more compression than zlib and is also much faster to decode, so you save time on both IO and decompression).

Since Unreal 4.24 we're offer Oodle Data Compression and Network plugins that drop into Unreal without any changes to the Unreal Engine code. This uses the facilities that Epic added for us to make the compressor & network stack pluggable so that we wouldn't have to patch Engine source code to do our integration. (thanks Epic!). Now, you just drop in our plugins and Oodle automatically replaces the default compression in Unreal.

Some previous posts on Oodle in Unreal for more :

Oodle Data compression in Unreal

Oodle Network compression test (including Unreal)

3 comments:

pivotman319 said...

Impressive! Selkie and Mermaid appear to have the upper hand on UE4 load times, which comes to the conculsion that both compression types are faster than anything else I've seen here.

iirc Fortnite weighs around 80-90 gigs, think you could get permission from Epic Games to try and get a custom Fortnite staging build compressed with Selkie and Mermaid? Would love to see load time comparisons between the uncompressed and compressed pakchunks.

cbloom said...

Yeah, Mermaid is an excellent balance of compression and speed. It can keep up even with fast disks while still getting decent compression.

Kraken is a fraction slower to load, but can compress a lot more. Personally I would probably go with Kraken for PC UE4 games as it further reduces the disk footprint and download time. Load time is only part of the equation. Also if you have multiple threads on the CPU that may change the balance for load time in favor of more compression. Fortunately core count is scaling up with SSD speed.

The last time I looked Fortnite was shipping uncompressed pak files which I don't understand. It's so much content going over the internet and taking up room on disks when there's really no need for it, it would load faster compressed.

I did a test on the main Fortnite pak in one of the links above, just for size.

Hey Epic, if there's any problem causing you to ship Fortnite without Oodle, I'd be happy to help!

pivotman319 said...

Hey Charles, I did take a look at v11.31's paks (which I had archived) and it does seem to ship with Oodle 2; only for networking, however. Game's paks are still uncompressed, unfortunately; which is why I brought up the problem of the entire game's content being extremely heavy.

Doing a quick comparison of the game's pak size using builds 4.16.0-3541083+++Fortnite+Release-Cert, 4.16.0-3724489+++Fortnite+Release-Live and 4.24.0-10800459+++Fortnite+Release-11.31 shows that the game's pakfile size has dramatically increased over time.

I'm disappointed at Epic right now.

old rants