| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
OpFeRlAmM Admin
Reg.Datum: 17.06.2003 Beiträge: 3730 Wohnort: #opfer
Status: Offline |
Verfasst am: 16 Dez 2004 - 16:02 Titel: Custom Content Download (Maps, Sounds, etc.) |
|
|
I. Allgemein
*.res Dateien dienen in der SRC-Engine dazu, bestimmte Dateien an die Clients zu übertragen, wobei .res für resource steht.
Diese Dateien befinden sich im SRCDS/$MOD/maps/ Ordner und tragen Namen der Maps (so z.b. de_dust.res).
Es gibt dabei 2 Arten von Dateien:- "wichtige" Dateien:
Unter "wichtigen" Dateien versteht man in dem Fall für das jeweilige Spiel unmittelbar benötigte Dateien (z.b. *.bsp, *.wad, *.spr), ohne die ein Teilnehmen an dem Spiel unmöglich ist. - "unwichtige" Dateien:
Als "unwichtige" Dateien bezeichnet man Dateien, die nicht unbedingt notwendig sind, z.b. zusätzliche Sounds oder Sprites.
II. *.res-Dateien
Der SourceServer checkt auf jeder Map, zu der eine solche Datei existiert, ob die Clients die in dieser *.res-Datei eingetragenen Dateien haben. Wenn das nicht der Fall ist, schickt der Server den Clients diese Dateien. (s. dazu weiter unten).
Um eine solche *.res Datei anzulegen kann man entweder eine vorhandene nehmen, umbenennen und dann entsprechend editieren oder einfach eine mit Notepad neu erstellen.
In diese Datei kommen dann alle zu checkenden Dateien inkl. Ordner (vom $MOD-Ordner ausgegangen) und Endung, sowie dem Eintrag "file".
| Code: | "resources"
{
"sound/misc/sound.wav" "file"
"blabla.wad" "file"
"sound/materials/rofl.txt" "file"
"sprites/flame.spr" "file"
} | Clientseitig bereits vorhandene Dateien werden nicht überschrieben, sondern nur fehlende Dateien hinzugefügt.
Über den Sinn, Sound-Dateien in solchen *.res-Dateien einzutragen lässt sich streiten. Imho sind *.res-Dateien nur für Custommaps/Sprites/Wads geeignet, nicht aber für Sound-Alias-Dateien, denn man betreibt ja einen Gameserver und keinen Filetransferserver. Anstatt diese Sounddateien in *.res-Dateien einzutragen, wäre es sinnvoller gezippte Archive auf der Homepage/MOTD zu verlinken, die Clients sich dann, sofern sie es wünschen, sich auch saugen können.
Desweiteren kann man in den *.res-Dateien mehr Dateien angeben, als tatsächlich hinterlegt wurden. Man sollte hierbei jedoch darauf achten, dass zumindest für das Spiel "wichtige" Dateien angegeben wurden.
Ausgenommen davon sind kritische Dateien, wie z.b. jegliche Art von *.bat, *.exe, *.com, *.vbs etc..
III. Datei-Download
Grundlegend erfolgt die Freigabe jeglicher Downloads (Logos, Maps, Sounds etc.) per sv_allowdownload.
Der Download erfolgt dann über 2 Mechanismen:- via GameServer
- via externem WebServer
- zu a:
Die Übertragung erfolgt dabei direkt vom GameServer und seinen Verzeichnissen mit max. 4KB/s. Der Vorteil bei dieser Methode ist, dass zwingend benötigte Dateien zum Spielen [z.b. Custommaps inkl. aller notwendigen Dateien] in jedem Fall auf dem GameServer vorhanden sind und somit an die Clients verteilt werden (vorrausgesetzt man hat beim upload der Map z.b. keine wichtigen Dateien vergessen infolgedessen der Server eh abrauchen würde und keine Dateien verteilen könnte ).
- zu b:
Hier erfolgt der Download per externem HTTP-Server mit der dann max. verfügbaren Bandbreite des jeweiligen Clients. Dazu gibt man per sv_downloadurl ein Verzeichnis auf einem WebServer an, welches in seinem Aufbau analog zu dem jeweiligen $MOD-Verzeichnis aufgebaut ist.
Bsp:
| Code: | // auszug aus der server.cfg:
sv_downloadurl "http://gs-ftp.die-opfer.de/cstrike/" | erfordert dann entsprechend einen /cstrike/ Subordner unter der Subdomain gs-ftp.die-opfer.de, der wie folgt aufgebaut sein könnte: | Code: |
/cstrike/maps/...
sprites/...
sounds/...
... | mit den jeweiligen Dateien.
Wenn auf dem externen Webspace jedoch nicht alle dringend benötigten Dateien hinterlegt sind (*.bsp, *.wad, *.vmt, *.vtf, *.spr, etc.), dann wird der Verbindungsvorgang mit der Error-Meldung "missing map" quittiert. Daher sollte man auf jeden Fall überprüfen, ob diese wichtigen Dateien alle vorhanden sind.
Zum Ablauf des Download-Vorgangs sei folgendes angemerkt:
Clients verbinden sich mit dem GameServer, erhalten eine Liste mit notwendigen Dateien (aus jeweiliger .res-Datei), werden "in-Game" an den WebServer weitergeleitet und bekommen dort die Dateien geschickt, die zum einen in der Liste stehen und zum anderen auch wirklich auf dem WebServer hinterlegt wurden. Daraufhin werden sie wieder mit dem GameServer verbunden und können endlich erfolgreich am Spiel teilnehmen.
Ein Vorteil (und auch Nachteil ) ist hierbei schnell zu erkennen: während des Downloads vom WebServer belegen die Clients keinen Slot auf dem GameServer (dumm nur, wenn derweil dann alle Slots voll werden mit Clients, die alle Dateien bereits haben *hrhr*).
IV. BZIP-Optimierung
Dieser Abschnitt betrifft nur diejenigen, die die Dateien per sv_downloadurl verteilen.
BZIP ist eine frei-verfügbare Kompressionstechnik, die VALVe nun auch in den SRCDS integriert hat. Damit können grosse Maps stark komprimiert werden und ergo auch schneller übertragen werden (bis zu 50% schneller).
Die Nutzung von BZIP-Dateien ist dabei denkbar einfach: auf dem Webserver werden im /maps/-Verzeichnis statt den *.bsp-Dateien die komprimierten *.bzip-Dateien hinterlegt. Alle *.res-Dateien (und die darin enthaltenen Dateieinträge) bleiben erhalten, d.h. es müssen und dürfen keine .bzip-Dateien angegeben werden!
Es lohnt sich aber nur die *.bsp-Dateien zu komprimieren, da das Komprimieren von kleinen Dateien (.vmt, .wav etc.) kaum etwas bringt, im Gegenteil: die clients müssen sie wieder dekomprimieren.
Hinweis: die Clients brauchen kein BZIP. Diese komprimierten Dateien müssen nur vom Admin auf dem Webspace hinterlegt werden, der in sv_downloadurl angegeben wurde.
Anwendung von BZIP:
downloaden @ http://www.bzip.org/downloads.html
Am Besten ist es, man erstellt ein neues Verzeichnis und kopiert dort die eben gedownloadete Datei (mapname.bsp) hin.
Dann navigiert man in einer DOS-Box bzw. unix-shell in das Verzeichnis und fürt dort aus:Diese Dateien müssen dann nur noch in das entsprechende Verzeichnis (cstrike/maps/) des Webserver verschoben werden.
V. Anhang 1
Clients können diesen Download nur dann verhinden, wenn sie cl_allowdownload 0 bei sich gesetzt haben. Das würde sie dann aber auch vom Download wichtiger Dateien ausgrenzen und damit ein Teilnehmen an dem jeweiligen Spiel/Joinen auf den jeweiligen Server verhindern.
V. Anhang 2
Auf WebServern kann man einen Banner (/$MOD/gfx/banner.gif) hinterlegen, den Clients während des Custom-Content-Download-Vorgangs statt des VALVe-STEAM-Banners angezeigt bekommen.
Abmessungen des Banners: 340px*56px (noch nicht implementiert!)
V. Anhang 3
sv_downloadurl ist auf 127 zeichen beschränkt und könnte theoretisch auch mit username:passwort@ ausgestattet werden (was aber nicht möglich ist, da zum DL der Dateien, IE-funktionen genutzt werden, in denen aus Sicherheitsgründen sowas deaktiviert wurde) _________________ -lAmM-
OpFeR|cLaN - #opfer
OpFeR|kIrChE - kirche.die-opfer.info
OpFeR|tEmPeL - tempel.die-opfer.info
Liste aller ServerPluginBefehle
Zuletzt bearbeitet von OpFeRlAmM am 25 Okt 2005 - 11:45, insgesamt 4-mal bearbeitet |
|
| Nach oben |
|
 |
xl2c Frischfleisch
Reg.Datum: 08.01.2005 Beiträge: 1 Wohnort: ka
Status: Offline |
Verfasst am: 08 Jan 2005 - 15:22 Titel: |
|
|
Zuerst möchte ich mich vorab schon mal bedanken für den ein oder anderen Tip hier im Board den ich schon gebrauchen konnte.
Jetzt aber zu meinen kleinen Problemchen:
Hab unter Linux einen CSS-Server eingerichtet, etwas Feintuning gemacht, diverse Maps hoch geschoben und hier liegt auch das Problem.
Vermutlich ein sehr einfaches Problem, trotzdem schein ich einen DenkFehler zu machen da es bei mir nicht geht.
Die Maps holt er sich perfekt nach Methode B, sprich die Maps werden von "Webspace" geholt um die Ladezeiten zu minimieren. Leider klappt das aber nur mit der *.bsp, die materials will er einfach nicht.
Wie genau muss die "*.res"-Datei aussehen damit er weis in welchen Ordnern er nach den Dingen schauen muss?
Hab schon verschiedene Varianten durchprobiert, leider ohne Erfolg. Hab sogar die materials mal ins maps Verzeichniss kopiert und in der *.res-Datei keinerlei Pfadangaben gemacht. Geht auch nicht..
Könnte mir das nochmal jemand DAU-mässig erklären? (Die Anleitung ist eigentlich super aber ich bekomms trotzdem nicht hin)
Danke Steffi |
|
| Nach oben |
|
 |
hitmaster Frischfleisch
Reg.Datum: 19.01.2005 Beiträge: 1 Wohnort: Bückeburg
Status: Offline |
Verfasst am: 19 Jan 2005 - 12:46 Titel: *.res |
|
|
also bei mir funzt das mit den Materialien auch nicht, aber die Anleitung ist echt klasse. Alles andere funzt super und durch die zweite Variante dauert es auch eben nicht mehr so lange bis man die Map gezogen hat.
Ich weiß das gehört hier nicht her, aber geht das auch bei cs 1.6 (das der Aufbau der *.res Dateien anders ist weiß ich )?
thx für die super Anleitung
one-eSports | hitmaster |
|
| Nach oben |
|
 |
Karacho Frischfleisch
Reg.Datum: 19.01.2005 Beiträge: 1
Status: Offline |
Verfasst am: 19 Jan 2005 - 17:13 Titel: |
|
|
hmm ist das mit dem banner denn überhaupt noch möglich?
Ich hab bei cs:source da gar keine banner mehr...weder von valve content servern noch sonstwem? |
|
| Nach oben |
|
 |
OpFeRlAmM Admin
Reg.Datum: 17.06.2003 Beiträge: 3730 Wohnort: #opfer
Status: Offline |
|
| Nach oben |
|
 |
icewo Frischfleisch
Reg.Datum: 24.01.2005 Beiträge: 2
Status: Offline |
Verfasst am: 24 Jan 2005 - 15:11 Titel: frage zu dem download |
|
|
Ich hoffe ich schreib das hier richitg rein sonst tut es mir leid!
Also mit dem map dl klappt so weit alles bloß wenn jetzt jemand auf meinem server connectet aber die map nicht hat und er dann anfangt die map runter zu laden dann laggt der server für ca 3 -5 sekunden. ich weiß nicht woran das liegt könnte und ich hoffe ihr könnt mir da weiter helfen!
mfg icewo |
|
| Nach oben |
|
 |
OpFeRlAmM Admin
Reg.Datum: 17.06.2003 Beiträge: 3730 Wohnort: #opfer
Status: Offline |
|
| Nach oben |
|
 |
OpFeRlAmM Admin
Reg.Datum: 17.06.2003 Beiträge: 3730 Wohnort: #opfer
Status: Offline |
|
| Nach oben |
|
 |
-=[BFC]=- Shooter_McGavin Frischfleisch
Reg.Datum: 25.05.2005 Beiträge: 1
Status: Offline |
Verfasst am: 21 Sep 2005 - 15:59 Titel: |
|
|
Verstehe nur Bahnhof....
Wie mache ich das mit den BZIP?
Brauche ich dazu Root-Zugriff?
Habe mir die datei gezogen aber weiss nicht was ich jetzt tun soll!!
Die ganzen daten per ftp auf den webserver hauen oder was?
Wie Komprimiert er den die *bsp...muss man das vorher machen?
sehe nicht ganz durch! |
|
| Nach oben |
|
 |
OpFeRlAmM Admin
Reg.Datum: 17.06.2003 Beiträge: 3730 Wohnort: #opfer
Status: Offline |
|
| Nach oben |
|
 |
Flieger Frischfleisch
Reg.Datum: 10.04.2006 Beiträge: 2
Status: Offline |
Verfasst am: 10 Apr 2006 - 16:51 Titel: |
|
|
Wo bekommt man denn noch bzip her? Das ist doch schon überholt!
Bei mir auf dem Server ist bzip2 Instaliert! Funktioniert es damit auch?
Gruß Flieger |
|
| Nach oben |
|
 |
]Solaris[ Beta Team
Reg.Datum: 20.06.2003 Beiträge: 380 Wohnort: Burgdorf - Otze
Status: Offline |
Verfasst am: 10 Apr 2006 - 20:01 Titel: |
|
|
Denk schon, dass das funzt mit der 2er, weil ich schon öfters mal auf nen Server connected bin, wo die Datei .bz2 hiess.. mein ich zumindest mich erinnern zu können ^^ _________________
http://steamcommunity.com/groups/thespadeinvaders |
|
| Nach oben |
|
 |
Flieger Frischfleisch
Reg.Datum: 10.04.2006 Beiträge: 2
Status: Offline |
Verfasst am: 11 Apr 2006 - 8:14 Titel: |
|
|
Hallo ]Solaris[
auf so was habe ich noch nie wirklich geachtet.
Sieht man sowas dann direct beim conecten wenn der Client die Map Downloaded? Also das dan an stelle von *.bsp *.bz2 steht?
Ich werde es mal an einer Map ausprobieren! Mal sehen ob es funzt!
Gruß Flieger |
|
| Nach oben |
|
 |
]Solaris[ Beta Team
Reg.Datum: 20.06.2003 Beiträge: 380 Wohnort: Burgdorf - Otze
Status: Offline |
Verfasst am: 11 Apr 2006 - 12:55 Titel: |
|
|
Ja klar, dass sieht man beim connecten, wenn der die Map downloaded.. Dann steht da ja der Mapname und auch die Endung.
Genau, probieren geht über studieren *hehe ^^
gruß _________________
http://steamcommunity.com/groups/thespadeinvaders |
|
| Nach oben |
|
 |
|