Well, at first I’ve really done so and made a “deferred spawn” function which basically spawned few actors per tick but that doesn’t work if you want something smooth to happen on the top of that spawning.
Problem is that when you queue an actor to be spawned, that would happen on next tick and you never know how much time that would take.
Sometimes you can queue 5 actors to get spawned on next tick and that wouldn’t drop FPS below 60, sometimes tick is just overloaded with other needed stuff and spawning even 1 actor would drop fps to 30-40 of a tick which is eyesore.
Imagine every few frames dropping to 30-40 fps upon spawning single actor. Not a pleasant experience, but that what I’ve got on my Mac and Linux machine (Windows worked that out great without any drops for some reason).
So, say, if I would want to implement a slideshow while something is loading, that would be great for an instant image changing since player wouldn’t notice fps drops.
If there were some smoothly changing slides, that would be not pleasant to see since FPS would be dropping.
Also, I don’t really understand how async asset load would completely remove freezing.
As far as I’ve understood, the problem this method solves is avoiding loading reference tree with all assets at load-time.
I.E. if my spawning tool got references to 100 different actors with unique assets, all of them would be loaded at memory on the start.
Using async load method you can only load assets when you need to.
So even if I do async asset load, I would still need to spawn actor at the world and the freeze is produced by pushing an asset into world, I believe? I would be glad to be proven wrong since I don’t completely understand this.
P.S. Sorry for big amount of text.
P.S.S. That’s really cool to see that forum is still alive and some discussion can go on since UE Answers service seems nonexistent to me right now.