There was a bit of a scandal recently when it was revealed that Rogers Cable here in Canada was throttling its World of Warcraft users. Rogers quickly came out with a release that this was a mistake, but it turns out the reason they are (still) throttling, is that World of Warcraft uses Bittorrent as the primary means to transfer its multi-gigabyte client patches. And it does it in the background while you are playing - so when Rogers throttles your connection, it kills gameplay at the same time.
Now Rogers is clearly in the wrong here, I really can't support traffic shaping - I don't want to listen to them whine about network load, heavy users, blah blah blah -- just suck it up and deliver the bytes. Now. That's what we're paying you for. You're denying reality if you don't think people are going to use the internet more every year.
Now Wow wouldn't have this problem if they weren't using Bittorrent, but it got me to thinking - if you're a game developer trying to deliver huge content patches to your customers, and there are a lot of customers, and you only have so many servers... then Bittorrent totally makes sense. It shares the server load between everybody who is downloading the patch. Server capacity automagically scales as client load increases. Lots of people already have their firewall set to support its incoming connections. There's some big cost savings there. Other MMO operators also use bittorrent, Turbine comes to mind (Pando Media Booster).
Now, using Bittorrent also has some downside, it exposes other players' IP address to your players (a security concern), most firewalls need some configuration to allow incoming connections, and it is very unpopular with ISP's due to its wonderful ability to speed up large file downloads. Hence the problem for Rogers' Wow players. Also, some people don't like uploading to other players while they are downloading, they want the provider to pay for all the servers - this is mainly a concern in places where internet is metered and expensive.
Just for completeness, Blizzard's updater can also use HTTP, so if bittorrent isn't working for a user, their packets will come down via HTTP from Blizzard's servers and the updater still works.
So what am I going to do? Initially I'm using HTTP for updates. When my user base scales out of sight, then I think I'll put together a custom Bittorrent style protocol that doesn't look like Bittorrent to ISP's so that it can hopefully avoid that particular type of traffic shaping.
We were unable to retrieve our session cookie from your web browser. If pressing F5 once to reload this page does not get rid of this message, please read this to learn more.
You will not be able to post until you resolve this problem.