I'm wondering if I need a master server for my game. I'm using the Lidgren networking framework and they even have a sample for a master server. As far as I understand a Master Server can help with NAT punch through and functions as a lobby for connected clients. NAT punch through bit me in the face several years ago using the Unity Master Server and I'd like to avoid that now.
My current plan is just having a single server that should function as a lobby and host game rooms for the clients at the same time.
- A player logs in, it's credentials are stored and he is put in a lobby. In the lobby he can chat, perhaps have it's private chat room, see some news and join or create games.
- When a player joins or creates a game he is removed from the lobby list and put into the game room with other players. This game room runs the logic of the game and functions as a authoritative server.
- When the game is finished all the players will be put back in the lobby. The game room will either go back into a pool or get cleaned up by the GC.
I'm not understanding NAT completely, but everyone should be able to connect to my server like they are able to join a master server. As far as I understand NAT punchthrough only comes in when two clients need to contact each other directly like when one client needs to act like a server (Photon PUN and Unity Master Server). Is this correct and are there any other reasons to host separate servers? How do the big games do this?
Depending on answers I might have plenty more questions.
Thanks,