none
Gaming: C#-C++ network communication

    Question

  • Hi,

    I am to write a C# game serrver, which would communicate with a C++ client. It should be used just for the administration communication (not during the game itself, just administrating different game rooms, users, tournaments ...), however there should be many thousands concurrent users online, security is very important, and scalibility and reliability too.

    I am not quite sure, what kind of communication technology I should use.

    WCF (I would prefer this one, however no idea, if appropriate)?
    Web Services?
    TCP Sockets?
    Amazon SQS?
    MSMQ?
    Just REST using JSON?
    Any other ideas?

    The problem is of course, that the development should not last for ever Smile.

    Thanx very much for any insights.
    alvar

    Thursday, August 23, 2007 3:48 PM

Answers

  • If you are asking which communication technology will give you security, scalability and reliability, then the answer is both any of them and none of them.   Those aspects will come from proper design and implementation of your entire application, not from the communication technology you use. 

     

    If you're asking which one will take less time, the answer is "whichever you are most familiar with".  Obviously raw TCP is normally slower to write against than something that sits on top and gives you features you'd have to write yourself. But if you're going to take weeks to learn something else or you're not going to use those features, it's a viable choice.

     

    Since you "prefer" WCF, it sounds like that's what you know.  Use it.  It certainly has tools to help grant security, reliability and scalability in the communcation layer if you use them correctly.  

     

     

    Thursday, August 23, 2007 4:24 PM

All replies

  • If you are asking which communication technology will give you security, scalability and reliability, then the answer is both any of them and none of them.   Those aspects will come from proper design and implementation of your entire application, not from the communication technology you use. 

     

    If you're asking which one will take less time, the answer is "whichever you are most familiar with".  Obviously raw TCP is normally slower to write against than something that sits on top and gives you features you'd have to write yourself. But if you're going to take weeks to learn something else or you're not going to use those features, it's a viable choice.

     

    Since you "prefer" WCF, it sounds like that's what you know.  Use it.  It certainly has tools to help grant security, reliability and scalability in the communcation layer if you use them correctly.  

     

     

    Thursday, August 23, 2007 4:24 PM
  •  

    Hi Philip,

    thank you very much for your answer. I fully understand your statements - as they are very general. The truth is, I am half the way in every of these technologies, but I dont have the overview to say, what technology would be the most appropriate. I will therefore try to narrow my question: is WCF really designed also for Internet communication, not just mostly for Intranets? And should it be performant enough in the Internet? I understand it so, that WCF is replacement (losely told, I know it is not so simple) for .NET Remoting, Enterprise Services (in the Intranet domain) and Web Services (in the Internet domain). I have also read that it quite depends, if WCF or Web Services are faster. In other words: Should WCF be so slow as Web Services, it is not fast enough for my case. Any other experience?

     

    Once more thanx very much!

    alvar

    Friday, August 24, 2007 6:34 AM