DoD 1.3 Server mit Steam

  • Ist das HowTo Hilfreich gewesen? 0

    How-To zum Aufsetzen eines DoD-Servers



    In diesem How-To möchte ich euch zeigen, wie man einen bzw. mehrere DoD 1.3 Server mit Steam aufsetzt. Ich gehe davon aus, dass gewisse Grundkenntnisse in Linux vorhanden sind, und dass ein eigener Benutzer angelegt wurde, unter dem der Game-Server läuft (Für die Newbies: Man startet NIEMALS Anwendungs-Programme oder Server als root!). Wie ein eigener Benutzer angelegt wird (als root) erfahrt ihr in diesem Thread.


    Ich werde in diesem How-To verschiedene Variablen verwenden, diese wären:


    {user} = Benutzername des Gameservers
    {steam_dir} = Verzeichnisname von Steam
    ~ = Home-Verzeichnis des Benutzers. Es kann so verwendet werden, steht für Linux selber für /home/{user}



    1. Installieren von Steam und herunterladen des Spiels


    Falls es noch nicht geschehen ist, dann loggt euch mit eurem Benutzernamen über SSH in euren Server ein (Bzw: wenn es sich um einen Server bei euch zuhause handelt, dann halt normal in der console).


    Als erstes legen wir ein Verzeichnis für den Gameserver an, ich hab es in diesem Fall "steam" (im folgenden mit {steam_dir} variabel) genannt, also


    Code
    mkdir steam


    Im nächsten Schritt laden wir das Steam-Tool herunter:


    Code
    wget http://storefront.steampowered.com/download/hldsupdatetool.bin


    was wir im nächsten Schritt auch direkt starten um Steam zu installieren


    Code
    ./hldsupdatetool.bin


    Solltet Ihr eine Fehlermeldung bekommen müßt Ihr zuvor "ncompress" installieren, was aber standartmäßig drauf sein sollte.



    Nun sollte der Inhalt des Verzeichnisses ungefähr so aussehen:


    Code
    -rwxr-xr-x 1 jwm users 3,4M 14. Jan 12:38 hldsupdatetool.bin
    -rw-r--r-- 1 jwm users 3,4K 7. Apr 2005 readme.txt
    -rwxr-xr-x 1 jwm users 7,5M 18. Nov 08:36 steam
    -r-xr-xr-x 1 jwm users 350K 16. Nov 06:28 test1.so
    -r-xr-xr-x 1 jwm users 443K 16. Nov 06:28 test2.so
    -r-xr-xr-x 1 jwm users 8,0M 16. Nov 06:28 test3.so


    Die .bin-Datei könnt Ihr getrost löschen oder ignorieren, sie hat keinerlei Funktion mehr.



    Im nächsten Schritt wird steam zu einer ausführbaren Datei gemacht und dann DoD heruntergeladen und zwar so:


    Code
    chmod u+x steam
    ./steam -command update -game cstrike -dir ~/{steam_dir}


    In 95% der Fälle wird nun erst einmal das Steam-Programm selber auf den neusten Stand der Dinge gebracht und Steam selber dann beendet. Sollte dem so sein, dann führt einfach den letzten Befehl erneut aus und ladet euch dann DoD herunter (Das kann auch mit 100MBit ne Weile dauern, kocht euch also in der Zeit nen Kaffee). Es wird dabei jede Datei angezeigt, welche von Steam geladen wird. Am Ende landet Ihr wieder in der console und habt nun ein neues Verzeichnis in Eurem {steam_dir} mit dem Namen "dod".


    Um zu schaun, ob alles sauber installiert wurde führen wir einfach mal folgenden Befehl aus:


    Code
    ./steam -game dod


    Dadurch wird der erste unkonfigurierte Server gestartet und am Ende solltet Ihr sogar darauf connecten können (Natürlich mit eurem Spiele-PC). mit "quit" wird dieser Server wieder beendet.



    2. Konfiguration und starten mit screen


    Konfiguriert wird der Server hauptsächlich über die Datei "server.cfg" die sich im "~/{steam_dir}/dod/" befindet. Editieren kann man diese Datei mit


    Code
    vi server.cfg


    In der Konfiguration gibt es sehr viele Variablen, die man einstellen kann, welche aber nicht in der server.cfg vorhanden sind. Die wichtigstens schreibe ich hier nun auf:



    Gespeichert wird in vi indem man auf [ESC] drückt und dann :x eingibt und mit [ENTER] abschickt.


    Wenn man nun die grundlegende Konfiguration fertig hat, kann man den Server wieder starten, jedoch besteht das Problem, dass der Server beendet wird, sobald man seine console schließt (bei der Art, wie wir vorhin den Server gestartet haben). Daher verwendet man in der Regel "Screen" um den Server in einem eigenen Terminal zu starten.


    Der Screen-Befehl wird folgendermaßen verwendet:


    Code
    screen -AmdS name ./programm -parameter


    Dadurch wird das gewünschte Programm im Hintergrund geladen und ist über den Namen "name" wieder erreichbar. Für unseren Server sieht das ganze dann so aus:


    Code
    screen -AmdS name ./steam -game dod


    Dabei zu beachten ist, dass man sich im {steam_dir} befinden. möchte man von irgentwo den gameserver starten, muß man den gesamten pfad zum {steam_dir} angeben, kann es aber auch mit "~/{steam_dir}/steam" abkürzen.


    Des weiteren kann man dem Server schon hier viele Parameter mitgeben, zum Beispiel, welche Map als erstes geladen werden soll oder wie viele Slots der Server haben soll. Ein Teil der Variablen sind folgende:


    Code
    -game dod			Sagt dem Server, welcher Server gestartet werden soll, in unserem Fall dod
    -maxplayers xx			Wieviele Slots soll der Server haben
    +map dod_anzio			Startmap festlegen
    -autoupdate			Gibt dem Server die Anweisung, bei einem Crash neu zu starten und bei Verfügbaren Updates diese einzuspielen
    -port 27015			Gibt dem Server die Anweisung auf dem Port x zu laufen, wobei ohne Angabe der Port 27015 verwendet wird. In der Regel laufen Server zwischen 27000 und 27050
    +log on				Sagt dem Server, dass er die Logs speichern soll. Ist sehr brauchbar, wenn man ein Statistik-Programm laufen lassen will.
    -pingboost (0|1|2)		Startet die Server eigene Routine, den Ping ein bißchen stabiler und niedrieger zu halten, wobei allerdings die CPU ein wenig mehr gefordert wird
    +servercfgfile xx.cfg		Gibt an, welche .cfg Datei der Server verwenden soll. Sehr hilfreich, wenn man mehrere Server starten will (dazu später mehr)


    Achtet darauf, das - bzw. das + mit zu schreiben, da es ohne nicht als Parameter erkannt wird.


    Hier nun ein Beispiel, für einen Server, der 20 Slots haben soll:


    Code
    screen -AmdS public ./steam -game dod -maxplayers 20 +map dod_anzio -autoupdate -pingboost 2 +log on


    Um jetzt in das Terminal hereinzukommen schreiben wir


    Code
    screen -R public


    In der Console vom DoD-Server können wir nun alles sehen, was der Server so ausgibt, können aber auch Befehle eingeben. Mit quit wird der Server wieder beendet. Um die Console zu verlassen ohne den Server zu beenden drücken wir [STRG]+[A]+[D] und kommen somit wieder in unsere Shell. Von Außen kann man den Server mit folgendem Befehl sauber beenden:


    Code
    screen -S public -X quit


    Dabei wird der befehl "quit" in das Terminal gesendet und der DoD-Server setzt diesen dann um indem er sauber herunterfährt (Es fährt nur der DoD-Server herunter, nicht der Server selber).


    3. Mehrere Server starten


    To be continued...

  • Du schreibst hier vieles hin, vergißt aber, dass es noch im Aufbau befindlich ist. Außerdem bezweifel ich, dass ein Anfänger, der ja nur Abschreiben will, einen eigenen Kernel kompilieren wird ;)


    Außerdem:


    Wenn du den User "gameserver01" generierst, solltest du auch dabei bleiben und nicht auf einmal einen neuen User "GameServer" aus dem Hut zaubern und dem ein Verzeichnis zuordnen, dass gar nicht existiert... :P


    MfG Commander


    P.S.: Ich werde in meinem Howto noch vieles hinzufügen, wie gesagt, es ist im Aufbau!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!