This is a plugin/extension framework for Unreal Engine. It’s designed to slot into both new and existing projects alike. If I was to overwrite the Game State Base, the developer may be forced to choose between my Game State Base and a Game State Base that they already have or want to also use.
Let’s say a developer has a Game State Base from FooPlugin or already has one in FooProject. If they have to choose between FooGameState and ConnGameState, when FooGameState has a lot of features they want but ConnGameState is required to implement core framework functionality, that would be an incredibly tough pill to swallow for how much this framework will sell for - which to say the least would be quite a lot. Think of it like the reason subsystems were created.
This is a fair point.
Without going too much into the details:
But then, if you don’t want to touch the GameState
class then what’s the point of adding a component to it? Then the class, apart from being a “just a container” does not use the functionality of this component in any way. This looks more like needing for a dedicated Actor type than messing around with an existing class and potential conflicts with other plugins.