Should high-level logic managers be instances, or actors?

I create them as sub-objects of the GameInstance since I don’t need mine to replicate (reflection != replication btw). They are UObjects in my case, not Actors. This is mainly because they need to exist before most objects in the world.

A lot of my managers however need the ability to get the current game world. The way I do this is have a ‘Prepare’ and ‘Release’ function. When a new map starts loading, we call ‘Release’ which sets the ‘CurrentWorld’ pointer to null. When the world has finished loading, we set that pointer again.

This is the most accesible and flexible way I’ve found of doing it so far. We wrote some static accessor functions so that they can be ‘gotten’ from anywhere. Really need to write up a tutorial on this system. I think it’s pretty nice…