Skip to main content
gamedev.net
🔒 Locked

Content Distribution

Started by stormwarestudios 2 replies 800+ views
Original Post
stormwarestudios
stormwarestudios
In client/server multiplayer games (and no different in the game I am developing), there are usually a number of end-user applications, mainly the client app, and some sort of gateway application. Typically, the gateway application might be responsible for patching the client, launching the client, and managing locally-stored account info. I thought it would be a fantastic (e.g. bandwidth-saving, which means cost-saving) idea to implement a bittorrent client inside the gateway application, and have each player's computer become a seed for the entire game application. Benefits: - Lowered cost for bandwidth for me. - Increased transfer rate depending on the number of seeds. - Mirror redundancy, since potentially every player could become a mirror. Setbacks: - Users may not appreciate bandwidth usage while they are not playing the game, but while the gateway is idle. Fix: permit users to set a bandwidth throttle. Further setback, not all users are savvy enough to understand concepts of bandwidth. Fix: automatically set to lowest-impacting setting? Not sure... - Some users' ISPs will implement a monthly transfer cap, after which they are billed (mine does!). Fix: user must be given the option to 'not' seed media files. Even so, player traffic overage WILL occur, which will cause me headaches, the likes of which no "I Agree" waiver can fix... - Gameplay will suffer if the gateway/patcher is seeding files, while the game itself is active. Fix: Gateway goes into sleep mode (i.e. no seeding) while client application is active (multiple methods of achieving this). - Some users' files might become out-of-date, which has a ripple effect: seed must cease seeding (or else propagate out-of-date files), which lowers overall available bandwidth. Fix: each gateway would need to do checksumming against a master media file list (i.e. from me) at launch-time, and update local files before beginning to seed. Some Questions: - Is coding this feasable in a short (e.g. 3-4 months) period of time? - Which bittorrent library should be used, given the requirements of, "GPL or similar licensing", "written in C++" and "available cross-platform"? Libtorrent/Rakshasa looks to be the only candidate... Any discussion, questions, opinions or comments would be appreciated!
BitMaster
BitMaster
Personally I don't mind offering a bit of bandwidth. However, you should clearly inform the user that this is happening and there should be a possibility to opt-out.

Apart from personal preferences, some braindead network administrators simply associate peer-to-peer = evil and it will not work or get you into troubles (sadly on some university networks as well). Disabling upload won't help there, the simple detection of the torrent protocoll will be the trigger in the general case.

Another issue is that the implemented torrent client should have a reasonable quality and adjustable user settings. The World of Warcraft torrent downloader is an absolute negative example in this case. Not only does everyone I know experience abysmal download rates with this downloader, it can very well reduce the network to a crawl by forcing maximum upload (at which point even simple web pages are a chore to load).
loufoque
loufoque
Personally, I don't want to have any demon running behind my back, nor do I want to participate in a service I'm not using at the moment. I'm ok to seed while downloading the patch and a bit after that, let's say to a 10x ratio, but not infinitely.

Quote:
Disabling upload won't help there, the simple detection of the torrent protocoll will be the trigger in the general case.

There are still people who use bittorrent without SSL?
Zahlman
Zahlman
Quote:
Original post by loufoque
There are still people who use bittorrent without SSL?


I would guess that most people don't consider most of what they torrent to be "sensitive data". The worst that would happen, in general, is that Joe User gets pulled in for piracy and the accusing party can say "look, we were snooping around randomly, and see? Our logs show the unencrypted data being sent to this guy's PC..."

(Edit: Piracy is bad mm'kay?)

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.