SparseClassData long term support?

We used SparseClassData on a past project and when upgrading from 4.25 to 4.26 we started getting a hard crash that was complex to solve within a limited timeframe. Because it was a Beta feature at the time, we dropped support for SparseClassData entirely in the project out of fear of further risks with engine updates.

We’re curious about using SparseClassData again on another project for some slight memory savings, but we noticed it’s still a Beta feature in 5.6, so we’re nervous about using it again.

Any plans at bringing it out of Beta anytime soon? Even with it in Beta now, are other teams using it heavily and are having success with it?

Steps to Reproduce
The current documentation states that SparseClassData is still a Beta feature, and has been for quite a few versions (back to UE4).

https://dev.epicgames.com/documentation/en\-us/unreal\-engine/sparse\-class\-data\-in\-unreal\-engine

Hello!

“Are other teams using it heavily and are having success with it?”

SparseClassData is used in Fortnite Battle Royale. We use it primarily for building actor classes and whatever non-changing properties they have. Our sparse data class for one of the building subclasses has a total of 70 properties and total size of 450 bytes. I’m trying to get some data on actual savings (i.e. how many buildings on the map) and will share that once I have it.

“Any plans at bringing it out of Beta anytime soon?”

No plans. The sparse class data feature is not receiving active development at the moment. Since we are using it in Fortnite, we do maintain the current feature set.

There are known bugs with sparse data classes that hamper the editor-exposed usability, like this crash that’s easy to run into: UE-215992. As you can see, we have not prioritized fixing it.

On the other hand, new adjacent features like modifying blueprint assets via editor utilities also are implemented with sparse data class compatibility in mind, see CL 35311862.

So the feature will not suddenly cease to work, but bugs found in it will likely receive low priority. I hope this info helps your decision.

I’m back with some statistics on what we save thanks to SparseClassData for buildings in Fortnite Battle Royale.

  • SparseClassData structs go up to 450 bytes in size for our buildings
  • In Fortnite Battle Royale maps we have ~70000 building actors of various types on the map
    • Sparse class data saves around 30 MB on dedicated servers since they have all the actors across the map loaded at all times
    • For game clients, building actors are streamed in/out based on proximity. Grabbing data from a recent performance test on the Switch, game clients have an average of 4000 buildings loaded so the savings are around 2-3 MB.
1 Like

Thank you for this! And extra thank you for providing numbers too! I’ll pass this info along internally, but this info should help us greatly. Cheers

Glad to provide that! I’ll close this but if you have follow-up questions feel free to respond here.