I've recently started developing a Windows-based platformer using XNA (using the PSK and the network game state management tutorial as a starting point), but I'm having some difficulty understanding how to implement a lobby for local games. Obviously the network GSM tutorial put in rudimentary lobbies, but virtually none of that code is useful to me since, without a GFWL license, there's no sense in using the XNA networking framework, so I'm using Lidgren.
For multiplayer games over the Internet, my thought was to set up a dedicated server with a static IP that the game will connect to and use as a global lobby and chat server. Then, any time someone would create a session, they'd register that session information with the lobby, and all players connected to the lobby would see that room listed. Before I go on, does that sound like the best way to implement a global lobby?
Assuming that logic is roughly correct, I'm not sure how to handle a session being hosted over a local network. Somehow, I need to have the host broadcast the availability of the room, right? What exactly is the best way to go about doing that? I suppose the local lobby, upon loading, could get a table of local IPs and send a packet to each of them requesting session information, but that just seems...incredibly inefficient.
Anyway, I'd appreciate any advice regarding either problem.