Die Geschwindigkeit der direkten Downloads bei Gameservern mit der HL1- und HL2-Engine ist begrenzt, damit der Gameserver durch die Downloads nicht beeinträchtigt wird. Da bei der HL2-Engine sehr große Downloads vorkommen, hatte Valve den Fastdownlod eingeführt. Der Download der Customdateien wird auf einen Webserver umgeleitet. Dies wird nur durch eine Konsolen-Variablen (sv_downloadurl) definiert. Seit der HL2-Engine wird auch die Bz2-Kompression unterstützt. Maps lassen sich so um die Hälfte verkleinern. Der Serveradmin kann selber entscheiden, welche Dateien er komprimiert und welche nicht.
Für den Fastdownload wird ein Webserver benötigt. Es wird nur das HTTP-Protokoll unterstützt und kein anderes. Durch den Fastdownload kann ein hohes Trafficaufkommen verursacht werden. In der Regel eignen sich kostenlose Webspaceprovider nicht für den Einsatz das Fastdownloads. Viele limitieren die Dateigröße, verbieten bestimmte Dateitypen und erlauben keine direkten Downloads usw. Die meisten setzen sehr wirkungsvolle Techniken ein um dies zu verhindern und haben dies auch in ihren AGB ausdrücklich verboten. Bei http://www.webhostlist.de/ gibt es eine Übersicht vieler kostenpflichtiger Provider.
Jegliche Dateien, die heruntergeladen werden, müssen sich auf dem Webspace im gleichen Verzeichnis befinden, wie auf dem Gameserver. Das Wurzelverzeichnis ist das Verzeichnis der Modifikation. Durch die Konsolen-Variablen sv_downloadurl
wird die URL zum Webspace angegeben, welches dann als Wurzelverzeichnis für den Download verwendet wird. Bei einem Wurzelverzeichnis, handelt es sich um ein Verzeichis, dass sich logisch in der höchstem Ebene der Verzeichnisstruktur befindet. Es muss sozusagen die Verzeichnis- und Dateistruktur des Gameservers nachgebildet werden. Da immer nur der veränderte Inhalt heruntergeladen wird, brauchen nur diese Dateien auf den Webspace hochgeladen werden. Die anderen Dateien haben die Spieler ja bereits in ihrem Steam-Zwischenspeicher. Durch ein Beispiel lässt sich der Vorgang einfacher verstehen.
Beispiel
In diesen Szenario haben wir einen „Half-Life 2 Deathmatch“-Server mit der Map dm_DamFacility laufen. Die Konsolen-Variablen sv_downloadurl wurde auf http://sourceserver.info/abc
gesetzt. Die Map befindet sich wie alle Maps im Verzeichnis maps
. Verbindet siech ein Spieler mit dem Server, der diese Map noch nicht hat, leitet der Server den Download automatisch auf http://sourceserver.info/abc/dm_DamFacility.bsp.bz2 um. Befindet sich die komprimierte Version nicht auf dem Webserver, wird danach die nicht komprimierte Datei http://sourceserver.info/abc/dm_DamFacility.bsp angefordert. Befindet sich diese Datei auch nicht auf dem Webspace, kann der Client die Datei nicht herunterladen. In diesem Fall würde könnte der Spieler sich nicht mit dem Server verbinden, da er die Map nicht hat. Da der größte Teil der Webserver in Deutschland auf einem Linux-Server laufen, wird hier zwischen Groß- und Kleinschreibung unterschieden. Es ist darauf zu achten, dass die Schreibweise korrekt ist. Windows unterscheidet Pfade nicht mit Groß- und Kleinschreibung. Das ist der häufigste Fehler der gemacht wird.
Eine Vielzahl von Maps bringen benötigen auch noch andere Dateien. Das sind eigene Models, Sounds und Texturen. Diese Dateien werden nur heruntergeladen, wenn diese auch in der .res-Datei definiert sind. Fehlt die Ressourcen-Datei, werden die zusätzlichen Dateien nicht heruntergeladen. Ausgeschlossen sind die Navigationsdateien für Bots und Geiseln. Diese werden immer heruntergeladen, wenn sie existieren.
Einzelne Dateien können nach Wunsch auch im bzip2 Format komprimiert werden. Es können nicht mehrere Dateien in einem Archiv zusammengefasst werden. Mit Bzip2 können auch nur einzelne Dateien komprimiert werden. Bei einer komrpimierten Datei wird immer das Suffix .bz2 am Dateinamen angehängt. Aus de_testmap.bsp
wird dann de_testmap.bsp.bz2
.
Viele Admins haben Angst davor, dass ihr Fastdownload auch für andere Server durch dritte ausgenutzt wird und dadurch Traffic erzeugt wird, der durch den Mieter des Webspace bezahlt werden muss. Bei allen Angeboten gibt es freie Kontingente an Traffic, die kostenfrei sind. Da auf den meisten Webservern der Apache Webserver verwendet wird, kann durch eine .htaccess-Datei das herunterladen von Dateien auf eine IP im Referer beschränkt werden. Bei dem Fastdownload wird vom Clienten immer der Referer mit der aktuellen IP des Gameservers über den HTTP-Header übergeben.
Bei diesem Beispiel könnte ein Client nur Dateien vom Webserver herunterladen, wenn er sich zum Server mit der IP 192.168.0.1
verbindet.
SetEnvIfNoCase Referer hl2://192\.168\.0\.1 allow_download Order Deny,Allow Allow from env=allow_download Deny from all
Slash
“/“ am Ende der URL von sv_downloadurl
. Der Server hängt am Ende automatisch ein slash
mit an. Es gibt vereinzelt Anbieter mit Apache1-Servern. Diese Server interpretieren doppelte und mehrfache slashes
als Verzeichnis. Der Download der Dateien funktioniert dann nicht. Im Gegensatz dazu ignorieren Apache2-Server doppelte und mehrfache slashes
.