Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I know it is very big topic and maybe my question is very beaten, but I'm interesting of basics how to write highload server for UDP/TCP client-server communications in MMO-like game on C++/C#? I mean what logic of retrieving hundreds and thousands packages at the same time and sending updates to clients? Please advice me with architecture solutions, your experience, ready-to-use libraries. Maybe you know some interesting details how WoW servers work. Thank you!

Edit: my question is about developing, not hardware/software tools;

share|improve this question

closed as too broad by Byte56 Dec 20 '13 at 19:16

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

    
better suited for serverfault.com –  user827992 Sep 4 '12 at 12:21
3  
This is overly broad to be answered. We expect questions about actual problem that you face, check the FAQ for details. –  Laurent Couvidou Sep 4 '12 at 14:00
    
This also shows very little research effort... I'm sure you'll find loads of relevant information if you search Google for some of these topics. –  stephelton Sep 4 '12 at 17:12

1 Answer 1

Since I can't give a short comment - here a long answer.

First of all: What lorancou said!

To go more into detail: What do you need axactly? Chat - check some common protocols (like IRC) ... BTW a good hint for the gaming relevant things

But I guess it is about gaming relevant issues, so there some general hints I can think of boosting the performance

  1. Minimize traffic
    • It is enough to send a movement vector from time to time (try the exact duration)
    • In most cases UDP is sufficient - no ack necessary
  2. Minimize number of server requests
    • let the client do a lot of the calculations (if you share the random seed and the stats, it is enough to transmit the actions, every client can calc the exact values and from occasionally there can be a check)
    • you don't need to send the action instantly, it can be enough to send them bundled from time to time)
  3. Partition the area, similar to Occlusion Culling in graphics

That are some things I can think of right now w/o much thinking, if you think hard enough you get a lot more information.

Maybe I'm missing the point of your question - in this case you need to clarify.

share|improve this answer
    
+1 but I'd say "TCP/IP is sufficient" ;-) and the client-calculations must be redone by the server anyway (you can nicely order up things in the client though), the most traffic is almost always movement anyway. –  Valmond Sep 14 '12 at 12:00

Not the answer you're looking for? Browse other questions tagged or ask your own question.