Excessive Game LaunchTime

Hey Epic,

I have around 2300 calls to ConstructorHelpers::FObjectFinder across all of my games classes.

Players are complaining that the game takes too long (4.7 seconds) to launch before seeing the game window appear. For now I have implemented a splash screen but I was curious to try to do better.

I have played around with wrapping unnecessary calls in if (!HasAnyFlags(RF_ClassDefaultObject)){ }

This has reduced the launch time from 4.7s to 3.8s but still not as snappy as I’d like.

I am reading through the UE4 core now to see if maybe there is a way to delay CDO constructors until after the game window has become apparent. But I was hoping someone at Epic with a better mental model of the engine could offer their point of view here before I go diving into a very dangerous place.

Whats the best way to reduce the time between a player hitting ‘Play Game’ in Steam to seeing the window frame appear given these calls to FObjectFinder?

Thank you,
George

Dear Mentos,

one options to get the game window up as fast as possible is specifying an empty world as starting world. Loading an empty world is pretty fast. The empty world can display a loading screen or something similar and then resumes loading the actual level? At some point last week I read a user suggesting that in a similar question about Android. You could also display a movie or something while loading. One note up front though, I have never done this in practise but it is worth a shot.

From the programmer side though at which I am more competent, have you used a C++ profiler, as yet? They analyse your programm while it is running and tell you in which functions most time is spend; this helps you finding the functions to optimise.

Cheers,
Univise