ubuntuusers.de

Dedizierter Steam-Server

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Für die GoldSrc und Source-Engine-Spiele von Valve 🇬🇧 und einige Third-Party-Spiele, die ebenfalls über steampowered.com 🇬🇧 🇩🇪 vertrieben werden, besteht die Möglichkeit einen dedizierten Server (engl.: Dedicated Server, kurz: DS) unter Linux zu betreiben. In Aktion tritt dabei der kostenlose closed-source "Steam Linux Client". Dessen Installation und der Betrieb des Servers sollen in dieser Anleitung betrachtet werden.

Für alle die nicht den Server betreiben, sondern die Spiele unter Linux spielen wollen, geht es hier weiter:

Hardware

Verlässliche Informationen zur benötigten Hardware gibt es nicht. Das ist zum einen abhängig von der verwendeten Engine. Die Source-Engine in ihrer neuesten Version von 2007 benötigt natürlich etwas mehr Power als die Spiele unter der älteren HL1-Engine von 1998. Auch die gespielten Modifikationen, die gespielten Maps und die Anzahl der Spieler beeinflussen die Geschwindigkeit des Servers. Ausschlaggebend für die Leistung des Servers sind CPU, Arbeitsspeicher, Festplatte und Internetanbindung. Die Grafikkarte ist irrelevant, da keine Grafikinformationen vom Server berechnet werden. Für einen HL1-Server kann man mit einer 1GHz CPU und 256MB Arbeitsspeicher schon etwas anfangen. Für einen Source-Server sollte man dagegen mindestens eine 2GHz CPU und 1GB Arbeitsspeicher einplanen. Eine schnelle Festplatte sorgt zum Beispiel dafür, dass Maps schneller geladen werden. Sollen besonders viele Spieler ein Match machen können, sollte man viel Arbeitsspeicher einplanen.

Vorbereitung

Vor der Installation des Steam Clients muss ein Rechner als dedizierter Spiele-Server entsprechend vorbereitet werden [1]. Es empfiehlt sich für den dedizierten Server einen neuen Benutzer anzulegen [2] (hier: "gameserver"), der keine Administrationsrechte besitzt. Alle weiteren Schritte erfolgen unter dem neuen Benutzernamen.

Steam Linux Client

Installation

Im Homeverzeichnis des Benutzers "gameserver" muss ein neues Verzeichnis erstellt werden, welches zukünftig alle mit dem Server in Verbindung stehenden Dateien beherbergt. Da sich die Dateien und Ordner der beiden Spiel-Engines stark ähneln empfiehlt es sich beide nicht zu mischen. Alle weiteren Schritte werden in dem jeweiligen Ordner vorgenommen, in den noch gewechselt werden muss.

ENTWEDER: Der Ordner für alle Source-Engine-Spiele (Counter-Strike: Source, Day of Defeat: Source, Team Fortress 2,...) sollte srcds heißen.

mkdir srcds    # Ordner für Source-Spiele anlegen
cd srcds       # in den Ordner wechseln 

ODER: Für alle HL1-Engine-Spiele sollte der Ordner hlds heißen.

mkdir hlds    # Ordner für HL1-Spiele anlegen
cd hlds       # in den Ordner wechseln 

Im entsprechenden Verzeichnis lädt man das Installationsprogramm hldsupdatetool herunter. Dieses muss ausführbar gemacht [3] und dann ausgeführt werden. Während der Installation müssen die Lizenzbedingungen durch die Eingabe von "yes" akzeptiert werden.

wget http://www.steampowered.com/download/hldsupdatetool.bin    # Installationsprogramm herunterladen
chmod +x hldsupdatetool.bin                                     # Installationsprogramm ausführbar machen
./hldsupdatetool.bin                                            # Installationsprogramm ausführen
./steam                                                         # Steam Linux Client auf den neuesten Stand bringen 

Für Ubuntu-64-bit müssen erst die 32-bit-Bibliotheken installiert werden.

apt-get install ia32-libs 

Ein Wiederholen des letzten Befehls zeigt nun die weiteren Installationsmöglichkeiten.

./steam 

Ausgabe:

Checking bootstrapper version ...

Use: steam -command <command> [parameters] [flags]

Commands:

 update: Install or update HLDS

   parameters:
      -game <game>            -   Game name: use 'list' to see available games
      -dir <installdir>       -   HLDS Install dir
      (if dir not specified, will use value from last run of tool)

   flags:
      -verify_all             -   Verify all HLDS files are up to date
      -retry                  -   Automatically retry every 30 seconds if the Steam Network is busy
      -remember_password      -   Remember password (if a username is supplied)

   For example: steam -command update -game cstrike -dir /hlds

 version: View installed versions

 list: View available games

Optional parameters for all commands:

      -username <username>    -   Steam account username (only needed to access limited content)
      -password <password>    -   Steam account password (only needed to access limited content)

Aktualisierung

Der Steam Linux Client wird mit

./steam -command update -verify_all 

aktualisiert. Der jeweilige Versionsstand kann ebenfalls angezeigt werden.

./steam -command version 

Spiele

Installation

Zunächst kann man sich einen Überblick über die Spiele verschaffen.

./steam -command list 

Die Installation des Wunschkandidaten kann nun erfolgen. Man sollte nur darauf achten, sich je nach Engine im richtigen Verzeichnis zu befinden.

./steam -command update -game <game> -dir . 

Der Parameter <game> ist je nach Spiel entsprechend zu ersetzen (Anführungszeichen beibehalten!). Die Dateien werden bei der Installation aus dem Internet heruntergeladen. Dieser Vorgang kann je nach Downloadbandbreite eine ganze Weile dauern.

Spiel <game>
Source-Spiele
Counter-Strike: Source "Counter-Strike Source"
Day of Defeat: Source "dods"
Team Fortress 2 "tf"
Half-Life 2: Deathmatch "hl2mp"
Garrys Mod "garrysmod"
HL1-Spiele
Counter-Strike "cstrike"
Couter-Strike Condition Zero "czero"
Deathmatch Classic "dmc"
Day of Defeat "dod"
Gearbox "gearbox"
Ricochet "ricochet"
Team Fortress Classic "tfc"

Außerdem stehen noch weitere Spiele-Server laut Auflistung zur Verfügung. Diese sind sogenannte Third-Party-Spiele, das heißt Spiele die nicht von Valve sondern von anderen Entwicklern stammen, aber ebenfalls über Steam vertrieben werden. Dazu gehören etwa "Dark Messiah", "Garrys Mod" oder "Red Orchestra".

Aktualisierung

Der Befehl für die Aktualisierung der Spiel-Dateien ist der gleiche wie der für die Installation, man kann sich aber die Angabe des Installationsordners sparen.

./steam -command update -game <game> 

Die Entwickler von Valve-Software 🇬🇧 bringen regelmäßige Updates heraus und im Steam-Client für Windows ist eine Art Update-Zwang integriert. Deshalb sollte auch der Spiele-Server immer auf dem neuesten Stand gehalten werden, das gilt besonders vor anstehenden LAN-Parties.

Start

Probelauf

ENTWEDER: Ein erster Probelauf des Source-Servers wird gestartet durch

./srcds_run <Parameter> 

wobei je nach Spiel andere Parameter zu wählen sind. (Un)Sinnigerweise wird der Parameter -game <game> mit anderen Flaggen bestückt, als beim Installations-/Aktualisierungsbefehl.

Spiel Parameter
Couter-Strike: Source -game cstrike +map de_dust +maxplayers 16
Day of Defeat: Source -game dod +map dod_jagd +maxplayer 24
Team Fortress 2 -game tf +map cp_dustbowl +maxplayers 32
Half-Life 2: Deathmatch -game hl2mp +map dm_resistance +maxplayers 20

Es gibt noch eine Reihe weiterer Parameter die angehängt werden können. Einige wenige sollen hier noch kurz erklärt werden.

Parameter Erklärung
-console Server mit Konsole starten (zeigt Infos zum laufenden Spiel)
-autoupdate Automatische Aktualisierung der Spieldateien vor Start des Servers
-ip xxx.xxx.xxx.xxx Bei mehreren zur Verfügung stehenden IPs, wird die dadurch eingestellte IP genutzt
-port xxxxx Legt den Port fest, über welchen das Spiel laufen soll. In der Regel wählt man den Port 27015
-secure Server wird mit dem Valve-Cheatschutz gestartet
-insecure Server wird ohne Valve-Cheatschutz gestartet
+sv_lan x Für x=1 wird ein LAN-Server gestartet, für x=0 ein Internet-Server der sich am Steam-Master-Server anmeldet
-nomaster Keine Anmeldung am Steam-Master-Server
+servercfgfile myserver.cfg Datei myserver.cfg als Serverkonfigurationsdatei laden
+mapcyclefile mymapcycle.txt Datei mymapcycle.txt als Map-Cycle-Datei laden
+motdfile mymotd.txt Datei mymotd.txt als "message of the day" laden

Weitere Erklärungen gibt es unter Source Dedicated Server 🇬🇧 .

ODER: Ein HL1-Server wird gestartet mit

./hlds_run <Parameter> 

Die Parameter sehen beispielsweise so aus:

Spiel Parameter
Couter-Strike -game cstrike +map de_dust +maxplayers 16
Counter-Strike Condition Zero -game czero +map de_dust_cz +maxplayers 16
Day of Defeat -game dod +map dod_avalanche +maxplayer 24

Die weiteren optionalen Parameter gleichen denen des Source-Servers und sind unter http://developer.valvesoftware.com/wiki/Command_Line_Options#Half-Life_Dedicated_Server 🇬🇧 zu finden.

Je nachdem mit welchen Parametern der Server gestartet wurde, sollte er nun im LAN oder online sichtbar sein. Beim ersten Start wird allerdings ein Standardname für den Server vergeben. Man muss die Liste aller Onlineserver schon genau durchsuchen um ihn wiederzufinden. Es besteht aber auch die Möglichkeit sich im Spiel direkt über die IP auf den Server zu verbinden.

Dauerbetrieb

Für den Dauerbetrieb ist es sinnvoll einen Server mittels Screen im Hintergrund zu starten [4]. Das würde für einen "Counter-Strike: Source"-Server beispielweise so aussehen:

screen -A -m -d -S css ./srcds_run -console -game cstrike +map de_dust +maxplayers 16 -autoupdate -port 27015 

Außerdem unverzichtbar ist die Konfiguration des Servers.

Mehrere Spiele gleichzeitig

Bei geeigneten Hardwarevoraussetzungen kann man auch mehrere Spiele gleichzeitig starten. Diese sollten dann allerdings über verschiedene Ports laufen. Der Standardport ist UDP 27015. Folgende Befehle starten einen "Counter-Strike: Source"-Server für 16 Spieler und einen "Day of Defeat: Source"-Server für 24 Spieler, jeweils im Hintergrund.

screen -A -m -d -S css ./srcds_run -console -game cstrike +map de_dust +maxplayers 16 -autoupdate -port 27015
screen -A -m -d -S dods ./srcds_run -console -game dods +map dod_jagd +maxplayers 24 -autoupdate -port 27035 

Sollen mehrere Instanzen des gleichen Spiels aber mit verschiedenen Konfigurationen laufen, dann sollte Gebrauch von den oben genannten Parametern (+serverconfigfile ...) gemacht werden.

Konfiguration

Bevor der Server im Dauerbetrieb eingesetzt wird, sollte er konfiguriert werden. Dazu gehört im Wesentlichen die Erstellung einer Server-Konfigurationsdatei server.cfg im cfg-Verzeichnis des jeweiligen Spiels. Die Datei enthält unter anderem Name und Einstellungen des Servers, sowie Einstellungen zu den Maps. Weiterhin gibt es mittlerweile zahlreiche Plugins, die zum Einen den Betrieb und die Steuerung des Servers erleichtern, dem Admin die In-Game-Steuerung, zum Anderen neue Spiel-Modi, etwa einen Zombie-Mod für "Counter-Strike: Source" hinzufügen. Um den Server noch abwechslungreicher und attraktiver zu gestalten, kann man von verschiedenen Internetseiten sogenannte Custom-Maps, also von anderen Fans der Spiele gestaltete Maps heruntergeladen und zusätzlich zu den Standard-Maps des Entwicklers installieren. Eine umfangreiche Erklärung zur Konfiguration der Server gehört allerdings nicht hier ins Wiki, die folgenden paar Links sollten aber weiterhelfen:

Wer noch weitere Seiten kennt, kann diese gerne hinzufügen!

Modifikationen

Im Grunde genommen sind Spiele wie etwa "Counter-Strike" oder "Day of Defeat" selbst schon Modifikationen 🇩🇪 des Single-Player-Spiels "Half-Life" bzw. des Nachfolgers "Half-Life 2". Mittlerweile werden diese erfolgreichen und vor einiger Zeit noch kostenlosen Mods aber von Valve selbst entwickelt und kostenpflichtig vertrieben. Es gibt aber immer noch viele interessante und frei verfügbare Mods und bei einigen auch eine Server-Variante. Die Valve-Statistik 🇬🇧 zeigt neben den Valve-Spielen auch einige andere erfolgreiche Modifikationen und enthält auch die Links zu den entsprechenden Webseiten (etwas weiter unten auf View HL1 and Source engine mod stats klicken). Meist muss man sich von der Mod-Webseite ein komprimiertes Archiv herunterladen und dieses in das srcds- oder hlds-Verzeichnis entpacken, wieder basierend darauf, welche Engine die Modifikation benutzt. Der Start erfolgt dann wie bei den anderen Spielen wobei der Parameter <game> durch den Namen des entpackten Archivs ersetzt wird. Über die weiteren Startparameter muss man sich im Einzelfall informieren, da sie zum Teil von den oben genannten abweichen. Weitere Modifikationen und jeweils eine Beurteilung findet man unter http://www.moddb.com/ 🇬🇧 .

  • Steam - Mit exzellent bewerteter Artikel über Steam in der deutschen Wikipedia

  • http://www.holarse-linuxgaming.de 🇩🇪 - Das größte deutschsprachige Linuxspiele-Portal auch mit Informationen zur Installation eines dedizierten Servers

Diese Revision wurde am 18. November 2018 01:01 von Beforge erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Netzwerk, unfreie Software, Spiele, Server