Quake III Dedicated Server

Bild des Benutzers comrad

Vorwort

Um einen Quake3 Server zu installieren gibt es verschiedene Lösungen.
Dies wird eine Schritt für Schritt-Anleitung, wobei der Server ein eigenes Home-Verzeichnis bekommt und auch unter dem jeweiligen User läuft.

Die Gründe hierfür sind folgende:

   1. Jeder Server verwendet seine eigenen Dateien.
   2. Beliebig viele Server können zur gleichen Zeit laufen.
   3. Verschiedene MODs können ungehindert nebeneinander laufen.
   4. Verschiedene Versionen des Servers können ungehindert nebeneinander laufen.
   5. In der Prozesstabelle wird jeweils der User angezeigt. z.B nützlich für Fehlersuche.
   6. Keine Beeinträchtigung der anderen Server, sollte sich mal ein Server aus verschiedenen Gründen den Dienst verweigern.

Aktuelle Version des Pointreleases: 1.32b

Benötigte Dateien:

  • linuxq3apoint-1.32b-3.x86.run
  • quake3-1.32c.zip
  • pak0.pk3 (Zu finden auf der Quake3 Cd-Rom unter baseq3)

1.2 Ein neuer User wird angelegt.

adduser q3server1

1.3 Einloggen mit dem gerade erstellten User

1.4 Download des Pointreleases per FTP von ID.

wget >>ftp://ftp.idsoftware.com/idstuff/quake3/linux/linuxq3apoint-1.32b-3.x86.run

1.5 Rechte setzen zum Ausführen des Installers

chmod 775 linuxq3apoint-1.32b-3.x86.run

1.6 Installation beginnen

1.6a Hinweis:
Als Verzeichniss für die Installation den Ordner des erstellten Benutzers angeben ( /home/q3server1/quake3 )
Für die Verknüpfung/Symbolic Links) (/home/q3server1)

./linuxq3apoint-1.32b-3.x86.run

1.6b "quake3-1.32c.zip:/Quake III Arena 1.32c/linux/q3ded" nach /home/q3server1/quake3/ entpacken.
Am besten macht man das mit "mc", dann muss man die zip-file nicht ganz entpacken...

1.7 Hochladen oder Kopieren der pak0.pk3 von der Quake3 CD.

1.7a Hat man lokalen Zugang zum Server muß die pak0.pk3 in das Verzeichniss des Quake3 Servers kopiert werden.

Mounten des Laufwerkes ( In meinen Fall unter /mnt/cdrom ).

mount /mnt/cdrom
cp /mnt/cdrom/Quake3/baseq3/pak0.pk3 /home/q3server1/quake3/baseq3

1.7b Ansonsten die pak0.pk3 per ftp oder dergleichen hochladen und in das Verzeichniss /home/q3server1/quake3/baseq3 kopieren.

1.8 Erstellen einer Config für den Q3 Server.

Hinweis:
Folgende Config kann als gute Grundlage für den Server genommen werden.
Die Befehle werden teilweiße im Codeblock kommentiert.
Die Config beinhaltet sowohl Support für Bots (jedoch auskommentiert) und eine kleine Maprotation.
Anzupassen wären die jeweiligen Passwörter und der Name des Servers.

In das Verzeichnis des Servers wechseln:

cd /home/q3server1/quake3/baseq3

Unter diesem Verzeichnis wird die Config nun erstellt.

nano q3.server.cfg

Einfügen des folgenden Codeblocks:

sets ".Admin  "Name_des_Admins"
sets ".email" "mail@mail.at"
sets ".www"   "www.holarse.de"
 
seta sv_hostname "^7Quake3 ^3powered by GNU/Linux" // Host-Bezeichnung wie der Server innerhalb von Quake 3 in der Server-Liste auftauchen soll seta g_motd "^3powered by GNU/Linux" // "Motd" - Wird allen Clients angezeigt, solange der Connect auf den Server versucht wird.
 
seta r_smp "0" // Besitzt der Dedicated Server mehr als eine CPU ? - 0 = no, 1 = yes (Default: 0)
 
//g_password "pw" // Pw fuer server g_needpass "0" // Pw aktivieren seta sv_maxClients "12" // Maximale Anzahl Clients - Zuschauer (Observer) gelten auch als Clients ! seta sv_privateClients "2" // Reservierte Slots seta sv_privatePassword "pvpw" // Passwort, fuer res Slots seta rconPassword "rconpw" // Remote Console Passwort seta sv_allowdownload "0" // 0 = off, 1 = on (Default: 0) seta sv_maxRate 15000 // Mögliche Werte: 0...25000, 0 = kein Limit (Default: ?) seta sv_strictauth 0 // CD Check ausgeschalten = 0 pb_sv_guidrelax 7 // CD Check PB ausschalten
 
seta sv_floodProtect "1" // 0 = off, 1 = on (Default: 0) seta sv_pure 1 // pk3 cheat check an-/abschalten - 1 = on, 0 = off (Default: 1) seta g_weaponrespawn 5 // Weapon Respawn Time [in Sekunden] (Default: 5) seta g_allowvote 0 // map - map restart - kick - g_gametype --1 = on, 0 = off (Default: 1) seta g_quadfactor 3 // Schadens-Multiplikator für Quad Damage (Default: 3) - Dezimalwerte sind möglich (z.B. 0.25) seta g_syncronousClients 0 // Clients erlauben, das Spiel aufzuzeichnen (Demo Recording). - 1 = on, 0 = off (Default: 0) seta g_friendlyfire 0 seta g_teamAutoJoin 1 seta g_teamForceBalance 1 seta g_forcerespawn "2" // Forces players to respawn. 0 is off, 1,2,3,… time. seta pmove_fixed "1" seta pmove_msec "16" seta sv_fps "20"
 
//seta bot_enable "0" // bot_enable - dürfen Bots (CPU-Spieler) mitmachen ? - 0 = off, 1 = on (Default: 0) //seta bot_minplayers "0" // Minimale Anzahl Spieler - fehlende Spieler werden durch Bots ergänzt //seta bot_nochat 1
 
//seta addbot Major 4 1000 //seta addbot Sorlag 4 1000 //seta addbot Doom 4 1000
 
// Master-Server an die sich der Server anmeldet seta sv_master2 "master0.gamespy.com:28900" seta sv_master3 "master.gamershut.de:27950" seta sv_master4 "master.gnw.de:27950" seta sv_master5 "master3.idsoftware.com:27950"
 
//g_gametype 0 // sets the type of game. 0 - Free for all, 1 - Tournament, 2 - Free for all(again), 3 - Team Deathmatch, 4 - Capture the Flag
 
//----------------------------------------------------------------------------------------------------------------- //Map Rotation MIX set m1 "fraglimit 30 ; timelimit 15 ; g_gametype 3 ; map q3dm17 ; set nextmap vstr m2" set m2 "fraglimit 30 ; timelimit 15 ; g_gametype 3 ; map q3dm15 ; set nextmap vstr m3" set m3 "capturelimit 12 ; timelimit 15 ; g_gametype 4 ; map q3ctf4 ; set nextmap vstr m4" set m4 "fraglimit 30 ; timelimit 15 ; g_gametype 3 ; map q3dm6 ; set nextmap vstr m5" set m5 "fraglimit 30 ; timelimit 15; g_gametype 3 ; map q3dm16 ; set nextmap vstr m6" set m6 "capturelimit 12 ; timelimit 15 ; g_gametype 4 ; map q3ctf1 ; set nextmap vstr m7" set m7 "fraglimit 30 ; timelimit 15 ; g_gametype 3 ; map q3tourney6 ; set nextmap vstr m1" vstr m1 //-----------------------------------------------------------------------------------------------------------------
 
//map q3dm1
 
pb_sv_guidrelax 7 // CD Check PB ausschalten seta sv_strictauth 0 // CD Check ausgeschalten = 0

1.9 Der Server ist nun startbereit ;)

Folgende Kommandozeilen starten den Server:

Hinweis:
screen ist ein Programm das den jeweiligen Server auch nach dem Beenden einer Remotekonsole im Hintergrund weiterlaufen lässt. (man screen)

Die Befehle im einzelnen:

   1. +set sv_pure 1 - Die Dateien des Servers und den jeweiligen Clienten muß übereinstimmen. (Zur Vermeidung von Cheats und dergleichen.)
   2. +set dedicated 2 - Der Server wird ded. gestartet und bei den Masterservern angemeldet
   3. +net_port 27960 - Der Port welcher der Gameserver läuft
   4. +exec q3.server.cfg - Folgende Config wird ausgeführt ( in unserem Fall die oben erstellte.

screen -d -m -S Quake3Server1 /home/q3server1/quake3/q3ded +set sv_pure 1 +set dedicated 2 +net_port 27960 +exec q3.server.cfg

2.0 Und jetzt nur noch auf den eigenen Server connecten und auf Spieler warten ;)

Screenshots und Videos