Jumping the CD Hurdle

There's a very simple rule on websites like this one: The larger a file, the more it is downloaded. This is not so much, because people like large downloads, but it's an indirect correlation caused by the link between age of a game and its size (so it really should be the younger a game, the more it is downloaded). You don't have to be a mathematician to understand the implications of this: Bandwidth (and by that money) consumption rises exponentially with file size of the offered games. In a way, as a webmaster, you're punished 'multifold' (?) for even going into that direction.

Exploding costs are most likely the main reason why there's hardly any source to get games of the CD-ROM generation. I've mentioned it being a problem in one of my earlier articles. Instead of endless whining, I'd like to point out a few (in my opinion) realistic options for solving this.

I'm restricting myself to the WWW part of the Internet here. I'm perfectly aware that many of these things are practised, for example, on IRC already. However, no other service has nearly the same scope as the WWW, so every solution ignoring it will be at the expense of most potential users.

Also, be aware that if you, as a webmaster, implement any of these solutions, your visitors will dislike it. Unlike you, they don't know about bandwidth costs, and they probably even don't want to understand. You'll certainly be able to explain it to the regulars, but the casual visitor (i.e. 99.99% of the people visiting your site) will always swear, curse and hurl abuse at you. If you want to be civil and deal with such people at all, the only valid answer is this: What do you prefer - this admittedly imperfect offer, or these files not being available at all?

Home connections

Most of us a sitting on a nifty DSL connection these days. And let's be honest: the upstream, even though it's a lot lower than the downstream usually, is idling most of the time. So it wouldn't hurt to throw a few files up on a simple local server. Dynamic IP addresses stopped being an issue when services like DynDNS became publically available.
Conclusion: Good solution for small to mid-sized sites. Slightly bigger sites might need to spread over several different sources like that, but it's still very easily overseen. On really big sites, resources can be too sparse.


BitTorrent is already used to spread lots of (legal) software these days. Basically, a website would just offer a small text file for download (the 'torrent'), and the game archive itself would then be transfered from other people downloading / sharing it. A little like other common file sharing applications, but with more focus on serving few files at high speeds.
Conclusion: This solution will only work for huge sites. Without an appropriate number of potential seeders, it's hopeless. If that critical mass is reached, it is an excellent solution, on the other hand, as long as the webmaster can accept that a torrent might stay active after he decided not to offer the download at all anymore for some reason.

Download rotation

If it gets too expensive to offer all files permanently, use an automated system which activates / deactivates parts of your complete connection according to the day of the week, week of the month or something like that - while still serving it all off your main server. That way, visitors can't download everything at once, but they have to come back later to get more, spreading their overall bandwidth consumption over a longer period of time.
Conclusion: Possible for all kinds of sites, but if visitors are insistent, it might not really lower bandwidth use, but only distribute it differently. Definitely an option to try, but keep a backup plan ready in case it doesn't have the desired effect.

Other restrictions

Limit transfer speed of visitors with something like mod_throttle for Apache, limit the number of times a file is allowed to be downloaded (regardless of by whom) per month or even limit visitors to one download at a time (like Home of the Underdogs does). There are many ways, but they all have one thing in common: Prevent one person from leeching everything you have at the same time.

Overall conclusion

The best ways depend on your own goals and your technical environment. You should aim at something reliable both for the visitors (e.g. availability) and the webmasters (no cheating possible, fine-grained control). The technical feasability is sometimes questionable, though. The best solutions require very good (expensive) hosting to get a level of control over the interiors of the webserver necessary for enforcing such policies. Also, you have to have the technical knowledge. Manipulation on this level (if done right, of course - everybody can fiddle around) is anything but trivial, unfortunately.

Mr Creosote (October 12th, 2006)

Comments, discussion, etc.