Lidgren

Feb 13, 2012 at 3:52 PM

2 questions:
a) Any eta on when you'll finish implementing it? (Seems like the LidgrenSessionManager has some code that throws some NotImplementedExceptions)

b) Is there a hard limit of 4 players for networking for Lidgren?

Coordinator
Feb 13, 2012 at 8:46 PM

a) The LidgrenSessionManager doesn't support like all SessionManager inherited classes SplitScreen sessions (since I didn't yet have a smart way to create and handle multiple SceneInterface instances in the framework). It supports full LAN multiplayer but not yet WAN because it'd require a Master server to perform matchmaking. I have plans to achieve this later but not for 1.0

b) There is no hard limit on multiplayer: the 4 players limit would only be applied on SplitScreen sessions. Remember that when you are using SessionManager and its Logic system, a session (even a singleplayer one) is created on a server as if you were playing remotely.
This ensures you share the same code for all clients even if the current client hosts the session.

Feb 14, 2012 at 1:34 PM

Do people typically use Lidgren because of the lack of a WAN option for the built-in XNA session managers? I had planned on getting around that in my WAN based game by creating proxies for both the server and the client that do simple NAT so that the server's session manager thinks the clients are local and the clients think the server is local. Do you already have plans on how to support WAN scenarios using Lidgren?

Coordinator
Feb 14, 2012 at 8:27 PM

People use Lidgren because built-in Xna session manager isn't supported on Windows except for game development purposes. There are no ways to distribute the Games for Windows Live Xna portions with your game: it requires the player to install the full Xna Game Studio and subscribe for a Premium account.

That's why I implemented my own session manager using Lidgren as the Network layer. Lidgren doesn't provide similar features as Live: there are no player authentification, no matchmaking, no voice over, etc... It solely hides the complexity of establishing network connections and sending data using UDP or TCP.

My current plans to support WAN scenarios using Lidgren implies developing a custom Master Server that could be used to connect multiple clients with the same game and matchmaking. I'm planning to work on three versions of this Master Server:

  • A full .Net 4 Console based server.
  • An ASP.Net web application or Mono if I can figure it out as it would allow us to deploy such application on cheaper web hosting solutions such as Linux.
  • and a PHP web service/application if Mono isn't an option and if I can find some time to work on it.

Regards

Feb 14, 2012 at 9:23 PM

Thanks for the info, I had no idea Session Manager was development-only on Windows. That's lame to say the least. :)