Hi,
We’re currently working on a multiplayer strategy game involving both exploration and combat. The current plan is to keep using the world map in combat, both to avoid loading times and to make the level layout relevant both for strategy and tactics. Unfortunately, the controls are going to be radically different between the two modes because there are actions that can only be performed in either combat or exploration mode, the camera controls are different, and so on.
If we were using separate maps for combat and exploration, this could be handed by different *GameMode *classes, but as far as I understood that won’t be possible if the map is not supposed to change. Same for using different PlayerControllers. I haven’t yet entirely understood how the *GameState *is supposed to be used, but that also looks like the wrong approach.
Our current ideas include:
- Define both combat and exploration logic in the same GameMode/PlayerController and switch between them using an enum. (Disadvantage: extremely messy code)
- Split all the logic that would be specific to combat or exploration into separate manager classes and use these instead of the *GameMode *whenever necessary. (Though that might work, it sounds like it would run counter to the engine setup.)
- Anything else?
The game is going to be implemented using both C++ and Blueprint, though we haven’t decided yet for which aspects of the game we’re going to use C++ and for which Blueprint.
Help would be greatly appreciated.
Thanks in advance,