Development Blog

Where we pretend to know how to code.


Fast Download and you - What is it and how does it affect you?

Published: 2012-02-10

Author: Teddi

Recently I swapped the Fast download server to our main server machine and I’ve set it up to be powered by nginx. The main reasons for this is that the old server we were located on had a few download speed restrictions and I couldn’t control the daemon that was used to serve content. It also kept going down, which wasn’t really handy either.

But what is Fast Download and how does it help you, the user?

Fast Download’s reason for existing for existing is within its name. It speeds up the rate at which you download files.

So what are the basics behind this “amazing” system?

The source engine has quite a few rules in it that were sort of required for its debut in 2004.  This means limits that on todays infrastructure would seem useless and checks in place that in the long term slow things down. Back in 2004 100/100 MBit lines were somewhat uncommon with your typical line being between 10Mbit - 50 Mbit. This meant any data sent over these lines had to be small and compressed, so corners were cut where they could be.  One of the results of this is that the source engine caps any files sent to the files at 20kb/s.  That’s 20 kilobits per second which is pathetically slow, but for the games that were being hosted (CSS, DOD:S) they were acceptable. It prevented clans from forcing you to download unknown amounts of images onto your 80GB HDD because you’d simply get bored and disconnect before it had the chance.

However a small command line existed within the source engine, “sv_downloadurl”. This option allows you to specify a HTTP webserver in which you can download the files at, as fast as the server and your own connection permits.  For a long time this went unnoticed mostly because it wasn’t needed. However when it came to Garrysmod, this was dug up pretty quickly however it was never really implemented in many servers at first. Why I’m not exactly sure, but it’s most likely due to the fact that many communities were still young and had no real clue this existed even though it was documented on the GMod wiki fairly fast (albeit the guide wasn’t written too well at the time).

In recent years it’s become more common in Garrysmod and other games because of the fact it’s simple to set up and it comes with a whole array of benefits such as -

  • Protection from some exploits - When the upload exploit existed in source, setting sv_allowupload / download to 0 and having a Fast Download server prevented the exploit from being able to affect your servers.
  • It removes the net_maxfile limit. If you don’t have a Fast Download server, this defaults at 16MB and can only be raised to 64MB.
  • As stated, it allows you to get content to the client faster (and thus removes the 20Kb/s limit).
  • A form of DRM - for maps if you wish to render them partially unusable for other people without your gamemode, you can remove the ents via entspy and host that version on the Fast Download server.

 

At the end of the day it’s always worth setting up and having a method to try and maximise the speeds you submit content at. Feel free to temporarily rename your Garrysmod folder and tell me if you feel that you’re downloading the content quicker than previously.

As a result everyone is happier because it means less time sitting there bored.


Historical Posts