Multiplayer Client/Server Design

I have been developing some board and card games with MDX using C# (.NET 2.0), and I want to take the step into making them available to play online in a multi-player environment.

Reading Tom Millers Kickstart, I settled in on the idea of a Client/Server Lobby style application, similar to zone.msn.com using DirectPlay.

As I started to work with DirectPlay I soon found it was deprecated, and that developers were moving to the System.Net and Sockets namespaces to develop their game servers.

I have looked into asynchronous socket listeners (using object serialization to pass data objects), and .net remoting as possible solutions.

If any experts could offer me some advice or resources on the best way to approach design for this project, it would be much appreciated. I would like to start small, but have a design that is robust enough that it can grow as needed.

Thank you in advance.

Owen



Answer this question

Multiplayer Client/Server Design

  • Tamir Gal

    Well, given the nature of your games (non-real-time, low-traffic), you can easily write something TCP-based using .NET sockets. That's be the way I'd do it.

    The information in the next paragraph doesn't apply to your case, IMO. I'm just writing it for your information.

    For more exotic stuff, I'd use an established UDP-based networking library. Unfortunately, I don't know any that were ported for C#. I'd wrap RakNet or something similar using C++/CLI. Also, I've not examined it in detail, but check this out: http://www.lidgren.net/wiki/doku.php id=lidgren.library.network



  • Frenske

    I have started to collect resources for replacing DirectPlay, the beginning of the list is here and I plan on updating it as I find more.

    If anyone has anything that they would like to add to the list please email me.



  • Kiran_deep

    Thank you for your suggestions. I've started implementing a Asynchronous TCP Socket server/client. The next bridge will be building the application layer for sending and receiving messages via sockets.

    Glenn,

    Your examples site is a great start for people who are moving from DirectPlay to builduing TCP/UDP listeners.

    Are you aware of any expert resources that speak to designing a robust application layer for multiplayer online games (TCP specifically)

    Best Regards,

    Owen


  • Multiplayer Client/Server Design