Where is a suitable intialization point for a game?

I’m trying to find a suitable location to create a launching point in our game in C++, but I’m at a loss for where to do this in UE4. By this, I mean a class/location to instantiate our managers and anything else we might want to have live throughout the life of the program.

My initial research lead me to try Gamemode, but this derives from actor, so the gamemode won’t necessarily initialize before the other actors do. Additionally, anything held in the initial gamemode would be lost if we need to change gamemodes. Info was another class that looked like it might work, and may be a good base class for managers, but it too is derived from actor, so it might not be initialized before the actors in the game.

Is there anyone familiar with UE4 that knows of a persistent place to initialize everything? For reference, we’d like to minimize using blueprints. Thank you.

There is a GameEngine Singleton which have it’s own drawbacks launching from Unreal Editor, but he lives from the start of a game till it’s end.

I use this setup - store persistent global data in Engine Singleton, have empty level InitGame which is always loaded first and initialize Singleton data.

Thanks. While looking up info on the game singleton I also found out about the GameInstance class, so I can look into both. Additionally, according to at least one developer at Epic, the Game Singleton was created before the GameInstance class and the former probably shouldn’t be used any more.

Thanks for the hint )