Wie erstellt und konfiguriert man einen “Dedicated Server”?

buildsteamserverSchon nach der ersten Installation eines Games von Valve fragte ich mich welcher Aufwand steckt dahinter und was benötigte ich alles einen Dedicated Server für die Games von Valve einzurichten und um diesen zu betreiben.

Dieser Artikel soll grundlegende Antworten zu den folgenden Fragen enthalten:

  1. Was heißt Dedicated Server und wofür ist dieser gut?
  2. Was sind die Voraussetzungen an die Maschine und an das Netzwerk?
  3. Von welcher Page kann dieser heruntergeladen werden?
  4. Wie wird dieser dann installiert/aktualisiert?
  5. Und letztendlich konfiguriert?
  6. Sowie: Wie lässt sich der Server…
    • starten
    • und beenden.

Im Folgenden möchte auf die bereits im Voraus genannten Punkte anhand des Spieles “Team Fortress 2″ von Valve eingehen.

1. Was heißt Dedicated Server und wofür ist dieser gut?

Da sich bei Wiki bereits jemand die Mühe gemacht hat, den Begriff “Server” zu beschreiben verweise ich gleich direkt auf die entsprechende Seite ohne weiter auf diesen Begriff einzugehen.

Das Wort “Dedicated” kommt aus dem Englischen und heißt (in diesem Kontext) “gewidmet” was soviel bedeuten soll, dass immer eine Server-Instanz einen oder mehreren Spielern gewidmet ist. Diese Gegenüberstellung beschreibt im Endeffekt, dass der Server die Haupt-Tätigkeiten wie Laden einer Karte, Synchronisieren der Spielfiguren von einem Rechner auf den anderen usw. für ein bestimmtes Spiel übernimmt. Also er widmet sich den Haupt-Tätigkeiten die sonst für jeden Rechner eines jeden Teilnehmers innerhalb einer Multiplayer-Umgebung anfallen würden.

Kurz noch zur Verwendung eines Servers von der Sicht eines Teilnehmers aus:

  1. Der Teilnehmer (Client) macht den Server seiner Wahl ausfindig (Name, IP-Adresse) welche durch Steam automatisch ausgelesen werden.
  2. Der Teilnehmer macht sich dem Server bekannt (übermittelt dem Server seine IP-Adresse und andere Daten wie z.B. Spielername).
  3. Der Server startet das Spiel ladet die Karte, erstellt für jeden Teilnehmer eine Figur…
  4. Der Teilnehmer sendet die Maus- und Tastenbefehle an den Server, dieser erkennt den Sender über die bei der Authentifizierung übertragene IP bzw. Spielernamen, und übernimmt die Empfangen Befehle auf die Ihm zugeordnete Spielfigur.

2. Was sind die Voraussetzungen an die Maschine und an das Netzwerk?

Voraussetzungen an die Maschine:

  • Es wird keine Steam-Installation benötigt (habe ich selbst jedoch noch nicht ausprobiert).
  • Mindestens Windows XP oder eine aktuelle Linux Distribution (KUbuntu, Suse Linux, usw.).
  • Allen anderen Anforderungen sollte genüge getan werden, wenn die empfohlenen Systemanforderungen für Windows XP oder Linux eingehalten werden. Aber auch hier gilt die Devise mehr ist besser als weniger.
  • Zur Info an alle Windows Vista User: Der Dedicated Server funktioniert bis auf eine Abweichung bei der Konfiguration dessen auch auf Windows Vista Ultimate (niederer Versionen von Vista habe ich nicht getestet).

Voraussetzungen an das Netzwerk:

  • Eine bis zum DSL-Gerät durchgehende kabelgebundene Verbindung vom PC.
  • Mindestens eine 100 MBit/s Netzwerkkarte.
  • Mindestens einen DSL Router/Hub mit einen Volumen-Tarif von mindestens 3 MBit/s.

3. Von welcher Page kann dieser heruntergeladen werden?

Das Tool welches die Installation unseres Dedicated Servers erledigt heißt “HldsUpdateTool” das auf der Website von Steam zum Download bereitsteht.


Klicke auf das Bild und Du siehst den Link zur Download-Page vom Steam Client. Weiter unten (etwas runterscrollen) existieren zwei Download-Links einmal für Windows und einmal für Linux.

4. Wie wird dieser dann installiert/aktualisiert?

  • Nachdem das Installations und Update-Tool “HldsUpdateTool” von der Steam Homepage heruntergeladen und die Datei in ein sinnvolles Verzeichnis wie z.B. C:\Program Files\Steam\Servers hineinkopiert wurde,
  • muss nun eine Shell/Kommandozeile
    Unter Windows:
    Während gedrückter Windows Taste das ‘R’ drücken, im sich öffnenen Fenster [Du darfst die Tasten wieder loslassem ;-) ] “cmd” eingeben und auf Ok-klicken.
  • Navigiere nun in das Verzeichnis in dem Du das “HldsUpdateTool” hineinkopiert hast.
    Unter Windows:
    In der Kommandozeile “cd /d C:\Program Files\Steam\Servers” eingeben und mit der Enter-Taste bestätigen.
  • Gebe nun in der Shell/Kommandozeile den Namen “HldsUpdateTool” (ohne Anführungsstriche) und durch ein Leerzeichen getrennt den folgenden Text -command update -game “tf”  -verify_all -dir “C:\Programme\Steam\Servers” ein.
    Zur Erklärung:

    • -command gibt den Befehl an, welche Aufgabe das HldsUpdateTool durchführen soll. In unserem Fall einen Update (daher wird anschließend “update” angegeben) bzw. eine Erstinstallation, da noch keine Server Dateien existieren.
    • -game legt den Namen des Spieles fest für das der Server geupdated bzw. installiert werden soll. Abhängig von diesen Wert werden unterschiedliche Maps, Images usw. heruntergeladen (in unserem Fall übergeben wir “tf” was selbstverständlich für “Team Fortress” steht.
    • -dir (engl. Directory) legt das Verzeichnis fest unter dem die Server-Dateien aktualisiert/installiert werden sollen.
    • -verify_all legt fest, dass vor allem bei späteren wiederholten Ausführen des obigen Befehls alle Dateien aktualisiert werden sollen.

    Abschließend nocheinmal die Eingabe kontrollieren und wieder mit der Enter-Taste bestätigen. Nachdem die Eingabe bestätigt wurde kann man gemütlich den Monitor ausschalten und sich an die Spielekonsole oder vor die Klotze setzen, da die Erstinstallation, abhängig von der Bandbreite, bis zu zwei Stunden dauern kann.

  • Nachdem die Installation abgeschlossen wurde, muss die Firewall des Server-PC’s und der DSL-Router konfiguriert werden.
    Kurz und bündig:

    • Auf dem PC müssen die Ports 27005 (Client Port), 27015/27030 (Serverport) für UDP freigegeben werden.
    • Nur für Dedicated Server fürs Internet benötigt.
      Auf dem Router muss ein sogenanntes Port-Forwarding eingestellt werden. Hierbei wird auf dem Router (meist unter “NAT & Portregeln” zu finden) festgelegt, dass der Router auf eine Anfrage von außen (übers Internet), die vom Client auf den Port 27015 oder 27030 des Routers (“Ich möchte mich auf den Dedicated Server verbinden.”) eingeht, direkt an den Server-PC weiterleiten soll. Dazu wird beim Router noch die LAN IP-Adresse des Server-PC’s benötigt. Manche Router blenden diese bereits vor, falls man die Router-Konfiguration über den Server-PC durchführt. Das dabei zu verwendende Protokoll ist auch hier UDP.

    Zur Erklärung, was es sich mit den Server-Port 27015/27030 auf sich hat: Alle Unix Systeme (Mac OS, Linux, usw.) und Windows Betriebssysteme kleiner als Windows Vista können mit dem Server-Port 27015 arbeiten. Auf Windows Vista hingegen funktioniert nur der Port 27030 als Server-Port.

Für Benutzer von Windows Vista:
Der Benutzer, der das “HldsUpdateTool” starten möchte, muss ein Administrator sein. Des Weiteren sollte, bevor die Anwendung gestartet wird, die Dateieigenschaft “Programm als ein Administrator ausführen” angehackt werden (Rechtsklick auf “HldsUpdateTool” -> Eigenschaften -> Reiter “Kompatibilität” -> ganz unten).

Es geht aber auch noch einfacher!

Für spätere Aufrufe des “HldsUpdateTools” ohne per Hand die Kommandozeile zu öffnen und alles wiederholt abzutippen, würde ich empfehlen eine Kommandozeilen-Skriptdatei anzulegen (mit der Dateiendung *.cmd). Das folgende Bild zeigt eine entsprechende:

Im wesentlichen wird jedoch nur die Zeile: “C:\Program Files\Steam\servers\HldsUpdateTool.exe” -command update -game “tf” -verify_all -dir “C:\Program Files\Steam\servers” benötigt.

Dann nur noch Rechtsklick auf die Datei “Als Administrator ausführen” wählen, bestätigten und kein Tippen mehr.

5. Und letztendlich konfiguriert?

Der Dedicated Server von Valve wird lediglich bzw. sollte immer über die server.cfg im Unterverzeichnis “orangebox\tf\cfg” vom Installations-Verzeichnis konfiguiert werden. Zwar besitzt die Server-Anwendung (srcds.exe – Source Dedicated Server) auch eine grafische Benutzeroberfläche aber diese bietet zum einen nur die notwendigsten Einstellungen (bis auf eine, ob der Server sich im LAN oder im Internet befinden soll) und zum Anderen empfiehlt Valve selbst die Verwendung der server.cfg. Da es sich bei dieser Datei um eine reine Textdatei handelt, kann diese mit jeden Texteditor (Textedit, Notepad, WordPad, MS Word u.ä.) bearbeitet werden. Da für meinen Geschmack der Inhalt der server.cfg recht gut dokumentiert ist, denke ich dass sich jeder schnell darin zurecht finden wird.

Hier klicken zum Download einer Beispiel server.cfg. Falls sich diese nicht im oben beschriebenen Verzeichnis befindet einfach diese hier herunterladen und in das Verzeichnis kopieren und anpassen.

6. Sowie: Wie lässt sich der Server…starten und beenden.

Wie bereits im vorherigen Kapitel kurz angerissen, heißt die eigentliche Anwendung, welche den Dedidicated Server Service bereitstellt, srcds.exe. Der Name dieser Anwendung baut sich aus “Source Dedicated Server” zusammen und ist selbst im Unterverzeichnis\orangebox\ im Installationsverzeichnis; also in unserem Beispiel unter: C:\Program Files\Steam\servers\orangebox. Auch wie das HldsUpdateTool wird auch die srcds über die Shell/Kommandozeile gestartet, da die Anwendung über die Shell/Kommandozeile die notwendigen Parameter erhält, die zum Starten des Servers notwendig sind.

Starten des Servers

Zum Starten des Servers muss zu allererst wieder (falls bereits wieder geschlossen) die Shell/Kommandozeile des jeweiligen Betriebssystems gestartet werden. Als nächstes wechseln Sie in das Verzeichnis “C:\Program Files\Steam\servers\orangebox”, in dem sich die srcds.exe befindet.

Nun geben Sie den folgenden Text ein: srcds -nocrashdialog -console -game “tf” -port 27015/27030 -maxplayers 32 +map cp_dustbowl und bestätigen die Eingabe mit Enter.

Zur Erklärung:

  • -nocrashdialog ist ein nur für die Windows-Version verfügbarer Parameter, der im wesentlichen festlegt, dass die Anwendung bzw. Windows keinen Fehlerdialog anzeigen soll, wenn der Server aus irgendeinen Grund abgestürzt ist. Dieser Parameter ist optional und muss daher nicht angegeben werden.
  • -console legt fest, dass der Server über ein Konsolenfenster gestartet werden soll und nicht über eine grafische Oberfläche, da diese nicht die Möglichkeiten des Konsolenfensters bietet.
  • -game “tf” legt den Namen des Spieles fest, welches auf dem Dedicated Server ausgeführt werden soll.
  • - port 27015/27030 legt den Port fest, über den der Server auf Client-Anfragen lauschen (eng. listen) soll, damit er diese entsprechend beantworten kann. (Auch hier gilt für Windows Vista den Port 27030 und für alle anderen Betriebssysteme den Port 27015 zu verwenden).
  • -maxplayers 32 legt die maximale Anzahl der verfügbaren Spielerplätze fest. Die Grenze von 32 Spielern sollte hier jedoch nicht überschritten werden.
  • +map cp_dustbowl legt als Startmap die Map (engl. Karte) mit dem Namen cp_dustbowl fest, d.h. dass diese Map sofort nach dem Start des Servers geladen wird.

Sobald der Server vollständig gestartet wurde sollte die Konsole des Servers ähnliche wie die folgende aussehen:

Für Benutzer von Windows Vista:
Der Benutzer, der das “srcds” starten möchte, muss ein Administrator sein. Des Weiteren sollte, bevor die Anwendung gestartet wird, die Dateieigenschaft “Programm als ein Administrator ausführen” angehackt werden (Rechtsklick auf “srcds” -> Eigenschaften -> Reiter “Kompatibilität” -> ganz unten).

Es geht aber auch noch einfacher!

Für spätere Aufrufe vom “srcds” ohne per Hand die Kommandozeile zu öffnen und alles wiederholt abzutippen, würde ich empfehlen eine Kommandozeilen-Skriptdatei anzulegen (mit der Dateiendung *.cmd). Das folgende Bild zeigt eine entsprechende:

Im wesentlichen wird jedoch nur die Zeile: “C:\Program Files\Steam\servers\orangebox\srcds.exe” -nocrashdialog -console -game “tf” -port 27015/27030 -maxplayers 32 +map cp_dustbowl benötigt.

Dann nur noch Rechtsklick auf die Datei “Als Administrator ausführen” wählen, bestätigten und kein Tippen mehr.

Beenden des Servers

Geben Sie lediglich in der Konsole des Servers den Befehl exit ein und bestätigen Sie die Eingabe mit Enter.

Quellen:

Post to Twitter

Tags: , , ,

5 Responses to "Wie erstellt und konfiguriert man einen “Dedicated Server”?"

  • golfi says:
  • Dominik says:
  • golfi says:
  • Dominik says:
Leave a Comment