5 ms·
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
by no_future 12y ago
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?
- dividuum 12y ago> 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/ http://www.jenkinssoftware.com/) or enet (http://enet.bespin.org/ http://enet.bespin.org/).
- JabavuAdams 12y agoInterestingly, the RakNet developer now works at Oculus.
- no_future 12y agoInteresting. 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.
- pjc50 12y agoGenerally 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 http://fabiensanglard.net/quake3/network.php
- Cakez0r 12y agoWoW 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).
- Igglyboo 12y agoUnless 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.