You’ll definitely want at least 2 GameModes, even for single player games, because you’ll have at least MainMenu game mode and whatever the other game modes are.
Game mode specifies default: PlayerController, Character, Pawn, HUD, and several other things. Keeping the MainMenu version of those separate in code is quite nice because you can work on them separately and changes to one won’t break the other.
We have a custom version of GameMode, PlayerController, Character, and HUD, from which all others inherit for functionality common to all.