As background I have spend about 6 months in blueprint learning the classes, then switched to cpp to start building away. I have a functioning “game” based on a few multi-player tutorials. Basic AI in waves, inventory system, pick ups, doors, platforms, etc. I started working on the UI side with Widgets/Slate. This is where things started to get messy. For reference:
Game Mode has:
all the databases (valid items, players, maps, etc) stuff i want only on the server
spawns AI
Player Controller has:
Inventory system
Weapon System (tied to inventory system)
all Menu Menus (this feels like a mistake)
Key binds for inventory, etc
Pawn
movement and fire logic (line trace, etc)
health system
HUD
Now I find myself doing a lot of cross class setting so the hud is not displayed over the menu, the AI doesn’t start spawning until i initiate the active game via the menu, etc. Causing me to create a bunch of cache references and it is starting to feel like too much conditions. So what guidelines do others use? I have been toying with game instance, but it doesn’t seem to fit well for me. I am debating multiple game modes ( one for while i am on menus, the other for the active game logic). Basically i need some sage wisdom from the community.