Hacker News new | past | comments | ask | show | jobs | submit login

I call that thing bullshit. "Our analysis indicates that TCP is unwieldy and inappropriate for MMORPGs" yet World of Warcraft, Lineage I/II, Guild Wars, Ragnarok Online, Anarchy Online, Mabinogi all use TCP. Extremly successful. I using UDP would have help making World of Warcraft better they would have done it years ago. But they all probably have no idea right?



That TCP is ill-suited for this does not mean it cannot be used. It also does not mean that it is World of Warcraft's particular bottleneck and that it would be a good investment of development time to change it once it is in production.

You should probably resist the urge to call bullshit on something when your best examples rely on legacy concerns.


Yes, they all manage it--but this is why "MMORPG network middleware engineer" has always been an extremely well-paid senior-level position. If it was as easy as "SCTP.connect(host: 'example.com', port: 3044)" to get something sensible going, I think a lot more games would do the kind of smooth network-latency-compensation-via-action-prediction that you only tend to see right now from the big players.


Fully agreed. I've implemented a bad equivalent on top of UDP myself. It should be easier given how common a use case it is.


The premise may be valid, however the authors only examined a network trace for one game. At best, they've proven only that game's use of TCP is unwieldy and inappropriate.

A more appropriate methodology would have been to examine traces of the top 5 MMORPGs in terms of active players.


TCP only really breaks down when there's a nontrivial rate of packet loss. Otherwise, excepting very fast-paced action games where you don't want a single noticeable hiccup, the concerns about TCP are largely outdated.

I mean, I was reading this kind of material back when FPSes and even MMOs were played over dialup connections. The world has changed.


You missed many points, like Nagle's algorithm, in/out buffers, etc.


Very commonly TCP was used for messages that had to be reliable, and UDP for the other stuff. A lot, and I mean a lot, of work was put in by devs in the early 00s trying to figure out how to do as well with TCP as they could with UDP.

Also, RO server code was and is a steaming pile of sadness and bugs.




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

Search: