Verder Terug Inhoud

2. Quake/Quakeworld

Om Quake op je Linux systeem te installeren, zul je een bepaald type van de officiéle Quake distributie van id nodig hebben. Dit zal ofwel de in de detailhandel verkrijgbare DOS/Windows CD-ROM zijn die je bij je favoriete softwarewinkel kocht, of de shareware-versie die je vanaf het net hebt gedownload (zie hieronder voor details over het verwerven van de shareware-versie). Als alternatief kun je, als je Quake reeds op een DOS/Windows machine hebt geïnstalleerd, de relevante bestanden van die installatie gebruiken.

2.1 Minimumvereisten

Je zult, als een absoluut minimum, het volgende nodig hebben:

Optioneel:

2.2 Installeren van Quake

Download de Noodzakelijke Bestanden

Alle noodzakelijke bestanden voor Linux Quake zijn beschikbaar vanaf de ftp-site van id Software, ftp.idsoftware.com. Deze site kan zo nu en dan zeer druk bezocht zijn, dus je zou in plaats daarvan misschien één van deze mirrorsites willen gebruiken

De Quake bestanden vermeld in deze sectie zijn:

Andere vermelde software:

Maak de Installatie Directory aan ++

Het eerste dat nodig is, is dat je beslist waar je Quake wilt installeren. De "standaard" lokatie is /usr/local/games/quake. Daar plaatsen de .rpm packages Quake. Als je ervoor kiest om het ergens anders te installeren, vervang dan alsjeblieft overal waar je /usr/local/games/quake tegenkomt door het juiste pad.

Opmerking aan Redhat gebruikers: Als je van plan bent om QuakeWorld vanuit de rpm packages te installeren, wordt Quake waarschijnlijk in /usr/local/games/quake geïnstalleert, aangezien de rpms dit standaard doen.

Dus ga je gang en maak de directory aan waarin je Quake wilt installeren, en cd ernaar. Bij de rest van deze instructies zal ervan worden uitgegaan dat dit je huidige directory is.

mkdir /usr/local/games/quake
cd /usr/local/games/quake

Installeren Vanaf een Quake CD

Als je de installatie uitvoert vanaf een Quake CD-ROM, lees dan verder. Anders heb je hierbij permissie om deze sectie over te slaan.

Er zijn op z'n minst twee versies van de Quake CD in omloop. Ik heb er één uit de begintijd waarop Quake versie 1.01 staat. Ik heb andere CD's gezien met versie 1.06. Je hebt 1.01 als je bestanden met de naam quake101.1 en quake101.2 op je CD ziet. Als je in plaats daarvan een bestand met de naam resource.1 ziet, heb je een nieuwere CD. Mount nu je Quake CD en stel vast welke versie je hebt. Vervang /dev/cdrom en /mnt/cdrom door de device-bestanden en mountpoints in het voorbeeld hieronder overeenkomstig de instellingen op je systeem:

mount -t iso9660 /dev/cdrom /mnt/cdrom
ls /mnt/cdrom

Dat is 't voor het installeren vanaf de CD. Je kunt nu verdergaan met de sectie " Installeren van de Linux Binaries".

DOS/Windows naar Linux Installatie

Als je Quake onder Windows of DOS op een andere machine hebt geïnstalleerd, kun je de bestanden in quake\id1\ via FTP of een andere mechanisme naar je Linux-systeem overbrengen. Hou in gedachten dat de bestanden op je Linux-systeem voor Quake in kleine letters moeten staan, om ze te kunnen vinden, dus mogelijk moet je ze na het overbrengen, hernoemen. Merk ook op dat het nodig zou kunnen zijn om de DOS/Win-installatie te verwijderen, nadat je dit hebt gedaan, overeenkomstig de voorwaarden van de software licentie van id. Het is mijn schuld niet als je iets illegaals doet.

Als je DOS/Win en Linux systemen niet op dezelfde machine voorkomen, heb je twee opties: kopieer de bestanden vanaf je DOS/Windows-partitie naar je Linuxpartitie, of maak vanuit Linux een koppeling naar de benodigde bestanden. Beide opties zullen even goed werken. Je bespaart zo ongeveer 50 megabytes diskruimte als je een koppeling aanmaakt in plaats van kopieert.

Waarvoor je ook kiest, begin met het cd'en naar je Quake-directory en maak hierin een nieuwe directory aan met de naam id1:

cd /usr/local/games/quake
mkdir id1

Vervang /win95/games/quake door het juiste pad naar je DOS/Windows partitie en Quake installatie-directory.

De Quake gegevensbestanden zijn nu geïnstalleerd. Ga verder met " Installeren van de Linux Binaries".

Shareware Versie Installatie

De single-episode shareware-versie van Quake is vrij verkrijgbaar voor download vanaf de ftp-site van id. Het heeft alle mogelijkheden van de volledige versie met een paar belangrijke beperkingen: Je kunt er geen QuakeWorld mee spelen, en je kunt geen aangepaste of gewijzigde niveaus spelen.

Het installeren van de shareware-versie van Quake is niet echt veel anders dan het installeren vanaf de CD.

Zie de sectie Download de Benodigde Bestanden voor de lokatie van de shareware-distributie. Download het en pak het uit naar je Quake directory:

cd /usr/local/games/quake
unzip -L /waar/je/het/plaatst/quake106.zip

Je hebt nu (temidden van anderen) een bestand met de naam resource.1 dat een lha-archief is (lha is een bestandscompressie- en archiefformaat zoals zip of tar). We zullen het lha(1) commando gebruiken om het uit te pakken. Als lha nog niet op je systeem is geïnstalleerd, kun je het ophalen van ftp://sunsite.unc.edu/pub/Linux/utils/compress/lha-1.00.tar.Z.

lha e resource.1

Als lha klaar is, zullen er een aantal nieuwe bestanden in je Quake directory staan. Er zal ook een directory met de naam id1 zijn aangemaakt. De bestanden in deze directory zijn de enige die belangrijk zijn voor Linux Quake, dus je kunt veilig al het andere verwijderen. Als Quake totaal nieuw voor je is, of zelfs als dit niet zo is, zou je je misschien willen vastklampen aan de *.txt bestanden. Op mijn systeem gooi ik alle readmes die zich opstapelen in een doc/ directory. Dus:

cd /usr/local/games/quake
mkdir doc
mv *.txt doc
rm -f *

Nu ben je er klaar voor om de Linux binaries te installeren.

2.3 Toevoegen van de Linux Binaries

Beslis welke van de drie typen Quake je zou willen installeren:

Download de packages die je wilt hebben (zie de sectie Download de Benodigde Bestanden) en pak ze als volgt uit naar je Quake directory:

cd /usr/local/games/quake
tar -xzf XXXX-i386-unknown-linux2.0.tar.gz

2.4 Instellen van Permissies

Quake en QuakeWorld servers kunnen door iedere gebruiker worden gedraaid. De Quake-clients, hebben toegang tot je geluids- en grafische kaarten nodig, die privileges vereisen die normale gebruikers niet hebben. Een (slechte) manier om dit te doen is om Quake altijd als root uit te voeren. Verantwoordelijke systeembeheerders zullen ineenkrimpen bij dit smerige voorstel. Het setuid root maken van de Quake binaries is een acceptabelere oplossing. Quake kan dan door gewone gebruikers worden gedraaid en nog steeds de beschikking hebben over de privileges die het nodig heeft om de geluids- en grafische devices te benaderen. Setuid levert toch een beveiligingsrisico. Een slimme gebruiker zou een bug kunnen exploiteren door via het beveiligingslek in Quake root-toegang tot je systeem te verwerven. Natuurlijk is het mogelijk dat dit niet zo van belang is als je geen multi-user systeem gebruikt.

squake is de enige Quake-client die rootpermissies moet hebben. Met een klein beetje werk, kun je de X- en GL-clients zonder setuid draaien. Draaien van X- en GL-spellen zonder setuid in de Tips en Truuks sectie vertelt je hoe je ervoor kunt zorgen dat dit werkt.

Als je van plan bent squake te draaien, stel het dan met de volgende commando's in als setuid root:

chown root squake
chmod 4755 squake

Als je besloten hebt dat het ok is om quake.x11 en glquake als setuid root op je systeem te draaien, kun je de hierbovenstaande commando's net zo goed voor deze binaries herhalen.

2.5 X11 Quake

Als je de X11 client hebt geïnstalleerd, is het nu een goed moment om het uit te proberen. Het kan zijn dat je glquake en squake verder moet configureren, maar op dit punt zou quake.x11 gereed moeten zijn om mee van start te gaan.

cd /usr/local/games/quake
./quake.x11

Als alles goed is, zal er een klein Quake venster verschijnen met daarin de eerst draaiende demo. Je zou geluidseffecten en mogelijk muziek moeten horen, als je CD zich in de drive bevindt. Kijk alsjeblieft in de sectie Probleemoplossing voor hulp als iets ervan zich niet voordoet.

2.6 SVGAlib Quake

Zowel squake en glquake vereisen SVGAlib voor de uitvoering (glquake gebruikt SVGAlib om toetsenbord- en muisinvoer te verwerken, voor het geval je je dit afvraagt). SVGAlib zit bij de meeste moderne Linux distributies, en moet juist geconfigureerd zijn voordat squake of glquake correct zal draaien.

libvga.config is het configuratiebestand van SVGAlib. Op de meeste systemen zul je het in /etc of in /etc/vga kunnen vinden. Zorg ervoor dat de instellingen in dit bestand voor de muis, monitor en videokaart voor je systeem juist zijn. Zie de SVGAlib-documentatie voor meer details.

Als je SVGAlib nog niet op je systeem hebt, download het dan vanaf de hierboven genoemde lokatie genoemd in de bestanden sectie.

Zie Glibc, RedHat 5.x, Debian 2 overwegingen in de sectie Probleemoplossing/FAQ's voor belangrijke informatie over het compileren van libraries voor gebruik met Quake, als je een RedHat 5.x of andere op glibc gebaseerde Linux distributie hebt. Een voorgecompileerde libc5 SVGAlib binary is beschikbaar bij http://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.3.0.libc5.bin.tar.gz voor degene die niet het gedoe van het compileren voor libc5 willen.

Je zou squake vanaf een virtuele console moeten draaien. Het draait niet vanuit X tenzij je root bent als je het opstart. En een spel als de root-gebruiker draaien is iets dat zou moeten worden vermeden. Dus als je in X bent, doe een CTRL+ALT+F1, login en dan:

cd /usr/local/games/quake
./squake

Draaien van SVGA- en GL-spellen vanuit X in de Tips & Truuks sectie hieronder legt uit hoe SVGA en GL Quake vanuit X aan de gang te krijgen zonder handmatig naar een virtuele console te schakelen.

2.7 GLQuake

Hardware-accelerated OpenGL Quake is Quake zoals God het heeft bedoeld. Er is geen vervanging en zodra je het hebt ervaren is er geen weg meer terug.

Om glquake te draaien, heb je een 3D kaart met de Voodoo, Voodoo2 of Vodoo Rush grafische chipset erop nodig. Er zijn specifieke zaken om rekening mee te houden als je een Vodoo Rush kaart hebt, en ik zal er nu niet op ingaan omdat ik eerlijk gezegd niet weet waar ik het over heb. Een toekomstige versie van deze HOWTO zal Rush zaken behandelen (Als iemand over Voodoo Rush zaken wil schrijven, zal ik het met plezier hierbij insluiten).

De SVGAlib, Glide, en Mesa libraries moeten allen juist op je systeem zijn geïnstalleerd en geconfigureerd om het met glquake te laten werken. De volgende secties zullen kort behandelen wat je moet doen om ze aan de gang te krijgen.

Bernd Kreimeier's ( bk@gamers.org) Linux 3Dfx HOWTO ( http://www.gamers.org/dEngine/xf3D/howto/3Dfx-HOWTO.html) is een goede bron met verdere informatie.

De 3dfx.glide.linux nieuwsgroep over de 3dfx news server (news.3dfx.com) is een andere goede bron met informatie over de doorkruising met Linux, glide, Mesa en Quake.

SVGAlib

glquake gebruikt SVGAlib om invoer van de muis en het toetsenbord te krijgen, dus je zult het zoals aangegeven in sectie SVGAlib Quake moeten configureren.

Glide ++

Glide is een library die voorziet in API voor het programmeren van op 3Dfx gebaseerde kaarten. Als je wilt dat de grafische library Mesa je 3Dfx kaart gebruikt, heb je het nodig.

Gebruik NIET de Linux Glide library die op de website van 3Dfx wordt gedistribueerd. Het is meer dan een jaar verouderd. Je zult problemen krijgen als je het probeert te gebruiken. De laatste versie van glide kan altijd worden gevonden bij http://glide.xxedgexx.com/3DfxRPMS.html. Kies de geschikte package(s) voor je systeem en installeer het overeenkomstig de instructies op de webpagina.

Merk op dat, tenzij je het 3Dfx device package als aanvulling op de library Glide download, je de Glide applicaties (zoals GLQuake) alleen als root kunt draaien. Installeer de /dev/3dfx module en je kunt GLQuake als een gewone gebruiker spelen. PentiumPro/Pentium II gebruikers hebben een extra motief voor het downloaden van deze driver: het kan je herhalingsfrequentie enorm verhogen. De driver activeert ondersteuning voor MTRRs, een memory-caching mogelijkheid van deze CPU's. Zie http://glide.xxedgexx.com/MTRR.html voor een betere uitleg over deze mogelijkheid.

Zodra je glide hebt geïnstalleerd, probeer dan het testprogramma uit dat wordt meegeleverd. Vergeet dit programma niet: het is een goede manier om je display te resetten als je ooit een glide applicatie hebt (zoals GLQuake) dat crasht en je scherm uitgeschakeld achterlaat. OPMERKING: draai deze test vanaf een VC, NIET vanuit X! Het is mogelijk dat bij de test app hun muis en toetsenbord focus in X verliezen, en dan is er geen mogelijkheid om het af te sluiten.


/usr/local/glide/bin/test3Dfx

Als het goed is, kleurt je scherm blauw en meldt je een toets in te drukken. Nadat je een toets hebt ingedrukt zou je terug moeten keren naar de prompt. 3dfx.glide.linux op 3dfx's news server (news.3dfx.com) is een geweldige bron met informatie voor Linux glide-specifieke problemen.

Mesa

Zodra glide is geïnstalleerd, zul je Mesa moeten installeren, een vrije OpenGL implementatie door Brian Paul (brianp@elastic.avid.com). Gelukkig hoef je niet ver te zoeken, want Mesa 2.6 wordt met de uitvoerbare bestanden van QLQuake & Quake meegeleverd. Het enige wat je moet doen is het naar de juiste plek te verplaatsen:

cd /usr/local/games/quake
cp libMesaGL.so.2.6 /usr/local/lib
ldconfig

De RedHat distributie wordt standaard met een (IMO) gebrekkige ld.so configuratie geleverd. /usr/local/lib maakt standaard geen onderdeel uit van het zoekpad van ld.so dus alles dat je daarin installeert zal niet worden gebruikt. Je kunt deze situatie verhelpen door de regel /usr/local/lib toe te voegen aan het bestand /etc/ld.so.conf, of /usr/local/lib toe te voegen aan je $LD_LIBRARY_PATH. Als alternatief zou je alle nieuwe libraries op een bepaalde plaats zoals /lib kunnen installeren, maar deze benadering gaat ernstig tegen mijn propere natuur in.

Als je Mesa naar een recentere versie wilt upgraden (tijdens dit schrijven is Mesa 3.0 de recentste versie) kun je de laatste versie downloaden vanaf ftp://iris.ssec.wisc.edu/pub/Mesa Zie Glibc, RedHat 5.x, Debian 2 overwegingen in de sectie Probleemoplossing/FAQ's voor belangrijke informatie over het compileren van libraries voor Quake, als je een RedHat 5.x of andere op glibc gebaseerde distributie hebt.

Nadat je het overeenkomstig de instructies hebt gebouwd, zul je twee dingen moeten doen:

Schakel nu over naar een VC (CTRL+ALT+F1) en start glquake.

cd /usr/local/games/quake
./glquake

2.8 Linux-Specifieke Commando-regel Opties

Deze sectie behandelt commando-regel opties die specifiek zijn voor de Linux versies van Quake. Er zijn andere Quake opties in overvloed, maar die liggen buiten de grenzen van deze HOWTO. Probeer voor dergelijke informatie een aantal van de sites uit die in de sectie Algemene Quake Informatie worden opgesomd.

-mem num

Wijs geheugen toe in megabytes (de standaardwaarde is 8MB, wat voor de meeste benodigheden prima is).

-nostdout

Geen uitvoer naar stdout. Gebruik dit als je niet wilt dat alle console uitvoer naar je terminal wordt gedumpt.

-mdev device

Mouse device, standaardwaarde is /dev/mouse

-mrate speed

Snelheid van de muis, standaardwaarde is 1200

-cddev device

CD device, standaardwaarde is /dev/cdrom

-mode num

Gebruik opgegeven video mode (alleen squake)

-nokdb

Toetsenbord niet initialiseren

-sndbits 8 of 16

Stel sound bit sample size in. Standaardwaarde is 16 als dit wordt ondersteund.

-sndspeed speed

Stel geluidssnelheid in. Gebruikelijke waarden zijn 8000, 11025, 22051 en 44100. Standaardwaarde is 11025.

-sndmono

Stel mono-geluid in

-sndstereo

Stel stereo-geluid in (dit is de standaard als het wordt ondersteund)

2.9 QuakeWorld

http://www.quakeworld.net zegt het beter dan ik zou kunnen:

QuakeWorld is een Internet multi-player specifieke versie van Quake. Ondanks dat de originele versie van Quake over het Internet gespeeld kan worden, hadden modem gebruikers - de meerderheid van de spelers, minder dan een voldoening gevend spel. Symptomen zoals buitensporig achterblijven - acties die in werkelijkheid veel later plaatsvonden dan wanneer je ze deed; verlies van pakketjes - het spel zou blijven hangen en verscheidene seconden later verdergaan; en diverse andere moeilijkheden plaagde de gebruikers. Nadat hij realiseerde hoeveel mensen Quake op het internet speelde en hoeveel dit wilde, maar dit niet konden te wijten aan het ongenoegen bij het spel, besloot John Carmack van id Software een versie Quake te maken die voor de gemiddelde modem Internet speler werd geoptimaliseerd. Deze Internet specifieke versie doet slechts 1 ding, deathmatch spelen via een TCP/IP netwerk zoals het Internet. Het geeft geen ondersteuning voor solo spel, en je kunt er niets mee zonder verbinding naar een speciale server.

Je hebt de volledige, geregistreerde of de in de detailhandel verkrijgbare versie van Quake nodig om QuakeWorld te kunnen spelen, en een Linux QuakeWorld client. QuakeWorld clients zijn er in dezelfde soorten (X11, SVGAlib en Mesa) als de gewone Quake, maar ze zijn allen in één package gebundeld, dus je hoeft alleen één bestand te downloaden. Je hebt echter vier packages om uit te kiezen:

Installeer slechts één van deze packages. Elk bevat dezelfde bestanden, ze worden slechts gekoppeld met verschillende libraries. Redhat 5.x gebruikers zouden moeten kiezen voor het glibc rpm package. Gebruikers van op glibc gebaseerde systemen zonder rpm ondersteuning zouden het glibc tar packages moeten gebruiken. De libc5 rpm is voor Redhat distributies van voor 5.0 en andere distributies die gebruik maken van het rpm package formaat. De libc5 tar.gz package is voor Slackware en alle anderen.

Zie de sectie Download de Benodigde Bestanden voor de lokatie van de Linux Quakeworld bestanden.

De benodigdheden en configuratie voor deze binaries zijn hetzelfde als voor Quake, dus raadpleeg de voorgaande secties voor hulp bij het instellen van SVGAlib voor glide/Mesa.

Installeren van de RPM packages

Installatie van de rpm packages zou zo simpel moeten zijn als:

su root
rpm -Uvh qwcl-xxxxx.i386.rpm

qwcl, glqwcl en glqwcl.glx zullen setuid root worden geïnstalleerd zodat ze de grafische devices op je systeem kunnen benaderen. De X- en GL-clients kunnen zonder rootprivileges worden gedraaid als je de volgende instructies in Draaien van X- en GL-spellen zonder setuid hieronder opvolgt.

Het kan zijn dat rpm een melding geeft dat het libglide2x.so niet kan vinden. De library Glide is alleen nodig als je een 3Dfx kaart hebt en Quakeworld in GL-mode (glqwcl) wilt draaien. Als je niet van plan bent om de GL-mode te gebruiken, kun je de afhankelijkheid van glide overschrijven met de --nodeps optie:

su root
rpm -Uvh qwcl-xxxxx.i386.rpm --nodeps

Installeren van de tar.gz packages

Untar gewoon het bestand in je Quake directory om het te installeren. Doe dit als root zodat de juiste bestandspermissies worden ingesteld:

cd /usr/local/games/quake
su root
tar -xzf qwcl2.21-i386-unknown-linux2.0.tar.gz

qwcl, glqwcl en glqwcl.glx zullen setuid root worden geïnstalleerd zodat ze de grafische devices op je systeem kunnen benaderen. De GL- en X-clients kunnen zonder rootprivileges worden gedraaid als je de instructies in Draaien van X- en GL-spellen zonder setuid hieronder opvolgt.

Draaien van QuakeWorld

Zodra QuakeWorld te midden van je Quake bestanden is geïnstalleerd, kun je het opstarten met:

./qwcl +connect some.server.address

Zie de sectie Gerelateerde Software voor info over een aantal front-ends voor QuakeWorld die het makkelijk maken servers te vinden.

2.10 Servers

De meeste, zo niet alle, bestaande informatie over het draaien van een DOS/Windows QW server is gelijk toepasbaar voor het draaien van een Linux server.

Om een QuakeWorld server op te starten, doe je gewoon:

./qwsv

Het officiële QuakeWorld serverhandboek is te vinden bij http://qwcentral.stomped.com.

2.11 Aanpassingen & Uitbreidingen

Een van de zeer gave dingen van de Quake spellen is dat de auteurs ze makkelijk uitbreidbaar maakte. Eindgebruikers kunnen hun eigen niveaus aanmaken, nieuwe wapens of monsters toevoegen, of zelfs de regels van het spel volledig wijzigen.

Capture the Flag

Dit is mijn favoriete variatie van zowel Quake als Quake 2. In plaats van slechts rond te rennen en iedereen die je tegenkomt te doden (wat beslist zijn verdiensten heeft, begrijp me niet verkeerd!), is CTF op een team gebaseerd en strategischer. Dave 'Zoid' Kirsch, tevens beheerder van de Linux Quake ports, maakte deze aanpassing.

Alles wat je aan kennis nodig hebt over CTF kan worden gevonden bij http://captured.com/threewave/ Je hebt ftp://ftp.cdrom.com/pub/quake/planetquake/threewave/ctf/client/3wctfc.zip nodig om te spelen. Om het client-onderdeel van CTF te installeren, maak je eenvoudigweg een directory aan met de naam ctf in je Quake directory en unzipt daarin het bestand 3wctfc.zip. Het bijbehorende bestand readme.txt staat boordevol goede informatie.

cd /usr/local/games/quake
mkdir ctf
cd ctf
unzip -L /wherever/you/put/it/3wctfc.zip

Zie de hierboven genoemde webpagina's voor informatie over het draaien van een CTF server.

Mission Packs

Activision gaf twee pakketjes met uitbreidingen voor Quake uit met daarin extra niveaus, Scourge of Armagon en Dissolution of Eternity.

Quake Tools

Zou iemand wat info willen bijdragen over gcc, bsp en dat soort zaken?


Verder Terug Inhoud