Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Fascinating, I've been interested in what kinds of serverside software real time online games(WoW, Call of Duty, etc) run for a while now, but haven't been able to find much info on it.

Seems that they would need to be optimized for many very high stress concurrent connections with as little latency as possible, so I'd guess that they run C/C++ and/or Java? Do they use something like Websockets, or do UDP/TCP or some other persistent two way connection method? There don't seem to be any publicly available libraries focused on this kind of thing, so I assume that they develop their networking stuff mostly in-house.

Anyone that knows about this stuff willing to share?



Generally it's UDP. Nobody would use websockets unless they had to run in a browser or similar VM.

C++ would be the default choice, but Eve Online uses Stackless Python which seems to have worked well for them.

The Quake3 server source (pure C) is available for your inspection, and there's a good analysis of how it works here: http://fabiensanglard.net/quake3/network.php


Unless it's in a browser it's not using Websockets. TCP where the overhead is acceptable or packetloss is not, turn based strategy, slower pased role playing games. UDP where minimal lag is needed, FPS's mainly.


WoW uses TCP the last time I checked (the overhead of TCP is acceptable for an RPG in most cases). I believe Diablo 3 also uses TCP and uses protobuf.

EVE online have some very good tech posts and are generally quite open about their technology (although it's mostly about hardware and infrastructure). Valve also have some good articles on networking for Source games (someone posted the link elsewhere in this thread).


> There don't seem to be any publicly available libraries focused on this kind of thing, so I assume that they develop their networking stuff mostly in-house.

Have a look at RakNet (http://www.jenkinssoftware.com/) or enet (http://enet.bespin.org/).


Interesting. Enet seems pretty barebones, but I guess that would be beneficial for games where there can be a lot of variance in gameplay, what with the parent post's explanation of the level of precision required.


Interestingly, the RakNet developer now works at Oculus.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: