When I start the game my main menu level is displayed and prologue level is loaded (level streaming) but not visible. When I press PLAY button, prologue level change to visible and “main menu” one start to unload. Everything works fine, but there are significant FPS drops at te beginning of the prologue level.
It’s problematic since:
-Audio is still playing and not lagging so there is desynchro in initial cutscene (sequence)
-Materials loads in front of the camera and it looks odd (bit different problem)
-It’s never good to have few sec of lags during first impression in a game
So is it possible to really load a level before setting it to visible? I know I can probably fix it by setting level to visible earlier, but it also fire “begin play” node so it would probably harm and delay my project so I’m looking for other solution.
I use streaming and wait until the level is ‘ready’ before setting it to visible. There is a difference between the two, but you’re right, just visible alone isn’t the answer.
I solved it like this:
Stream the level but not visible yet
Wait until the level has streamed
Then wait until I can see something I consider indicates the level is actually ready. I my case I use the player start.
Then make the level visible and start things rolling.
So don’t use BeginPlay on things that have critical timing. Make your own AfterBeginPlay custom event that you can call once you’re satisfied everything is ready.
Well, your advice inspired me to make it a bit different. Simply delayed initial cutscene by 5s, during this time sound related with cutscene is played, so it’s not only black screen and blindfolded camera is exploring whole scene so things are loaded properly during real cutscene. I love workarounds ^^ Thanks for your time.