I have a dedicated server in standalone C++ with a UE4 client, and am taking an early look at the 'typical' implementations of RTS game lobbies, i.e.
Does the logic for these systems typically run within the dedicated server .exe, or is there a separate layer on top, such as some other executable (or even in the game client itself) that manages the chat and game setup, which is then forwarded to a dedicated server on game start? What about if there is the option to play both on cloud-hosted games with some official ranking and authentication, and on LAN-based player-hosted games?
For example, one could give the game server a 'pre-match' state, where it accepts connections and facilitates communication between clients on the lobby screen, gives the option of map selection, and so on. I'm just not sure if giving this responsibility to the game server is unnecessarily muddying its role, and I'm just missing some better solution. An alternative is to use some external system, or even via some light networking solution in the client, to facilitate game settings and map selection, and then inform game lobby players of the gameplay server's IP so they connect over to it and can start/join the game.
Either way, connections to these systems would be facilitated/forwarded by some master server listing of available global games, or via a local server browser for LAN games, thus it's important for the game lobby and chat to work without a master server (for LAN without internet connection).
Any resources on this side of things would be awesome.
EDIT:
Here's an example I cooked up of using a separate lobby server, with possibilities of: player-hosted LAN (lobby server would be locally hosted, then), player-hosted custom (online), cloud-hosted custom, cloud-hosted 'official'/ranked:
I'm wondering what people think. Is it worth using a separate layer for the game lobby, in-between matchmaking/master and game server?