[[Vorlage(Archiviert)]] {{{#!vorlage Wissen [:Dedizierter_Spiele-Server: Dedizierten Spiele-Server einrichten] [:Benutzer_und_Gruppen: Neuen Benutzer anlegen] [:chmod: Zugriffsrechte von Dateien ändern] [:Screen: Prozesse mit Screen im Hintergrund starten] }}} [[Inhaltsverzeichnis(1)]] Für die [wikipedia:GoldSrc:GoldSrc] und [wikipedia:Source-Engine:Source-Engine-Spiele] von [http://www.valvesoftware.com/ Valve] {en} und einige Third-Party-Spiele, die ebenfalls über [http://www.steampowered.com steampowered.com] {en} {de} vertrieben werden, besteht die Möglichkeit einen [wikipedia:Dedizierter_Server: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: * [:Spiele/Steam: Steam mit Wine installieren] * [:Archiv/Spiele/Counterstrike-Source: Counter-Strike: Source mit Wine installieren] * [:Archiv/Cedega:] * [:Wine:] = 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. {{{#!vorlage Befehl 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. {{{#!vorlage Befehl 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. {{{#!vorlage Befehl 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. {{{#!vorlage Befehl apt-get install ia32-libs }}} Ein Wiederholen des letzten Befehls zeigt nun die weiteren Installationsmöglichkeiten. {{{#!vorlage Befehl ./steam }}} Ausgabe: {{{ Checking bootstrapper version ... Use: steam -command [parameters] [flags] Commands: update: Install or update HLDS parameters: -game - Game name: use 'list' to see available games -dir - 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 - Steam account username (only needed to access limited content) -password - Steam account password (only needed to access limited content) }}} == Aktualisierung == Der Steam Linux Client wird mit {{{#!vorlage Befehl ./steam -command update -verify_all }}} aktualisiert. Der jeweilige Versionsstand kann ebenfalls angezeigt werden. {{{#!vorlage Befehl ./steam -command version }}} = Spiele = == Installation == Zunächst kann man sich einen Überblick über die Spiele verschaffen. {{{#!vorlage Befehl ./steam -command list }}} Die Installation des Wunschkandidaten kann nun erfolgen. Man sollte nur darauf achten, sich je nach Engine im richtigen Verzeichnis zu befinden. {{{#!vorlage Befehl ./steam -command update -game -dir . }}} Der Parameter ```` 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 || ```` || ||<-2 rowclass="highlight"> 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"`` || ||<-2 rowclass="highlight"> 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. {{{#!vorlage Befehl ./steam -command update -game }}} Die Entwickler von [http://www.valvesoftware.com/ Valve-Software] {en} 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 {{{#!vorlage Befehl ./srcds_run }}} wobei je nach Spiel andere Parameter zu wählen sind. (Un)Sinnigerweise wird der Parameter ``-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 [http://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server Source Dedicated Server] {en} . ODER: Ein HL1-Server wird gestartet mit {{{#!vorlage Befehl ./hlds_run }}} 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 http://developer.valvesoftware.com/wiki/Command_Line_Options#Half-Life_Dedicated_Server] {en} 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: {{{#!vorlage Befehl 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. {{{#!vorlage Befehl 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: * Source-Spiele allgemein * [http://www.srcds.com/ http://www.srcds.com/] {en} - Webseite zum Source Dedicated Server * [http://developer.valvesoftware.com/ http://developer.valvesoftware.com/] {en} - Entwicklerwebseite von Valve * [http://mani-admin-plugin.com/ http://mani-admin-plugin.com/] {en} - Das Mani-Admin-Plugin erleichtert die Bedienung eines dedizierten Source-Servers * [http://www.sourcemm.net/ http://www.sourcemm.net/] {en} - Der Metamod:Source ist ein ganzes Framework für zahlreiche Plugins für Source-Server * [http://www.sourcemod.net/ http://www.sourcemod.net/] {en} - Sourcemod kann mit Metamod:Source geladen werden und unterstützt ebenso zahlreiche weitere Plugins für Source-Server * [http://www.sourceserver.info/ http://www.sourceserver.info/] {de} - Deutschsprachige Anlaufstelle für allerlei Themen rund um Source-Server * Counter-Strike: Source * [http://counter-strike.de/content/server/ http://counter-strike.de/content/server/] {de} - Die Server-Sektion von [http://www.counter-strike.de http://www.counter-strike.de] {de} * Day of Defeat: Source * Team Fortress 2 * [http://www.tf2wiki.net/wiki/Main_Page TF2 Wiki] {en} - Wikiseite rund um Team Fortress 2, auch mit Informationen zum [http://www.tf2wiki.net/wiki/Dedicated_server_configuration dedizierten Server] {en} * [http://www.tfportal.de http://www.tfportal.de] {de} - Deutsche Seite über alle Team Fortress Varianten, unter anderem mit Informationen zur [http://www.tfportal.de/tf2_serverconfig.php Serverkonfiguration] {de} * HL1-Spiele allgemein * [http://hlds101.com http://hlds101.com] {en} - Installation und Konfiguration von HLDS * Counter-Strike * Day of Defeat * Team Fortress Classic 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 [wikipedia:Mod_%28Computerspiel%29:Modifikationen] {de} 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 [http://steampowered.com/v/index.php?area=stats&cc=DE Valve-Statistik] {en} 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 ```` 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/ http://www.moddb.com/] {en} . = Links = * [wikipedia:Steam:Steam] - Mit exzellent bewerteter Artikel über Steam in der deutschen Wikipedia * [http://www.holarse-linuxgaming.de http://www.holarse-linuxgaming.de] {de} - Das größte deutschsprachige Linuxspiele-Portal auch mit Informationen zur Installation eines dedizierten Servers # tag: Netzwerk, Server, Spiele, unfreie Software