Hi, I do not understand in how these different methods differ on the performance level. I understand the basics of what they do but I do not know in what case would one be better than the other.
Is culling an automatic unloading system? Does it keep the objects space in memory but just unloads them? Or does it not unload them and only doesn’t draw them? What is the effect on performance? Can you build an entire game using only culling instead of manually loading/unloading?
Loading/unloading soft references i understand it keeps the space in memory reserved. Is it the same as level streaming but this last one is rather for a bunch of objects at the same time?
And spawning/despawning when would it be used instead of loading/unloading?
These are all fairly unrelated concepts, actually.
Culling is something the engine does automatically, you don’t have to do anything to get it. Things that are still loaded, are just not drawn. It helps render times.
The closest thing to this, would be World Partition. It’s the default in UE5. You can just make a massive world, and then engine does the rest for you.
Soft references are not related to level streaming. If soft references are used correctly, they can mean you can decide when something loads, rather than the engine. You can have a soft ref to a level, but they also can reference most other kinds of actors ( players, weapons, blueprints… ).
Level streaming is a way of simultaneously loading more than one map ( level ).
Spawning and destroying is related to the items in the world, rather than the world itself ( roughly speaking ). You don’t really have to be careful with this, unless you’re thinking of spawning a lot of actors ( 100s to 1000s ).