Linux Quake HOWTO

Bob Zimbinski (bobz@mr.net), Brett A. Thomas (quark@baz.com), e Mike Hallock (mikeh@medina.net) v1.0.1.15, 30 August 1998

Questo documento illustra come installare ed usare Quake, QuakeWorld e QuakeII e come risolvere i problemi correlati, su un sistema Intel Linux.

Indice

1 Introduzione 4 1.1 Feedback, commenti, correzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2 Ringraziamenti ** . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 Altre fonti di informazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.3.1 Informazioni specifiche su Quake per Linux ** . . . . . . . . . . . . . . . . . . . . . . 5 1.3.2 Informazioni su Quake in generale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3.3 Informazioni sui giochi per Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Quake/Quakeworld 6 2.1 Requisiti minimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Installare Quake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2.1 Scaricare i file necessari ** . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.2 Creazione della directory di installazione ++ . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.3 Installazione dal CD di Quake ++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.4 Installazione da DOS/Windows a Linux . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.5 Installazione della versione shareware . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.3 Aggiungere i binari per Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.4 Impostare i permessi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.5 X11 Quake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.6 SVGAlib Quake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.7 GLQuake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.7.1 SVGAlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.7.2 Glide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.7.3 Mesa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.8 Opzioni da linea di comando specifiche di Linux . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.9 QuakeWorld ** . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.9.1 Installazione dei pacchetti RPM ++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.9.2 Installazione dei pacchetti tar.gz ++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.9.3 Utilizzare QuakeWorld ++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.10 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.11 Moduli ed aggiunte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.11.1 Capture the flag (acchiappabandiera) . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.11.2 Pacchetti missione ** . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.11.3 Strumenti per Quake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3 Quake II 18 3.1 Prerequisiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2 Installazione di Quake II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.2.1 Scaricare i file necessari** . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2.2 Creazione della directory di installazione . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.2.3 Installare dal CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.2.4 Installazione da Windows a Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.2.5 Installazione della versione demo ** . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.3 Aggiungere i binari per Linux ** . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.3.1 Installare i pacchetti RPM ** . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.3.2 Installare i pacchetti tar.gz ** . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.4 Impostare i permessi ** . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.4.1 Quake2.conf ** . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.5 Il renderer X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.6 Il renderer SVGAlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.7 Il renderer OpenGL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.7.1 SVGAlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.7.2 Glide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.7.3 Mesa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.7.4 lib3dfxgl.so ** . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.8 Il renderer GLX ** . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.9 Opzioni da linea di comando specifiche di Linux . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.10 Server Quake II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.10.1 Server in ascolto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.10.2 Server dedicati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.10.3 Altre fonti di informazioni sui server . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.11 Moduli e aggiunte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.11.1 Moduli dal lato client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.11.2 Moduli dal lato server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.11.3 Sorgenti del gioco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.11.4 Pacchetti missione ** . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4 Software correlato ++ 31 4.1 QStat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.2 XQF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.3 QuickSpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.4 QPlug per Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.5 qkHacklib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.6 GiMd2Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.7 QIPX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.8 Ice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.9 Q2getty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.10 rcon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.11 qlog ++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.12 Cheapo ** . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.13 qgraph ** . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

5 Risoluzione dei problemi/FAQ 34

5.1 Generalità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.1.1 Considerazioni sulla differenza tra i sistemi operativi . . . . . . . . . . . . . . . . . . . 34 5.1.2 Considerazioni su Glibc, RedHat 5.x, Debian 2 ** . . . . . . . . . . . . . . . . . . . . 35 5.1.3 Il mouse non funziona o sembra rispondere a caso. . . . . . . . . . . . . . . . . . . . . 35 5.1.4 Il mio Microsoft Intellimouse o il mio Logitech MouseMan+ non funziona. . . . . . . . 36 5.1.5 Il mio mouse risponde in ritardo ed è molto più lento che sotto Windows. . . . . . . . 36 5.1.6 Ho una Voodoo2, e quando provo ad usare il renderer gl, questo riporta che non ho

una scheda Voodoo installata. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 5.1.7 Quando gioco con una delle versione di Quake sotto SVGAlib o GL e premo Ctrl-C, il

gioco esce e talvolta lascia la console inutilizzabile. . . . . . . . . . . . . . . . . . . . . 36 5.1.8 A volte quando Quake/Quake II esce non in modo corretto, lascia la console inutilizzabile. 36 5.1.9 squake/quake2 non parte e dice svgalib: cannot get I/O permissions . . . . . . 37 5.1.10 A volte, dopo avero giocato a una delle versioni di Quake su X, non funziona la

ripetizione dei tasti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 5.1.11 Quake/Quake II dice /dev/dsp : device not configured . . . . . . . . . . . . . . . . . 37 5.1.12 Quake/Quake II per GL girano più lenti sotto Linux che sotto Windows. ** . . . . . . 37 5.1.13 Come posso far partire un server e scollegarmi, e poi tornarci più tardi? ** . . . . . . 38

5.2 Quake/QuakeWorld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5.2.1 Quake muore all’avvio con un segmentation fault. . . . . . . . . . . . . . . . . . . . . 38 5.2.2 Che differenza c’è tra glqwcl, glqwcl.3dfxgl e glqwcl.glx? ++ . . . . . . . . . . . 38 5.2.3 Quando uso glqwcl.glx a tutto schermo da X, non riesco ad usare il mouse o la

tastiera. ++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

5.3 Quake II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

5.3.1 Quando provo a usare Quake II con il renderer GL, non funziona, e dice: LoadLibrary(

ref_gl.so) failed: Unable to resolve symbol . . . . . . . . . . . . . . . . . . . . . . . . 39

       5.3.2 Quake II muore con l’errore LoadLibrary(ref_XXX.so) failed:  No such file or

directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.3.3 Quando aggiusto la luminosità mentre uso il renderer GL e premo apply, non succede

niente! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.3.4 Note sulla distribuzione 3.17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.3.5 Quando uso Quake II con l’opzione +set vid_ref glx a tutto schermo da X, non

riesco ad usare il mouse o la tastiera. ++ . . . . . . . . . . . . . . . . . . . . . . . . . 40 5.3.6 Perché non posso passare ad alcune delle modalità SVGA che sono nel menù Video di

Quake II? ** . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

6 Tips & Tricks 40 6.1 Utilizzare i giochi per X e GL senza setuid . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 6.2 Usare le versioni SVGA e GL da X** . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 6.3 Mantenere il mouse dentro la finestra in X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 6.4 Le impostazioni trucchettose di 3Dfx funzionano anche in Linux . . . . . . . . . . . . . . . . 43 6.5 Il browser del server del poveraccio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 6.6 Usare le lib3dfxgl.so per Quake I ** . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

7 Administrivia 43 7.1 Nuove versioni di questo documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 7.2 Altri formati di questo documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 7.3 Policy di distribuzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 7.4 Storia delle revisioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

1 Introduzione

Quake, QuakeWorld e Quake II sono giochi di azione in 3D tremendamente famosi, sviluppati dalla id Software . Se non li conoscete, ci sono posti migliori di questo HOWTO dove impararne le basi. Guardate la sezione 1.3 (Altre fonti di informazione) per averne una lista. Questo documento assume che abbiate Linux funzionante, e in alcuni casi anche il sistema X Window. X non è indispensabile, ma è un buon modo per provare un’installazione base. Se non avete X, potete tranquillamente saltare tutti i riferimenti ad esso. Le sezioni di questo documento che sono state aggiornate nell’ultima versione hanno un ** prima del titolo. Le sezioni aggiornate nella versione precedente hanno un ++.

1.1 Feedback, commenti, correzioni

Questo documento di certo non contiene tutto quello che si deve sapere sul Linux Quake. Con il vostro aiuto, però, possiamo portarlo sempre più vicino a quell’ideale. Vorremmo che questo HOWTO fosse il più completo ed accurato possibile, quindi se trovate errori od omissioni, fatecele sapere. Le domande, i commenti e le correzioni dovrebbero essere inviati a Bob Zimbinski ( bobz@mr.net ) o a Mike Hallock ( mikeh@medina.net ). Le critiche costruttive sono ben accette, i flame no.

1.2 Ringraziamenti **

La versione originale di questo documento è stata scritta da Brett A.Thomas (quark@baz.com) e da Mike Hallock (mikeh@medina.net) . Bob Zimbinski (bobz@mr.net) ha riscritto ed espanso il documento originale. Dei ringraziamenti speciali vanno alle seguenti persone, per averci portato Quake per Linux:

• John Carmack e il resto della id Software per questi giochi eccezionali.

• Dave ’Zoid’ Kirsch (zoid@idsoftware.com) per il porting per Linux.

• Dave Taylor (ddt@crack.com) per aver cominciato questo strano affare del porting di Linux.

• Daryll Strauss (daryll@harlot.rb.ca.us) per il porting di glide per Linux.

• Brian Paul (brianp@elastic.avid.com) per la libreria grafica Mesa.

• David Bucciarelli ( tech.hmw@plus.it ) per il driver Mesa/glide. Grazie alle seguenti persone per il loro contributo a questo HOWTO:

• Mike Brunson ( brunson@l3.net ) per il suggerimento sul vid_restart.

• Joey Hess ( joey@kite.ml.org ) per le informazioni su come fare girare i giochi svga e gl da X.

• Joe S. ( jszabo@eden.rutgers.edu ) per un enorme pila di suggerimenti

• Brad Lambert ( bradl@dial.pipex.com ) per la nota su -noudp.

• agx ( gguenthe@iris.rz.uni-konstanz.de ) per le informazioni sull’installazione di Quake e per averci fatto notare QIPX.

• Derrik Pates ( dmp8309@silver.sdsmt.edu ) per avermi fatto pensare alla sicurezza.

• Michael Dwyer ( michael_dwyer@mwiworks.com ) per le idee sulle considerazioni sui SO.

• Derek Simkowiak ( dereks@kd-dev.com ) per la procedura di installazione da CD di Quake I

• sunstorm ( sunstorm@glasscity.net ) informazioni sul Quake Mission Pack 2.

• Neil Marshall ( marshall@pssnet.com ) per informazioni sugli schermi.

1.3 Altre fonti di informazioni

1.3.1 Informazioni specifiche su Quake per Linux ** • LQ:Linux Quake & Utilites http://www.linuxquake.com/ .

• Linux Quake Page http://captured.com/threewave/linux/

• QuakeWorld.net http://www.quakeworld.net 1.3.2 Informazioni su Quake in generale

• id Software http://www.idsoftware.com

• PlanetQuake http://www.planetquake.com

• QuakeWorld Central http://qwcentral.stomped.com

• 3Dfx’s GL Quake FAQ (piuttosto obsolete) http://www.3dfx.com/game_dev/quake_faq.html

• Farenheit 176 Console Command Listing http://www.planetquake.com/f176

• rec.games.computer.quake.* newsgroups

1.3.3 Informazioni sui giochi per Linux • LinuxGames http://www.linuxgames.com/

• The Linux Game Tome http://www.cs.washington.edu/homes/tlau/tome/linux-game.html

2 Quake/Quakeworld

Per installare Quake sul vostro sistema Linux dovete avere una qualche forma della distribuzione ufficiale di Quake della id, o il CD-ROM per dos/Windows comprato in un negozio, o la versione shareware scaricata dalla rete (vedere 2.2.1 (sotto) per i dettagli su come procurarvi la versione shareware). In alternativa, se avete Quake installato su una macchina DOS/Windows, potete usare i file rilevanti da quella installazione.

2.1 Requisiti minimi

Come minimo avrete bisogno di:

• Un Pentium 90 o superiore (raccomandato un 133)

• 16 MB di RAM (raccomandati 24)

• Il CD-ROM di Quake o la versione shareware (quake106.zip)

• Linux con il kernel 2.0.24 o successiva

• libc 5.2.18 o successiva

• Uno dei seguenti:

– X11R5 o successivo (per xquake)

– SVGAlib 1.2.0 o successiva (per squake e glquake)

• 30-80 megabyte di spazio libero su disco (a seconda del tipo di installazione)

• Accesso come root nella macchina su cui installate Opzionali:

• Una scheda audio supportata

• Una scheda grafica accelerata 3Dfx VooDoo Graphics o VooDoo2 3D

• Mesa 2.6 o successiva (per glquake)

2.2 Installare Quake

2.2.1 Scaricare i file necessari ** Tutti i file necessari per Linux Quake sono disponibili sul sito ftp della id Software, ftp.idsoftware.com . Questo sito può essere carico alle volte, quindi è meglio usare uno di questi mirror:

• ftp.cdrom.com/pub/idgames/idstuff (California, USA)

• ftp.gamesnet.net/idsoftware (California, USA)

• ftp.linuxquake.com/lqstuff (Michigan, USA)

• ftp.stomped.com/pub/mirror/idstuff (Minnesota, USA)

• mirrors.telepac.pt/pub/idgames (Lisbona, Portogallo)

• download.netvision.net.il/pub/mirrors/idsoftware (Haifa, Israele) I file di Quake nominati in questa sezione sono:

• Distribuzione Shareware di Quake per Windows ftp://ftp.idsoftware.com/idstuff/quake/quake106.zip

• Binario di Quake per X11 ftp://ftp.idsoftware.com/idstuff/unsup/unix/quake.x11-1.0-i386-unknown-linux2.0.tar.gz

• Binario di Quake per SVGAlib ftp://ftp.idsoftware.com/idstuff/unsup/squake-1.1-i386-unknown-linux2.0.tar.gz

• Binario di Quake per OpenGL/Mesa ftp://ftp.idsoftware.com/idstuff/unsup/unix/glquake-0.97-i386-unknown-linux2.0.tar.gz

• Client di QuakeWorld per Linux (in ciascun pacchetto ci sono i client per X11, SVGAlib e GL)

– pacchetto tar.gz per libc5 ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwcl-2.30-i386-unknown-linux2.0.tar.gz

– pacchetto tar.gz per glibc ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwcl-2.30-glibc-i386-unknown-linux2.0.tar.gz

– pacchetto rpm per libc5 ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwcl-2.30-1.i386.rpm – pacchetto rpm per glibc ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwcl-2.30-glibc-

1.i386.rpm

• Server di QuakeWorld per Linux

– pacchetto tar.gz per libc5 ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwsv-2.30-i386-unknown-linux2.0.tar.gz

– pacchetto tar.gz per glibc ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwsv-2.30-glibc-i386-unknown-linux2.0.tar.gz

– pacchetto rpm per libc5 ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwsv-2.30-1.i386.rpm – pacchetto rpm per glibc ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwsv-2.30-glibc-

1.i386.rpm

• Pacchetto client di Capture the Flag ftp://ftp.cdrom.com/pub/quake/planetquake/threewave/ctf/client/3wctfc.zip Altro software nominato:

• utilità di archiviazione lha ftp://sunsite.unc.edu/pub/Linux/utils/compress/lha-1.00.tar.Z .

• librerie grafiche SVGAlib http://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.3.0.tar.gz

• binari delle SVGAlib per libc5 http://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.3.0.libc5.bin.tar.gz

• librerie di runtime Glide http://glide.xxedgexx.com/3DfxRPMS.html

2.2.2 Creazione della directory di installazione ++

La prima cosa che dovete fare è decidere dove installare Quake. Molte persone lo mettono in /usr/games/quake. Gli amministratori di sistema anali come me scelgono di installare tutto quello che non fa parte della distribuzione standard sotto /usr/local, quindi per me Quake va in /usr/local/games/quake. Se scegliete di installarlo da qualche altra parte, sostituite il percorso appropriato dove io indico

/usr/local/games/quake.

Nota per gli utenti RedHat. Se volete installare QuakeWorld dai pacchetti rpm, dovreste probabilmente installare Quake in /usr/local/games/quake, dato che gli rpm si installano in questa directory per default.

Quindi andate avanti e create la directory in cui volete installare Quake, ed entrateci con cd. Il resto di queste istruzioni assumeranno che questa sia la vostra directory corrente.

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

2.2.3 Installazione dal CD di Quake ++

Se si sta per installare dal CD-ROM di Quake, allora si legga questa sezoine, altrimenti si è liberissimi si saltarla.

Ci sono almeno due versioni del CD di Quake in circolazione. Io ne ho una abbastanza vecchia che ha la versione 1.01 di Quake, e ne ho visti altri che contengono la versione 1.06. Avete la 1.01 se dentro ci sono file che si chiamano quake101.1 e quake101.2. Se al loro posto vedete un file che si chiama resource.1, avete un CD più nuovo.

Montate ora il vostro CD di Quake, e determinate quale versione avete. Nell’esempio riportato qui sotto, sostituite /dev/cdrom e /mnt/cdrom con il file di device ed il punto di mount propri del vostro sistema:

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

• Se sul CD avete un file resource.1, andate avanti al punto successivo. Per i CD versione 1.01 dovrete scaricare il pacchetto Quake shareware per aggiornare i file .pak dopo l’installazione. L’operazione viene spiegata nell’ultimo punto di questa sezione.

– Concatenate i due file resource dal CD in un singolo file sull’hard disk:

                   cat /mnt/cdrom/quake101.1 /mnt/cdrom/quake101.2 > resource.1

– Continuate ora al prossimo paragrafo, ma quando mi riferisco a /mnt/cdrom/resource.1, al suo

         posto usate /usr/local/games/quake/resource.1.

• È ora il momento di estrarre i file di Quake. Il file resource.1 sul CD è in realtà un archivio lha (un formato di compressione di archivi come zip o tar). Per estrarlo useremo il comando lha. Se non lo avete installato sul vostro sistema, lo potete scaricare da ftp://sunsite.unc.edu/pub/Linux/utils/compress/lha-1.00.tar.Z .

               lha e /mnt/cdrom/resource.1

Quando avete fatto con lha, la directory di Quake dovrà contenere molti nuovi file. Dovrà essere creata anche una directory id1/. I file in questa directory sono i soli importanti per Quake per Linux, quindi potete tranquillamente cancellare tutto il resto. Se è la prima volta che usate Quake, o anche in caso contrario, potreste voler tenere i file *.txt. Sul mio sistema, butto tutti i readme che si accumulano dentro una directory doc/; quindi:

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

• Se avete fatto l’installazione da un CD versione 1.01, ora dovete sovrascrivere il file id1/pak0.pak con quello della versione shareware. Installate la versione shareware come descritto in 2.2.5 (Installazione della versione shareware), ma fatelo in una directory temporanea, in modo da non dover sovrascrivere i veri file di Quake. Quando avete installato i file shareware, copiate il file id1/pak0.pak dalla directory temporanea in /usr/local/games/quake/id1, dopodiché potete cancellare la directory con i file shareware.

E questo è quanto per installare dal CD. Potete saltare direttamente alla sezione 2.3 (Installazione dei file binari di Quake per Linux).

2.2.4 Installazione da DOS/Windows a Linux

Se avete Quake installato sotto Windows o DOS su un’altra macchina, potete trasferire i file da quake\id1\ al sistema Linux usando FTP o in qualche altro modo. Tenete presente che i nomi dei file nel vostro sistema Linux devono essere in minuscolo per poter essere usati, quindi dovrete probabilmente rinominare i file dopo il trasferimento. Notate anche che potrebbe essere necessario cancellare l’installazione in DOS/Windows per restare in regola con i termini della licenza della id. Non è colpa mia se fate qualcosa di illegale.

Se DOS/Windows e Linux sono sulla stessa macchina avete due possibilità: copiare i file dalla partizione DOS/Windows alla partizione Linux, o fare un link. Le due cose sono equivalenti; potete semplicemente risparmiare circa 50 megabyte di spazio disco se fate un link invece di una copia.

Qualsiasi cosa abbiate scelto, per prima cosa passate nella directory di Quake e createne una nuova di nome

id1:
          cd /usr/local/games/quake
          mkdir id1

• Se volete copiare i file dalla partizione DOS/Windows, fate qualcosa del genere:

               cp /win95/games/quake/id1/*.pak id1

• Per creare i link, fate:

               cd id1
               ln -s /win95/games/quake/id1/*.pak .

Sostituite /win95/games/quake con il percorso corretto per la partizione DOS/Windows e per la directory di installazione di Quake.

I file dei dati di Quake sono ora installati. Andate avanti fino a 2.3 (Installazione dei binari di Quake per Linux).

2.2.5 Installazione della versione shareware

La versione shareware di Quake con un solo episodio si può scaricare gratuitamente dal sito ftp della id. Ha tutte le caratteristiche della versione completa, con un paio di limitazioni: non ci si può giocare a Quakeworld, e non si possono usare livelli personalizzati o modificati.

Installare la versione shareware di Quake non è molto diverso da installare da CD.

Vedere la sezione 2.2.1 (Scaricare i file necessari) per sapere da dove prendere la distribuzione shareware. Scaricatela ed estraetela nella directory di Quake:

          cd /usr/local/games/quake
          unzip -L /dove/la/vuoi/mettere/quake106.zip

Ora, tra l’altro, avete un file che si chiama resource.1 che in realtà è un archivio lha (lha è un formato di compressione ed archiviazione di file come zip o tar). Per estrarlo si usa il comando lha(1). Se non ce l’avete installato, lo potete prendere da ftp://sunsite.unc.edu/pub/Linux/utils/compress/lha-1.00.tar.Z .

          lha e resource.1

Quando avete fatto con lha, la directory di Quake dovrà contenere molti nuovi file. Dovrà essere creata anche una directory id1/. I file in questa directory sono i soli importanti per Quake per Linux, quindi potete tranquillamente cancellare tutto il resto. Se è la prima volta che usate Quake, o anche in caso contrario, potreste voler tenere i file *.txt. Sul mio sistema, butto tutti i readme che si accumulano dentro una directory doc/; quindi:

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

Ora siete pronti ad installare i binari per Linux.

2.3 Aggiungere i binari per Linux

Decidete quale dei tre tipi di Quake volete installare:

• X11 Quake vi fa usare Quake in una finestra del desktop di X. È il modo meno eccitante di usarlo, ma è un buon modo per provare l’installazione.

• Squake è il client di Quake per SVGAlib. Gira a schermo pieno sulla console di testo.

• GLQUake è il client di Quake per OpenGL, l’Unico Modo per giocare a Quake se avete una scheda accelerata 3Dfx.

Scaricate i pacchetti che vi servono (vedere la sezione 2.2.1 (Scaricare i file necessari)) ed estraeteli nella directory di Quake, così:

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

2.4 Impostare i permessi

I server di Quake e QuakeWorld possono essere usati da qualsiasi utente. I client di Quake, invece, hanno bisogno di accesso alle schede sonore e grafiche, cosa che richiede privilegi che i normali utenti non hanno. Un (brutto) modo di superare questo problema è di usare Quake da root. Ai bravi amministratori di sistema si accapponerà la pelle pensando ad una cosa del genere. Una soluzione più accettabile è rendere i binari di Quake setuid root; in questo modo Quake può essere usato da qualsiasi utente, mantenendo i privilegi di accesso alla scheda sonora e grafica. Anche il setuid presenta dei rischi di sicurezza. Un utente furbo potrebbe sfruttare un buco di sicurezza in Quake per ottenere accesso di root al vostro sistema. Ovviamente, se non usate un sistema multiutente, questo può non importarvi.

squake è l’unico client di Quake che deve essere usato con i permessi di root. Con un po’ di fatica, potete fare in modo di poter usare i client X e GL senza setuid. 6.1 (Usare i client X e GL senza permessi di root) nella sezione Tips and Tricks vi spiega come fare.

Se volete usare squake, rendetelo setuid root con i seguenti comandi:

          chown root squake
          chmod 4755 squake

Se avete deciso che è ok usare quake.x11 e glquake setuid root sul vostro sistema, potete ripetere i comandi qui sopra anche per quei binari.

2.5 X11 Quake

Se avete installato il client X11, questo è un buon momento per provarlo. Per glquake e squake c’è bisogno di configurare altre cose, ma quake.x11 dovrebbe essere pronto.

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

Se tutto va bene dovrebbe apparire una piccola finestra di Quake con la prima demo. Dovreste poter sentire anche degli effetti sonori e, se il CD è montato, anche della musica. Se qualcosa di queste non accade, controllate la sezione 5 (Risoluzione dei problemi).

2.6 SVGAlib Quake

Sia squake che glquake hanno bisogno della SVGAlib (glquake usa la SVGAlib per gestire l’input da tastiera e da mouse, se ve lo state chiedendo). La SVGAlib è compresa nella maggior parte delle distribuzioni di Linux moderne, e deve essere configurata correttamente per poter utilizzare squake o glquake.

libvga.config è il file di configurazione della SVGAlib. Sulla maggior parte dei sistemi lo troverete nelle directory /etc o /etc/vga. Assicuratevi che il mouse, il monitor e la scheda video vi siano impostati in maniera corretta per il vostro sistema. Per avere altri dettagli consultate la documentazione della SVGAlib.

Se non l’avete già, scaricatela dal sito indicato nella 2.2.1 (sezione dei file) più sopra. Se avete la RedHat 5.x o un’altra distribuzione di Linux basata su glib, guardate le 5.1.2 (considerazioni su Glibc, RedHat 5.x, Debian 2) nella sezione Risoluzione dei problemi/FAQ per avere delle informazioni importanti su come compilare le librerie per poterle usare con Quake. A http://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.3.0.libc5.bin.tar.gz

è disponibile un binario delle SVGAlib precompilato con le libc5 per chi non ha voglia di ricompilare il tutto.

Dovreste usare squake da una console virtuale. Non funzionerà da X, a meno che non siate root quando lo avviate, e utilizzare un gioco come root è una cosa da evitare. Quindi, se siete in X, fate CTRL+ALT+F1, fate il login e poi

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

6.2 (Utilizzare i giochi SVGA e GL da X) nella sezione dei Tips & Tricks più avanti spiega come lanciare Quake per SVGA e GL da X senza passare manualmente ad una console virtuale.

2.7 GLQuake

Il Quake per le OpenGL accelerate via hardware è Quake come Dio comanda. Non c’è possibile sostituto, e una volta provato non si torna indietro.

Per usare glquake, vi serve una scheda 3D con i chipset grafici Voodoo, Voodoo2 o Voodoo Rush. Ci sono delle procedure particolari da seguire se avete una scheda Vodoo Rush, ma non ve le posso illustrare perché, francamente, non saprei quello che direi. Una versione futura di questo HOWTO coprirà anche i problemi del Rush (se qualcuno ne vuole scrivere, sarò contento di inserire il pezzo qui).

Le librerie SVGAlib, Glide e Mesa devono essere tutte installate e configurate correttamente sul sistema, per poter usare glquake. Le seguenti sezioni copriranno brevemente i passi da seguire per farlo.

Il ( bk@gamers.org ) Linux 3Dfx HOWTO ( http://www.gamers.org/dEngine/xf3D/howto/3Dfx-HOWTO.html ) di Bernd Kreimeier è un buon posto dove cercare altre informazioni.

Il newsgroup 3dfx.glide.linux sul news server della 3dfx (news.3dfx.com) è un’altra buona fonte di informazioni sull’intersezione di Linux, glide, Mesa e Quake.

2.7.1 SVGAlib

glquake usa le SVGAlib per ricevere input dal mouse e dalla tastiera, quindi dovrete configurarle come illustrato nella sezione 2.6 (SVGAlib Quake).

2.7.2 Glide

Glide è una libreria che fornisce un’API per programmare le schede 3Dfx. Se volete che le librerie grafiche Mesa usino la vostra scheda 3Dfx, le dovete avere.

Potete trovare l’ultima versione delle glide su http://glide.xxedgexx.com/3DfxRPMS.html . Scegliete il (i) pacchetti appropriati per il vostro sistema, ed installateli seguendo le istruzioni che trovate sulla pagina web.

Notate che a meno che non scarichiate il pacchetto dei device driver per 3Dfx oltre alla libreria Glide, potrete utilizzare solo le applicazioni Glide (come GLQuake) come root. Installate il modulo /dev/3dfx e potrete usare GLQuake come utente normale.

Una volta che avete installato glide, provate il programma di test che lo accompagna. Ricordatevelo: è un buon modo di resettare il display se un’applicazione di glide (come GLQuake) crasha e lascia lo schermo spento. NOTA: usate questo test da una console virtuale, non X! È possibile che l’applicazione di test perda il fuoco della tastiera e del mouse in X, e a quel punto non avreste modo di chiuderlo.

          /usr/local/glide/bin/test3Dfx

Il vostro schermo dovrebbe diventare blu e chiedervi di premere un tasto qualsiasi. Dopo che avrete premuto il tasto dovreste tornare al prompt. 3dfx.glide.linux sul news server della 3dfx (news.3dfx.com) è un’ottima fonte di informazioni per problemi specifici di glide per Linux.

2.7.3 Mesa

Una volta installato glide, dovrete installare Mesa, un’implementazione free di OpenGL di Brial Paul (brianp@elastic.avid.com) . Fortunatamente, non dovrete cercare lontano, perché le Mesa 2.6 sono incluse con i binari di QLQuake e QuakeWorld. Tutto quello che dovete fare è spostarle nel posto giusto:

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

Se volete aggiornare le Mesa ad una versione più recente (al momento in cui scrivo le Mesa 3.0 sono le più aggiornate), potete scaricarle da ftp://iris.ssec.wisc.edu/pub/Mesa

Se avete RedHat 5.x o un’altra distribuzione basata sulle glibc, guardate le 5.1.2 (considerazioni su glibc, RedHat 5.x, Debian 2) nella sezione Risoluzione dei problemi/FAQ per avere informazioni importanti sulla compilazione delle librerie per Quake.

Dopo aver compilato il tutto seguendo le istruzioni, dovrete fare due cose:

• Eliminare la precedente installazione delle Mesa. Se avevate prima installato le libMesaGL.so.2.6 come descritto sopra, le dovete eliminare, o Quake potrebbe non usare le nuove versioni.

               cd /usr/local/lib/
               rm -f libMesaGL.so.2*

• Se le nuove Mesa hanno un numero di versione principale maggiore di 2, dovete crearne un link con il

     nome libMesaGL.so.2:

               cd /usr/local/lib/
               ln -s /dovunque/siano/libMesaGL.so.3.0 libMesaGL.so.2
               ldconfig

Ora passate ad una console virtuale (CTRL+ALT+F1) ed avviate glquake.

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

2.8 Opzioni da linea di comando specifiche di Linux

Questa sezione ricopre le opzioni da linea di comando specifiche della versione di Quake per Linux. Ci sono molte altre opzioni per Quake, ma vanno al di là di questo HOWTO. Controllate su alcuni dei siti elencati nella sezione 1.3.2 (Informazioni generali su Quake) per questo tipo di informazioni.

-mem num Specifica la memoria in megabyte da allocare (il default è 8MB, che dovrebbe essere sufficiente nella maggior parte dei casi).

-nostdout Non mandare output nello stdout. Usate questa opzione se non volete che tutto l’output della console sia mandato sul terminale.

-mdev device

Il dispositivo del mouse, il default è /dev/mouse -mrate speed

Il baud rate del mouse, il default è 1200 -cddev device

Il dispositivo del CD, il default è /dev/cdrom -mode num

Per usare le modalità video indicate (solo per squake) -nokdb

Non inizializzare la tastiera -sndbits 8 o 16

Imposta la dimensione in bit del campionamento sonoro. Il default è 16, se supportato -sndspeed speed

Imposta la velocità del suono. I valori normali sono 8000, 11025, 22051 e 44100. Il default è 11025. -sndmono

Imposta il suono mono -sndstereo

Imposta il suono stereo (è il default, se supportato)

2.9 QuakeWorld **

http://www.quakeworld.net spiega tutto meglio di quanto possa farlo io:

QuakeWorld è una versione di Quake multi-giocatore specifica per Internet. Mentre la versione originale di Quake può essere giocata su Internet, chi giocava via modem - la maggioranza dei giocatori - avevano una soddisfazione minore. Per gli utenti si prospettavano un lag eccessivo, cioè azioni che avvenivano molto dopo che le si faceva, la perdita di pacchetti, in cui il gioco si fermava e riprendeva diversi secondi dopo, e varie altre difficoltà. Dopo aver realizzato che molte persone giocavano a Quake su Internet, e quanti altri avrebbero voluto ma non potevano perché il gioco non era soddisfacente, John Carmack della id Software decise di creare una versione di Quake ottimizzata per il giocatore medio su Internet via modem. La versione specifica via Internet fa solo una cosa, cioè giocare a deathmatch su una rete TCP/IP come Internet. Non ha supporto per il gioco singolo, e non si può fare niente senza connettersi ad un servizio speciale.

Per giocare a QuakeWorld vi serve la versione registrata, completa o commerciale di Quake, ed un client QuakeWorld per Linux. I client di QuakeWorld sono degli stessi tipi (X11, SVGAlib e Mesa) del Quake normale, ma sono tutti impacchettati insieme in un singolo pacchetto, quindi avete bisogno di scaricare un file solo. Dovete però scegliere tra quattro pacchetti:

• libc5 tar.gz

• glibc tar.gz

• libc5 rpm

• glibc rpm

Installate solo uno di questi pacchetti: ciascuno contiene gli stessi file, sono solo linkati con librerie diverse. Gli utenti di RedHat 5.x possono scegliere il pacchetto rpm glibc. Chi ha un sistema basato su glibc senza supporto rpm dovrebbe usare il pacchetto glibc tar. L’rpm libc5 è per le distribuzioni RedHat precedenti alla 5.0 e per altre distribuzioni che usano il formato rpm. Il pacchetto tar.gz libc5 è per la Slackware e per tutti gli altri.

Vedere la sezione 2.2.1 (Scaricare i file necessari) per sapere dove trovare i file di QuakeWorld per Linux.

I prerequisiti e la configurazione di questi binari sono gli stessi che per Quake, quindi riferitevi alle sezioni precedenti per avere aiuto su come impostare le SVGAlib o le glide/Mesa.

2.9.1 Installazione dei pacchetti RPM ++

Per installare i pacchetti rpm dovrebbe essere sufficiente

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

qwcl, glqwcl e glqwcl.glx saranno installate setuid root in modo che possano accedere ai dispositivi grafici del sistema. I client X e GL possono essere usati senza privilegi di root se seguite le istruzioni in 6.1 (Utilizzare i giochi per X e GL senza setuid) più avanti.

L’rpm può lamentarsi che non trova libglide2x.so. La libreria glide è necessaria solo se avete una scheda 3Dfx e volete usare QuakeWorld in modalità GL (glqwcl). Se non volete usare la modalità GL, potete superare le dipendenze di glide con l’opzione –nodeps:

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

2.9.2 Installazione dei pacchetti tar.gz ++

Per installare, fate untar del file nella directory di Quake. Fatelo come root, in modo da impostare i corretti permessi dei file:

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

qwcl, glqwcl e glqwcl.glx saranno installati setuid root in modo che possano accedere i dispositivi grafici sul vostro sistema. I client GL e X possono essere utilizzati senza privilegi di root se seguite le istruzioni in 6.1 (Utilizzare i giochi per X e GL senza setuid) più avanti.

2.9.3 Utilizzare QuakeWorld ++

Una volta installato QuakeWorld insieme ai file di Quake, potete farlo partire con:

     ./qwcl +connect some.server.address

Vedere la sezione 4 (Software correlato) per le informazioni su qualche front end per QuakeWorld che rende più facile trovare i server.

• lib3dfxgl.so ** Con la versione 2.30 di QuakeWorld è disponibile un’alternativa alle librerie Mesa. lib3dfxgl.so è un mini driver GL ottimizzato per Quake che fornisce una framerate leggermente migliore delle Mesa. Si tratta del porting di un driver che la 3Dfx ha sviluppato per Quake sotto Windows, ed apparentemente ancora non tutte le sue caratteristiche funzionano bene; quindi speriamo che la sua validità aumenti nel tempo. Come le Mesa, lib3dfxgl.so ha bisogno delle Glide per accedere alla scheda 3Dfx. Il pacchetto di QuakeWorkd contiene uno script, glqwcl.3dfxgl per usare QuakeWorld su sistemi glibc con questa libreria. Il prossimo paragrafo spiega come usare QuakeWorld con la lib3dfxgl.so su un sistema libc5. Su un sistema glibc, per fare funzionare lo script, l’eseguibile glqwcl non deve essere setuid, e non va usato da root. glqwcl caricherà silenziosamente le Mesa invece delle lib3dfxgl.so se si fa girare con i permessi di root. Queste richieste implicano che abbiate installato il driver /dev/3dfx. Sui sistemi basati sulle libc5 dovrete creare un link simbolico a lib3dfxgl.so che si chiami

libMesaGL.so.2, così:
          cd /usr/local/games/quake
          ln -sf lib3dfxgl.so libMesaGL.so.2

e poi fare partire QuakeWorld da uno script che dica a $LD_LIBRARY_PATH di guardare nella directory corrente:

     #!/bin/sh
     LD_LIBRARY_PATH=".:$LD_LIBRARY_PATH" ./glqwcl $*

Potete vedere quale driver viene caricato guardando l’output nella console quando QuakeWorld parte, così:

          GL_VENDOR: 3Dfx Interactive Inc.
          GL_RENDERER: 3Dfx Interactive Voodoo^2(tm)
          GL_VERSION: 1.1
          GL_EXTENSIONS: 3DFX_set_global_palette WGL_EXT_swap_control GL_EXT_paletted_texture GL_EXT_shared_texture_palette GL_SGIS_multitexture

Se GL_VENDOR dice Brian Paul invece di 3Dfx Interactive Inc., vuol dire che viene ancora usato Mesa invece del driver miniport.

• glqwcl.glx ** glqwcl.glx viene linkato con le librerie OpenGL standard invece che con Mesa. Questo permette a QuakeWorld di girare su hardware supportato da altre implementazioni delle Mesa. In questo momento non conosco nessuna implementazione che supporti hardware diverso dalle 3Dfx, ma questo modo di agire assicura che quando apparissero ci si potrebbe giocare a QuakeWorld. QuakeWorld è un’applicazione GLX, e come tale deve essere usata da dentro X. Potete usare questo client con le Mesa/3Dfx se installate le Mesa e le Glide come illustrato nella sezione precedente, e poi impostate la variabile d’ambiente $MESA_GLX_FX al valore fullscreen prima e dopo il comando quake2:

          export MESA_GLX_FX=fullscreen
          ./glqwcl.glx +_windowed_mouse 1

Perché usare l’opzione +_windowed_mouse 1? Ricordate che questa è un’applicazione di X che usa la scheda 3Dfx. Anche se il display occupa tutto lo schermo, QuakeWorld sta sempre girando dentro una finestra. Ciò significa che se non siete molto attenti, potreste spostare il puntatore del mouse fuori della finestra di QuakeWorld, e QuakeWorld smetterebbe di rispondere all’input dal mouse e dalla tastiera. +_windowed_mouse 1 elimina questo problema dicendo a glqwcl.glx di agganciare il mouse e non farlo muovere all’esterno della finestra.

2.10 Server

La maggior parte, se non tutte, le informazioni su come fare girare un server QW su DOS o Windows sono applicabili nello stesso modo ad un server Linux.

Per inizializzare un server di QuakeWorld, digitate semplicemente:

     ./qwsv

Il manuale ufficiale del server di QuakeWorld risiede in http://qwcentral.stomped.com .

2.11 Moduli ed aggiunte

Una delle cose più belle dei giochi di Quake è che gli autori li hanno resi facilmente estensibili. Gli utenti finali possono creare i propri livelli, aggiungere nuove armi o mostri, o anche cambiare completamente le regole del gioco.

2.11.1 Capture the flag (acchiappabandiera)

Questa è la mia variazione favorita sia di Quake che di Quake2. Invece di girare intorno ed uccidere tutti quelli che incontrate (che ha i suoi meriti, non capite male!), l’acchiappabandiera è un gioco a squadre e molto più strategico. Dave ’Zoid’ Kirsch, maintainer dei porting di Quake per Linux, ha creato questo modulo.

Tutto  quello  che  volete  sapere  del  modulo  per  l’acchiappabandiera
(CTF)  si  trova  in  http://captured.com/threewave/  Per  giocare  vi  serve

ftp://ftp.cdrom.com/pub/quake/planetquake/threewave/ctf/client/3wctfc.zip . Per installare la parte client di CTF, create una directory con nome ctf nella vostra directory di Quake, e scompattatevi il file 3wctfc.zip. Il file readme.txt che lo accompagna è pieno zeppo di informazioni utili.

          cd /usr/local/games/quake
          mkdir ctf
          cd ctf
          unzip -L /dovunque/l'abbiate/messo/3wctfc.zip

Per le informazioni su come utilizzare un server CTF vedere le pagine web menzionate qui sopra.

2.11.2 Pacchetti missione **

La Activision ha rilasciato due pacchetti aggiuntivi di livelli extra per Quake, Scourge of Armagon e Dissolution of Eternity.

• Pacchetto missione 1: The Scourge of Armagon Assumendo che il vostro CD sia montato su

     /mnt/cdrom e che Quake sia installato in /usr/local/games/quake:
               cd /usr/local/games/quake
               mkdir hipnotic
               cp /mnt/cdrom/hipnotic/pak0.pak hipnotic
               cp /mnt/cdrom/hipnotic/config.cfg hipnotic

Usate il pacchetto missione così:

               cd /usr/local/games/quake
               ./quake.x11 -game hipnotic

• Pacchetto missione 2: Dissolution of Eternity Installare il secondo pacchetto missione richiede una procedura molto simile al primo, ma sostituite la parola hipnotic con rogue, e saltate il passo config.cfg, dato che quest’ultimo non è incluso nel CD del pacchetto missione 2.

2.11.3 Strumenti per Quake

Qualcuno vuole contribuire con delle informazioni su qcc, bsp e tutto il resto?

3 Quake II

Per installare Quake II sul vostro sistema Linux vi serve un qualche tipo della distribuzione ufficiale di Quake II della id: o il CD-ROM per Windows comprato dal vostro negozio di software preferito, o la versione demo scaricata dalla rete. Vedere 3.2.1 (Scaricare i file necessari) per avere dettagli sulla versione demo. Alternativamente, se avete già Quake installato su una macchina Windows, potete usare i file che vi interessano da quella installazione.

3.1 Prerequisiti

Come minimo avrete bisogno di:

• Un Pentium 90 o superiore (raccomandato il 133)

• 16 MB di RAM (raccomandati 24)

• Il CD-ROM di Quake 2 o la versione demo (q2-314-demo-x86.exe)

• Linux con kernel versione 2.0.24 o successiva

• libc 5.2.18 o successiva

• Uno dei seguenti:

– un server X11 che supporti le estensioni di memoria condivise MITSM. Sono supportati gli schermi a 8 e 16 bit (per il renderer X).

– SVGAlib 1.2.10 o successiva (per i renderer SVGA e GL)

• 25-400 Mb di spazio disco libero (a seconda di come fate l’installazione)

• Accesso all’account di root della macchina su cui state installando.

Opzionali:

• Una scheda audio supportata

• Una scheda grafica accelerata 3Dfx Voodoo Graphics o Voodoo2 o Voodoo Rush 3D.

• Le librerie grafiche 3Dfx installate (per il renderer GL)

• Le Mesa 2.6 o successive (per il renderer GL)

3.2 Installazione di Quake II

3.2.1 Scaricare i file necessari** Tutti i file necessari per Quake II per Linux sono disponibili nel sito ftp della id Software, ftp.idsoftware.com . Questo sito può essere spesso congestionato. Quindi potete usare uno dei mirror:

• ftp.cdrom.com/pub/idgames/idstuff (California, USA)

• ftp.gamesnet.net/idsoftware (California, USA)

• ftp.stomped.com/pub/mirror/idstuff (Minnesota, USA)

• mirrors.telepac.pt/pub/idgames (Lisbon, Portogallo)

• download.netvision.net.il/pub/mirrors/idsoftware (Haifa, Israele) I file di Quake II nominati in questa sezione sono:

• I binari di Quake II per Linux

– il pacchetto tar.gz per libc5 ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.19a-i386-unknown-linux2.0.tar.gz

– il pacchetto tar.gz per glibc ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.19a-glibc-i386-unknown-linux2.0.tar.gz

– il pacchetto rpm per libc5 ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.19a-2.i386.rpm

– il pacchetto rpm per glibc ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.19a-glibc-2.i386.rpm

• La versione demo di Quake II per Windows ftp://ftp.idsoftware.com/idstuff/quake2/q2-314-demo-x86.exe

• Il sorgente di Quake II ftp://ftp.idsoftware.com/idstuff/quake2/source/q2source-3.14.shar.Z

• Acchiappabandiera per Quake II ftp://ftp.idsoftware.com/idstuff/quake2/ctf/102.zip

Altro software nominato:

• le librerie grafiche SVGAlib http://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.3.0.tar.gz

• i binari di SVGAlib per libc5 http://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.3.0.libc5.bin.tar.gz

• le librerie a runtime Glide http://glide.xxedgexx.com/3DfxRPMS.html

• la libreria grafica Mesa 3D http://www.ssec.wisc.edu/˜ brianp/Mesa.html

• l’utilità di decompressione unzip http://sunsite.unc.edu/pub/Linux/utils/compress/unzip-5.31.tar.gz

3.2.2 Creazione della directory di installazione

La prima cosa che dovete fare è decidere dove volete installare Quake II. Molti lo mettono in /usr/games/quake. Gli amministratori di sistema anali come me scelgono di installare tutto quello che non fa parte della distribuzione standard sotto /usr/local, quindi per me Quake II va in /usr/local/games/quake2. Se scegliete di installarlo da qualche altra parte, sostituite il percorso appropriato dove io indico /usr/local/games/quake2.

Quindi andate avanti e create la directory in cui installerete Quake II, ed entrateci. Il resto di queste istruzioni assumeranno che questa sia la vostra directory corrente.

          mkdir /usr/local/games/quake2
          cd /usr/local/games/quake2

3.2.3 Installare dal CD

Inserite il CD di Quake II nel drive, e montatelo:

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

Se il vostro CDROM normalmente è montato altrove, sostituite la sua posizione al posto di /mnt/cdrom. Se non siete sicuri di dove sia montato il CDROM, controllate la documentazione della vostra particolare distribuzione.

• Installazione completa Il metodo di installazione più semplice è l’installazione completa, che copia tutto il contenuto del CD nel disco fisso; richiede circa 350 Mb, e viene fatta con i seguenti comandi:

               cd /usr/local/games/quake2
               cp -r /mnt/cdrom/Install/Data/* .

Ci saranno un sacco di inutili file per Windows in giro, che potrete tranquillamente cancellare:

               rm -f /usr/local/quake2/*.dll
               rm -f /usr/local/quake2/quake2.exe
               rm -f /usr/local/quake2/baseq2/gamex386.dll

• Installazione parziale Se 450 Mb sono troppo da dedicare a Quake II, potete saltare l’installazione delle scene filmate e fare un collegamento al CD-ROM; ciò riducerà lo spazio necessario di circa 200 Mb:

               cd /usr/local/games/quake2
               mkdir baseq2
               cp /mnt/cdrom/Install/Data/baseq2/pak0.pak baseq2
               cp -r /mnt/cdrom/Install/Data/baseq2/players baseq2
               ln -s /mnt/cdrom/Install/Data/baseq2/video baseq2/video

Da notare che ciò non significa che dovete montare il CD di Quake II ogni volta che volete giocare. Se il gioco non riesce a caricare i video, semplicemente non li fa vedere.

3.2.4 Installazione da Windows a Linux

Se avete Quake II installato sotto Windows su un’altra macchina, potete trasferire i file da quake2\baseq2 al sistema Linux usando FTP o in qualche altro modo. Tenete presente che i nomi dei file nel vostro sistema Linux devono essere in minuscolo per poter essere usati, quindi dovrete probabilmente rinominare i file dopo il trasferimento. Notate anche che potrebbe essere necessario cancellare l’installazione Windows per restare in regola con i termini della licenza della id. Non è colpa mia se fate qualcosa di illegale.

Se Windows e Linux sono sulla stessa macchina avete due possibilità: copiare i file dalla partizione Windows alla partizione Linux, o fare un link. Le due cose sono equivalenti; potete semplicemente risparmiare molto spazio disco se fate un link invece di una copia.

Come al solito, sostituite /win95/games/quake2 nel seguente esempio con il percorso corretto per la partizione Windows e per l’installazione di Quake II.

• Se volete copiare i file dalla partizione Windows, fate così:

               cd /usr/local/games/quake2
               cp -r /win95/games/quake2/baseq2 .

• Per creare dei collegamenti ai file di Quake II per Windows, fate:

               cd /usr/local/games/quake2
               ln -s /win95/games/quake2/baseq2 .

Questo secondo metodo richiede che la partizione Windows da cui state facendo il link sia scrivibile dagli utenti, il che può non essere vero per tutti i sistemi. Rendendo la partizione Windows scrivibile, date a tutti gli utenti la possibilità di distruggere l’intera installazione Windows. Se per voi va bene, modificate la partizione /etc/fstab in modo che la partizione Windows venga montata con le opzioni umask=002,gid=XXX , dove XXX è l’id del gruppo utenti. Per sapere quale è, guardate in /etc/group. Quando avete aggiornato fstab, smontate e rimontate la partizione Windows, ed avete fatto.

Avete finito di installare i file di dati di Quake II. Passate all’3.3 (Installazione dei binari per Linux).

3.2.5 Installazione della versione demo **

La id Software ha una versione demo gratuita di Quake II sul suo sito ftp. È un download di 40 megabyte. Questa demo comprende tutte le caratteristiche della versione completa, compresa la possibilità di giocare con più giocatori, ma ha solo tre livelli, quindi può essere difficile trovare un server per giocarci.

Vedere la sezione 3.2.1 (Scaricare i file necessari) più avanti, per sapere dove trovare il demo di Quake II. Scaricatela e mettetela nella directory di Quake II.

La distribuzione demo è un file zip autoscompattante (o per lo meno si scompatta automaticamente in altri sistemi operativi). Potete estrarla usando il comando unzip(1), che dovrebbe essere incluso nella maggior parte delle distribuzioni moderne. Se non l’avete, lo potete scaricare dal sito elencato nella sezione 3.2.1 (Scaricare i file necessari).

Entrate nella directory di Quake II ed estraete l’archivio:

          cd /usr/local/games/quake2
          unzip q2-314-demo-x86.exe

Ora dovete cancellare alcune cose e spostarne altre:

          rm -rf Splash Setup.exe
          mv Install/Data/baseq2 .
          mv Install/Data/DOCS docs
          rm -rf Install
          rm -f baseq2/gamex86.dll

La demo di Quake II ora è installata. Dovete solo aggiungere i binari per Linux.

3.3 Aggiungere i binari per Linux **

Ci sono quattro pacchetti di Quake II per Linux disponibili:

• un pacchetto tar.gz per libc5

• un pacchetto tar.gz per glibc

• un pacchetto rpm per libc5

• un pacchetto rpm per glibc Installatene solo uno. Ciascuno contiene gli stessi file, sono soltanto linkati contro diverse librerie. Gli utenti di RedHat 5.1 devono scegliere il pacchetto rpm per glibc. Chi usa un sistema glibc senza supporto per rpm deve usare il pacchetto tar per glibc. L’rpm per libc5 è per chi ha una distribuzione RedHat precedente alla 5.0 o un’altra distribuzione che usa il formato rpm per i pacchetti. Il pacchetto tar.gz per libc5 è per la Slackware e per tutti gli altri.

Vedere la sezione 3.2.1 (Scaricare i file necessari) per sapere dove trovare i file di Quake II per Linux.

3.3.1 Installare i pacchetti RPM **

L’installazione dei pacchetti rpm dovrebbe essere semplicissima:

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

Rpm si potrà lamentare che non trova libglide2x.so. La libreria Glide è necessaria solo se avete una scheda 3Dfx e volete usare Quake II in modalità GL. Se non pensate di utilizzare la modalità GL, potete superare la dipendenza dalle Glide con l’opzione –nodeps:

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

3.3.2 Installare i pacchetti tar.gz **

Per installarli, scompattate con tar i file nella directory di Quake II. Fatelo come root, in modo da impostare i permessi corretti sui file.

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

3.4 Impostare i permessi **

Se avete usato rpm o tar da root quando avete installato il pacchetto di Quake II sul sistema, i permessi sui file dovrebbero essere corretti. L’eseguibile quake2 deve essere stato installato setuid root per poter fargli accedere ai dispositivi grafici del sistema. Per questioni di sicurezza, le librerie di rendering ref_*.so sono impostate in modo da appartenere a root e da essere scrivibili solo a lui. Se le librerie non sono di root, o sono scrivibili a tutti, quake2 non partirà.

Se volete usare Quake II solo con i renderer GL o X, il file quake2 non ha bisogno di essere setuid root. Vedere 6.1 (Utilizzare le versioni X e GL senza setuid) nella sezione Tips and Tricks per avere informazioni su come utilizzare Quake II senza permessi di root.

3.4.1 Quake2.conf **

Per ragioni di sicurezza, esiste un file quake2.conf, che dice a Quake II dove trovare le librerie di rendering di cui ha bisogno (ref_*.so). Contiene solo una linea, che dovrebbe essere il percorso per la vostra installazione di Quake II. Quake II cerca questo file in /etc. Se avete installato Quake II da un file .rpm, questo file sarà stato installato automaticamente. Se l’avete installato da un pacchetto .tar, dovete crearlo così:

          su root
          cd /usr/local/games/quake2
          pwd > /etc/quake2.conf
          chmod 644 /etc/quake2.conf

3.5 Il renderer X

Quake II dovrebbe essere pronto a girare sotto X. Provate:

          cd /usr/local/games/quake2
          ./quake2 +set vid_ref softx

Se va tutto bene, dopo una buona pausa dovrebbe comparire una piccola finestra di Quake II con il demo che ci gira dentro. Dovreste sentire degli effetti sonori, e forse della musica, se il CD è montato. Se una di queste cose non funziona, controllate la sezione 5 (Risoluzione dei problemi).

3.6 Il renderer SVGAlib

Se volete usare i renderer ref_soft o ref_gl vi serve la SVGAlib installata e configurata (Quake II usa le SVGAlib per processare l’input da tastiera e da mouse, in caso vi stiate chiedendo a cosa serve per il renderer GL). La SVGAlib è compresa nella maggior parte delle distribuzioni, e deve essere configurata correttamente prima di poter usare Quake II fuori da X.

libvga.config è il file di configurazione di SVGAlib. Sulla maggior parte dei sistemi lo troverete in /etc o

in /etc/vga.

Assicutatevi che le impostazioni del mouse, del monitor e della scheda video in questo file siano corretti per il vostro sistema. Per avere altri dettagli controllate la documentazione della SVGAlib.

Se non l’avete già, scaricatela dal sito indicato nella 2.2.1 (sezione dei file) più sopra. Se avete la RedHat 5.x o un’altra distribuzione di Linux basata su glibs, guardate le 5.1.2 (considerazioni su Glibc, RedHat 5.x, Debian 2) nella sezione Risoluzione dei problemi/FAQ per avere delle informazioni importanti su come compilare le librerie per poterle usare con Quake. A http://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.3.0.libc5.bin.tar.gz

è disponibile un binario delle SVGAlib precompilato con le libc5 per chi non ha voglia di ricompilare il tutto.

Dovreste usare Quake II da una console virtuale se usate i renderer ref_soft o ref_gl. Non funzionerà da X, a meno che non siate root quando lo avviate, e utilizzare un gioco come root è una cosa da evitare. Quindi, se siete in X, fate CTRL+ALT+F1, fate il login e poi

          cd /usr/local/games/quake2
          ./quake2

6.2 (Utilizzare i giochi SVGA e GL da X) nella sezione dei Tips & Tricks più avanti spiega come lanciare Quake II per SVGA e GL da X senza passare manualmente ad una console virtuale.

3.7 Il renderer OpenGL

Il Quake per le OpenGL hardware-accelerate è Quake come Dio comanda. Non c’è possibile sostituto, e una volta provato non si torna indietro.

Per usare Quake II in modalità GL, vi serve una scheda 3D con i chipset grafici Voodoo, Voodoo2 o Voodoo Rush. Ci sono delle procedure particolari da seguire se avete una scheda Vodoo Rush, ma non ve le posso illustrare perché, francamente, non saprei quello che direi. Una versione futura di questo HOWTO coprirà anche i problemi del Rush (se qualcuno ne vuole scrivere, sarò contento di inserire il pezzo qui).

Le librerie SVGAlib, Glide e Mesa devono essere tutte installate e configurate correttamente sul sistema, per poter usare quake2. Le seguenti sezioni copriranno brevemente i passi da seguire per farlo.

Il  Linux  3Dfx  HOWTO  di  Bernd  Kreimeier  (  bk@gamers.org  )  (

http://www.gamers.org/dEngine/xf3D/howto/3Dfx-HOWTO.html ) è una buona fonte di informazioni.

Il newsgroup 3dfx.glide.linux sul news server della 3dfx (news.3dfx.com) è un’altra buona fonte di informazioni sull’intersezione di Linux, glide, Mesa e Quake.

3.7.1 SVGAlib

Quake II usa le SVGAlib per ricevere input dal mouse e dalla tastiera, quindi dovrete configurarle come illustrato nella sezione 3.6 (Renderer SVGAlib).

3.7.2 Glide

Glide è una libreria che fornisce un API per programmare le schede 3Dfx. Se volete che le librerie grafiche Mesa usino la vostra scheda 3Dfx, le dovete avere.

Potete trovare l’ultima versione delle glide su http://glide.xxedgexx.com/3DfxRPMS.html . Scegliete il (i) pacchetti appropriati per il vostro sistema, ed installateli seguendo le istruzioni che trovate sulla pagina web.

Notate che a meno che non scarichiate il pacchetto dei device driver per 3Dfx oltre alla libreria Glide, potrete utilizzare solo le applicazioni Glide (come GLQuake) come root. Installate il modulo /dev/3dfx e potrete usare GLQuake come utente normale.

Una volta che avete installato glide, provate il programma di test che lo accompagna. Ricoldatevelo: è un buon modo di resettare il display se un’applicazione di glide (come GLQuake) crasha e lascia lo schermo spento. NOTA: usate questo test da una console virtuale, non X! È possibile che l’applicazione di test perda il fuoco della tastiera e del mouse in X, e a quel punto non avreste modo di chiuderlo.

          /usr/local/glide/bin/test3Dfx

Il vostro schermo dovrebbe diventare blu e chiedervi di premere un tasto qualsiasi. Dopo che avrete premuto il tasto dovreste tornare al prompt. 3dfx.glide.linux sul news server della 3dfx (news.3dfx.com) è un’ottima fonte di informazioni per problemi specifici di glide per Linux.

3.7.3 Mesa

Una volta installato glide, dovrete installare Mesa, un’implementazione free di OpenGL di Brial Paul (brianp@elastic.avid.com) . Fortunatamente, non dovrete cercare lontano, perché le Mesa 2.6 sono incluse con i binari di Quake II. Tutto quello che dovete fare è spostarle nel posto giusto:

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

Se volete aggiornare le Mesa ad una versione più recente (al momento in cui scrivo le Mesa 3.0 sono le più aggiornate), potete scaricarle da ftp://iris.ssec.wisc.edu/pub/Mesa . Se avete RedHat 5.x o un’altra distribuzione basata sulle glibc, guardate le 5.1.2 (considerazioni su glibc, RedHat 5.x, Debian 2) nella sezione Risoluzione dei problemi/FAQ per avere informazioni importanti sulla compilazione delle librerie per Quake.

Dopo aver compilato il tutto seguendo le istruzioni, dovrete fare due cose:

• Eliminare la precedente installazione delle Mesa. Se avevate prima installato le libMesaGL.so.2.6 come descritto sopra, le dovete eliminare, o Quake II potrebbe non usare le nuove versioni.

               cd /usr/local/lib/
               rm -f libMesaGL.so.2*

• Se le nuove Mesa hanno un numero di versione principale maggiore di 2, dovete crearne un link con il

     nome libMesaGL.so.2:
               cd /usr/local/lib/
               ln -s /wherever/you/installed/it/libMesaGL.so.3.0 libMesaGL.so.2
               ldconfig

Ora passate ad una console virtuale (CTRL+ALT+F1) ed avviate Quake II:

          cd /usr/local/games/quake2
          ./quake2 +set vid_ref gl

3.7.4 lib3dfxgl.so **

Con Quake II versione 3.19 è disponibile un’alternativa alla libreria Mesa. lib3dfxgl.so è un mini driver GL ottimizzato per Quake che fornisce una framerate leggermente migliore delle Mesa. Si tratta del porting di un driver che la 3Dfx ha sviluppato per Quake sotto Windows, ed apparentemente ancora non tutte le sue caratteristiche funzionano bene; quindi speriamo che la sua validità aumenti nel tempo.

Come le Mesa, lib3dfxgl.so ha bisogno delle Glide per accedere alla scheda 3Dfx. Il pacchetto di Quake II contiene uno script, glqwcl.3dfxgl per usare Quake II su sistemi glibc con questa libreria. Il prossimo paragrafo spiega come usare Quake II con la lib3dfxgl.so su un sistema libc5. Su un sistema glibc, per fare funzionare lo script, l’eseguibile glqwcl non deve essere setuid, e non va usato da root. glqwcl caricherà silenziosamente le Mesa invece delle lib3dfxgl.so se si fa girare con i permessi di root. Queste richieste implicano che abbiate installato il driver /dev/3dfx se gira con permessi di root. Questa richiesta di non essere root implica che abbiate installato il driver /dev/3dfx.

Sui sistemi basati sulle libc5, si applica la richiesta di non essere root riportata sopra, ma dovrete anche creare un link simbolico a lib3dfxgl.so che si chiami libMesaGL.so.2, così:

          cd /usr/local/games/quake
          ln -sf lib3dfxgl.so libMesaGL.so.2

e poi fare partire Quake II da uno script che dica a $LD_LIBRARY_PATH di guardare nella directory corrente:

     #!/bin/sh
     LD_LIBRARY_PATH=".:$LD_LIBRARY_PATH" ./quake2 +set vid_ref gl $*

Potete vedere quale driver viene caricato guardando l’output nella console quando Quake II parte, così:

          GL_VENDOR: 3Dfx Interactive Inc.
          GL_RENDERER: 3Dfx Interactive Voodoo^2(tm)
          GL_VERSION: 1.1
          GL_EXTENSIONS: 3DFX_set_global_palette WGL_EXT_swap_control GL_EXT_paletted_texture GL_EXT_shared_texture_palette GL_SGIS_multitexture

Se GL_VENDOR dice Brian Paul invece di 3Dfx Interactive Inc., vuol dire che viene ancora usato Mesa invece del driver miniport.

3.8 Il renderer GLX **

ref_glx.so è linkato con le librerie OpenGL standard invece che con le Mesa. Questo permette a Quake II di girare su altro hardware 3D che sia supportato da altre implementazioni OpenGL. Al momento non conosco altre implementazioni OpenGL che supportino hardware diversi dalle 3Dfx, ma questo renderer assicura che quando apparissero ci si potrebbe giocare a Quake II.

Quake II è un’applicazione GLX, e come tale deve essere usata da dentro X.

Potete usare questo client con le Mesa/3Dfx se installate le Mesa e le Glide come illustrato nella sezione precedente, e poi impostate la variabile d’ambiente $MESA_GLX_FX al valore fullscreen prima e dopo il comando

quake2:
          export MESA_GLX_FX=fullscreen
          ./quake2 +set vid_ref glx +set _windowed_mouse 1

Perché usare l’opzione +_windowed_mouse 1? Ricordate che questa è un’applicazione di X che usa la scheda 3Dfx. Anche se il display occupa tutto lo schermo, Quake II sta sempre girando dentro una finestra. Ciò significa che se non siete molto attenti, potreste spostare il puntatore del mouse fuori della finestra di Quake II, e Quake II smetterebbe di rispondere all’input dal mouse e dalla tastiera. +_windowed_mouse 1 elimina questo problema dicendo a glqwcl.glx di agganciare il mouse e non farlo muovere all’esterno della finestra.

3.9 Opzioni da linea di comando specifiche di Linux

Questa sezione ricopre le opzioni da linea di comando specifiche della versione di Quake II per Linux. Ci sono molte altre opzioni per Quake II, ma vanno al di là di questo HOWTO. Controllate su alcuni dei siti elencati nella sezione 1.3.2 (Informazioni generali su Quake) per questo tipo di informazioni.

Le seguenti sono in realtà cvar (variabili client) che potete impostare sulla console di Q2, ma ha più senso darle da linea di comando. Impostatele con +set dalla linea di comando, così:

          ./quake2 +set cd_dev /dev/hdc

cd_dev device Nome del device del CD-ROM nocdaudio valore

Disabilita il CD audio se valore è diverso da zero.

sndbits num Imposta la dimensione in bit del campionamento sonoro. Il default è 16.

sndspeed num Imposta la velocità del suono. I valori normali sono 8000, 11025, 22051 e 44100. Il default è 11025. Se impostato a zero, il driver del suono cerca di usare le velocità in questo ordine: 11025, 22051, 44100, 8000.

sndchannels num Indica suono stereo o mono. Il default è 2 (stereo). Usate 1 per il mono.

nostdout valore Non mandare nessun output allo stdout. Usate questa opzione se non volete che l’output di console sia mandato sul terminale.

3.10 Server Quake II

La forza di Linux come server internet lo rende una piattaforma perfetta per far girare un server di Quake II per internet. Questa sezione tratterà le basi e gli aspetti specifici di Linux dell’impostazione di un server di Quake II. Informazioni più dettagliate su come utilizzare i server di Quake II sono disponibili altrove (vedere la sezione 1.3 (Altre fonti di informazioni) nella prima parte di questo documento.

3.10.1 Server in ascolto

Si può inizializzare un server in ascolto di Quake II dall’interno del gioco, usando il menù Multiplayer. In questo modo si può ospitare un gioco e parteciparvi allo stesso tempo.

Per iniziare un server in ascolto, inizializzare Quake II, aprite il menù di Quake II con il tasto Esc, e scegliete la voce Multiplayer. Da lì dovrebbe essere piuttosto auto-esplicativo.

3.10.2 Server dedicati

Per un server di Quake II permanente ed autonomo che giri senza un’attenzione costante, usare il server in ascolto non è pratico. Quake II ha una modalità server dedicato più adatta a questo tipo di utilizzo. Il server dedicato viene avviato da linea di comando e usa meno risorse di sistema di un server in ascolto perché non inizializza la parte grafica del client.

Per inizializzare un server dedicato, usate l’opzione da linea di comando +set dedicated 1. Potete impostare dei parametri aggiuntivi sia da linea di comando sia da un file di configurazione che va impostato dalla linea di comando con +exec. Il file di configurazione dovrebbe essere nella directory baseq2.

Qui sotto sono elencate alcune opzioni comuni per i server. Per impostarle sulla linea di comando, date +set fraglimit 30. Le opzioni vengono impostate nello stesso modo anche nel file di configurazione, solo che non serve il + prima di set. Per invocare il file di configurazione fate così: +exec server.cfg.

fraglimit Numero di frag richiesti prima che la mappa cambi timelimit

Tempo in minuti che deve passare prima che la mappa cambi

hostname Il nome del vostro server di Quake II. Si tratta di una stringa arbitratia, e non ha niente a che fare con il nome di host DNS.

maxclients Il massimo numero di giocatori che si può connettere contemporaneamente al server.

Per avere tante informazioni sulla console e sulla linea di comando di Quake II quante ne basterebbero per soffocare un cavallo, guardate su Farenheit 176 ( http://www.planetquake.com/f176 ).

3.10.3 Altre fonti di informazioni sui server

• La FAQ per i server di Quake II hanno una guida passo-passo per impostare un server di Quake II sotto Linux: http://www.bluesnews.com/faqs/q2s-faq.html

• Grant Cornelius Reticulus Copernicus Sperry ( flubber@xmission.com ) ha dei file di configurazione base per i server di Quake II e degli script di avvio a http://www.atomicage.com:80/quake/server/server_cfg/ .

3.11 Moduli e aggiunte

Le modifiche a Quake II come Capture the Flag (acchiappabandiera), Jailbreak e Lithium II sono estensioni molto popolari del gioco originale di Quake II. Alcuni moduli risiedono interamente nel server (Lithium), ed altri richiedono delle modifiche al client (CTF). Per i moduli solo su server, potete semplicemente connettervi e giocare. I moduli dal lato client vi richiedono di installare dei file aggiuntivi nella directory di quake2 prima di giocare.

3.11.1 Moduli dal lato client

Generalmente, l’installazione di un modulo dal lato client consiste semplicemente nello scaricare il pacchetto client e spacchettarlo nella directory di Quake II, ma dovreste riferirvi alla documentazione del modulo per i dettagli specifici. Può essere necessario scaricare un pacchetto specifico per Linux in aggiunta al pacchetto client principale (per Windows). Tenete pure presente che non tutti i moduli possono essere disponibili per Linux.

I pacchetti dei moduli dal lato client di solito contengono un nuovo file gamei386.so e uno o più file .pak, oltre, forse, ad altri file. Questi nuovi file verranno installati in una sottodirectory della directory di Quake II. Usate +set game mod-dir sulla linea di comando per usare il modulo. Rocket Arena 2, ad esempio, si installa in una directory arena. Per giocare a RA2, inizializzate il client così:

           ./quake2 +set game arena

Capture the Flag (acchiappabandiera) Dato che questa è la variazione più famosa di Quake II a più giocatori, ho incluso delle istruzioni specifiche per installare questo modulo. Capture the flag per Quake II è disponibile dal sito ftp della id. Scaricatelo, poi installatelo così:

          cd /usr/local/games/quake2
          mkdir ctf
          cd ctf
          unzip -L /wherever/you/put/it/q2ctf102.zip

Per giocare a CFT inizializzate Quake II con +set game ctf.

3.11.2 Moduli dal lato server

Usare un modulo di Quake II su un server non è molto diverso da usarne uno dal lato client. In genere dovrete installare i file gamei386.so e server.cfg in una nuova sottodirectory, ed inizializzare il server con

          ./quake2 +set game XXXX +set dedicated 1 +exec server.cfg

dove XXXX è il nome della nuova sottodirectory del modulo. La procedura esatta varia da modulo a modulo, naturalmente. Controllate la documentazione del modulo stesso per avere dettagli specifici.

3.11.3 Sorgenti del gioco

L’intero gioco, con l’eccezione del motore, risiede in una libreria condivisa, gamei386.so. I moduli di Quake II vengono creati cambiando il contenuto di questo file. Il sorgente C è disponibile gratuitamente (section 3.2.1 (Scaricare i file necessari) più sopra), e possono essere scaricati e modificati.

Dopo che avrete scaricato il sorgente, ecco come cominciare:

           cd /usr/local/games/quake2
           mkdir mymod
           cd mymod
           gunzip /dove/lo/mettete/q2source-3.14.shar.Z
           sh /dove/lo/mettete/q2source-3.14.shar

Vi si presenterà un po’ di legalese a cui dovete rispondere yes, e i sorgenti vengono estratti. Per compilare un nuovo file gamei386.so da questi ultimi basta un semplice make. Con questa libreria appena compilata potete giocare a Quake dando:

           cd /usr/local/games/quake2
           ./quake2 +set game mymod

Non è ancora troppo esaltante, dato che quello che avete appena compilato è identico al gamei386.so normale, ma questa dovrebbe essere una buona informazione con gli aspiranti autori di moduli.

3.11.4 Pacchetti missione **

• Pacchetto missione 1: The Reckoning The Reckoning richiede la versione 3.15 o una successiva. Avrete bisogno almeno di 95 Mb per un’installazione minima. Vi servono altri 90 Mb se volete installare anche le sequenze video. Assumendo che il CD sia montato su /mnt/cdrom e che Quake II sia installato

     in /usr/local/games/quake2:

          cd /usr/local/games/quake2
          cp -r /mnt/cdrom/Data/all/* xatrix/
          rm -f xatrix/gamex86.dll

Se volete installare le sequenze video:

          cp -r /mnt/cdrom/Data/max/xatrix/video xatrix

Giocate a The Reckoning così:

          cd /usr/local/games/quake2
          ./quake2 +set game xatrix

• Pacchetto missione 2: Ground Zero Richiede Quake II versione 3.17 o successiva. Avrete bisogno di almeno 120 Mb per un’installazione minima. Altri 115 Mb vi servono se volete installare anche le sequenze video. Assumendo che il CD sia montato su /mnt/cdrom e che Quake II sia installato in

/usr/local/games/quake2:
          cd /usr/local/games/quake2
          cp -r /mnt/cdrom/Data/all/* rogue/
          rm -f rogue/gamex86.dll

Se volete installare le sequenze video:

          cp -r /mnt/cdrom/Data/max/rogue/video rogue

Giocate a Ground Zero così:

          cd /usr/local/games/quake2
          ./quake2 +set game rogue

4 Software correlato ++

4.1 QStat

Qstat è un programma basato sulla linea di comando che rende lo stato dei server Quake, QuakeWorld e Quake 2 su internet, creato da Steve Jankowski mailto:steve@activesw.com .

Ecco il riassunto delle caratteristiche dalla homepage di QStat:

• Supporta Windows 95, NT, e la maggior parte degli Unix

• Comprende il codice sorgente in C ed un binario per Windows.

• Supporta i server del vecchio Quake (NetQuake), QuakeWorld, Hexen II, e Quake II

• Può mostrare tutte le statistiche disponibili, comprese le informazioni sui giocatori e le regole del server

• Template di output per la generazione automatica di HTML

• Modalità di visualizzazione raw per l’integrazione con i generatori di pagine HTML • Cache dei nomi host built-in

• Ordina per tempo di ping, giochi, o entrambi

• Più opzioni di quante ne potreste immaginare

Qstat è uno strumento indispensabile se volete giocare in rete. Sono stati scritti anche molti front-end per qstat. Alcuni di essi sono elencati più avanti in questa sezione.

Potete scaricare la versione più recente di qstat dalla sua homepage ( http://www.activesw.com/people/steve/qstat.html .

4.2 XQF

XQF è un front-end grafico a QStat che usa il toolkit GTK; è il miglior browser per i server di Quake-World/Quake2 che esista al momento, e Roman Pozlevich ( roma@botik.ru ) sta ancora mandando fuori nuove revisioni al ritmo di circa una al mese.

Se conoscete GameSpy per la piattaforma Windows, questo è il programma che più gli assomiglia per Linux.

La homepage di XQF si trova a http://www.linuxgames.com/xqf .

4.3 QuickSpy

QuickSpy è un browser per i server di QuakeWorld a base testuale; è un’altro front-end a QStat e funziona piuttosto bene. Se non usate X e non avete Quake II, è una possibilità che vi può bastare. Attenzione, però, non è più in sviluppo.

Potete scaricare QuickSpy da http://diana.ecs.soton.ac.uk/˜ rht96r/quake/quickspy/ .

4.4 QPlug per Linux

Qplug è un plugin per Netscape che riceve e mostra le informazioni sui server di QuakeWorld e Quake II inserite in una pagina web. Una versione Windows per Qplug è in giro già da un po’ di tempo. L’autore, Olivier Debon ( odebon@club-internet.fr ) ha scritto la versione per Linux da zero senza aver mai nemmeno visto la versione per Windows.

Qplut per Linux è disponibile a http://www.geocities.com/TimesSquare/Labyrinth/5084/qplug.html .

4.5 qkHacklib

David Bucciarelli ( tech.hmw@plus.it ), autore dei driver 3Dfx per Mesa, ha scritto la libreria qkHack, che tenta di emulare tutte le funzioni SVGAlib/fxMesa usate da Quake e Quake II. Questo eliminerebbe la necessità di avere la SVGAlib quando si usa glquake o Quake II con la ref_gl. Altre caratteristiche prese dal README di qkHacklib.

• Si può passare dinamicamente tra il rendering a tutto schermo e quello dentro una finestra semplicemente premendo il tasto TAB (per usare questa caratteristica il server X deve essere inizializzato in modalità 16 bpp)

• Si può usare Ctrl-C nella shell o uccidere il processo di Quake senza problemi

• si può abilitare/disabilitare il ‘grabbing’ da mouse e da tastiera premendo F11/F12 • si può iconizzare e mettere in pausa Quake premendo F10 (non utilizzerà più cicli di CPU). Potete

riavviare il tutto con un doppio click nell’icona ****

• si può utilizzare Quake con un qualsiasi driver Mesa (ad esempio con il driver X11, ma dovete ricompilare le Mesa senza il driver Voodoo)

• potete usare Quake in qualsiasi macchina Linux ed avere l’output dell’hardware accelerato su un box SGI (ok, è una caratteristica un po’ esotica e teorica, ma è un esempio di quanto potente possa essere un’applicazione per GLX/OpenGL)

Ho provato qkHacklib e funziona benissimo per Quake sul mio sistema. In Quake II, comunque, la risposta del mouse diventa veramente lenta. Altri hanno riportato però un successo completo, quindi provatelo se vi pare che vi possa essere utile.

La pagina web di qkHacklib di David Bucciarelli è http://www-hmw.caribel.pisa.it/fxmesa/fxqkhack.html .

4.6 GiMd2Viewer

GiMd2Viewer è un modello di Quake II scritto per le Gtk e le OpenGL da Lionel Ulmer ( bbrox@mygale.org ). Carica modelli e textures sia da file semplici che da file .PAK. Anima anche i modelli (con interpolazione dei frame).

Questo programma è ancora sotto sviluppo e non l’ho ancora provato, ma pare piuttosto carino. Cercatelo su http://www.mygale.org/˜ bbrox/GiMd2Viewer/ .

4.7 QIPX

QIPX è un insieme di programmi che permettono ai client di Quake per Linux (usando il TCP/IP) di connettersi a client Quake per DOS (usando IPX). Penso che sia utile se giocate a netquake su una LAN. QIPX è disponibile a http://www.geocities.com/SiliconValley/Park/6083/qipx.html .

4.8 Ice

Ice è un editor di mappe per Quake per UN*X, creato da C.J. Beyer e John Watson. Non ho usato questo programma, né so a che stadio di sviluppo sia. La homepage è a http://styx.phy.vanderbilt.edu/˜ ice/ .

4.9 Q2getty

Q2getty è un clone di mingetty di Mike Gleason ( mgleason@ncftp.com ) che permette di usare e fare respawn automaticamente di un programma (come un server di Quake) su una console virtuale; è disponibile nella sezione dei file su http://www.ncftpd.com/unixstuff/q2getty.html .

4.10 rcon

Rcon è un paio di strumenti che permettono l’amministrazione remota di un server di Quake II usando il protocollo RCON. Michael Dwyer ( michael_dwyer@mwiworks.com ) ne è l’autore. Rcon 1.1 è disponibile su http://sunsite.unc.edu/pub/Linux/games/quake/rcon-1.1.tar.gz .

4.11 qlog ++

Qlog è un parser per i log dei server di QuakeWorld/Quake II distribuito sotto GPL, che genera delle statistiche globali sui giocatori. L’autore è Craig Knudsen ( cknudsen@radix.net ). La homepage di qlog è http://www.radix.net/˜ cknudsen/qlog/ .

4.12 Cheapo **

Cheapo è un proxy che può essere usato per fare il routing del traffico di una rete di QuakeWorld. Oltre a ciò, il proxy può modificare i dati ed ha caratteristiche per migliorare il gioco. Ci si può connettere a cheapo come se fosse un server di QuakeWorld, e poi dargli comandi che facciano il forward ad un server reale. Il proxy può anche essere usato su una macchina che faccia da firewall incapace di gestire il traffico di Quake, in modo che le macchine all’interno del firewall possano essere usate per giocare. La homepage di Cheapo è http://www.saunalahti.fi/˜ softech/ .

4.13 qgraph **

QGraph (Quake Graph) è un’utility per aiutare la gestione dei DeathMatch di Quake, i tornei ed i giochi di QuakeWorld. QGraph è un programma che si connette (attraverso una LAN o Internet) ad un server di Quake, Quake II, QuakeWorld o Hexen 2, e mostra i dati in tempo reale del gioco corrente su quel server. La homepage di QGraph è http://www.frag.com/qgraph .

5 Risoluzione dei problemi/FAQ

5.1 Generalità

5.1.1 Considerazioni sulla differenza tra i sistemi operativi

• Distinzione tra maiuscole e minuscole - In DOS e Windows le maiuscole non sono importanti: BASE1.TXT è la stessa cosa di base1.txt. Sotto Linux e gli altri Unix, le maiuscole SONO importanti: MOTD.TXT e motd.txt sono due file diversi; questo può portare a dei problemi con i modelli dei giocatori ed i file della pelle se sono installati con i nomi di file con delle lettere maiuscole. players/male/santa.PCX deve essere rinominato in santa.pcx per poter funzionare sotto Linux. Lo script fixskins.sh incluso in QuakeWorld converte tutti i nomi dei file di una directory in lettere minuscole. Per comodità viene riportato qui sotto:

          #!/bin/sh
          for x in *; do
             y=`echo $x | tr '[A-Z]' '[a-z]'`
             if [ $x != $y ]; then
                mv $x $y
             fi
          done

• Delimitatori dei percorsi - DOS e Windows usano il backslash \ per separare gli elementi dei percorsi. In Unix, il backslash è un carattere di escape. Se usate dei percorsi nei vostri file di configurazione (o nel codice dei moduli, o da qualsiasi altra parte) assicuratevi di usare / e non \.

• Caratteri di fine linea - Sotto DOS/Windows, ciascuna linea di un file di testo finisce con un carattere di carriage return (CR) e un carattere di linefeed (LF). I file di testo in Unix hanno solo il linefeed. L’uso di file di testo di DOS/Win in Unix può causare molti problemi strani a Quake. Usando un file quake2.conf non correttamente formattato dal pacchetto di Quake2 3.17, ad esempio,

dà l’errore LoadLibrary(ref_XXX.so) failed:  No such file or directory. LMCTF-TE riporta

un’eccezione di floating point. Se avete un problema che non riuscite a spiegare, provate a rimuovere i CR dai file di testo:

          mv file.txt file.bak; tr -d '\r' < file.bak > file.txt

5.1.2 Considerazioni su Glibc, RedHat 5.x, Debian 2 **

Le seguenti considerazioni si applicano solo ai binari per Quake I (squake, glquake, e quake.x11). Quake-World e Quake II sono disponibili in entrambe le versioni, libc5 e glibc, rispettivamente dalle versioni 2.30 e 3.19.

Gli eseguibili di Quake sono compilati con la libc5. Le distribuzioni più recenti, come la RedHat 5.1 e la Debian 2.0, usano come libreria C di default la glibc, che non è compatibile. Se usate Quake su un sistema glibc dovete fare attenzione ad alcune cose:

• Sia la RedHat 5 che la Debian 2 hanno dei pacchetti di compatibilità per libc5 che permettono di usare applicazioni basate su libc5. Assicuratevi di aver installato questi pacchetti. Entrambe le distribuzioni hanno messo le librerie basate su libc5 nella directory /usr/i486-linux-libc5/lib.

• Assicuratevi che Quake usi le librerie corrette. Create uno script come quello qui sotto che faccia puntare la variabile $LD_LIBRARY_PATH alla directory delle vostre librerie di compatibilità prima di usare Quake.

     #!/bin/sh
     export LD_LIBRARY_PATH=/usr/i486-linux-libc5/lib
     ./quake2 +set vid_ref gl $*

• Se dovete compilare una libreria come la SVGAlib o le Mesa per usarle con Quake, deve essere compilata con le libc5. Semplicemente compilare le nuove librerie seguendo le istruzioni di installazione vi darà una libreria linkata alle librerie di default, glibc. Assicuratevi che la nuova libreria sia linkata solo con la libc5 ed altre librerie ad essa linkate, in modo che sia compatibile con Quake. Controllate la documentazione della vostra distribuzione per avere delle informazioni su come linkare a librerie non di default.

5.1.3 Il mouse non funziona o sembra rispondere a caso.

• gpm funziona? gpm è un programma che permette di fare taglia e incolla con il mouse sulle console virtuali. Moltre distribuzioni lo abilitano per default. Potrebbe interferire con Quake. Controllate se sta girando con il seguente comando:

          ps aux | grep gpm

Se avete dell’output come

          root      6115  0.0  0.4   832   316  ?  S   17:54   0:00 gpm -t PS/2

gpm sta girando, ed interferisce con Quake. Date gpm -k (da root) per ucciderlo. Se non lo fa (gpm -k non sempre funziona sul mio sistema), uccidetelo con il comando killall gpm. Se non usate mai gpm, potreste voler evitare che parta all’avvio. Controllate la documentazione della vostra distribuzione per avere informazioni su come farlo.

• Il mouse è definito correttamente nel file libvga.config? Questo file in genere si trova in /etc o in /etc/vga. Apritelo e controllate se c’è una linea simile a

               mouse Microsoft

Sul mio sistema è la prima opzione del file. Assicuratevi che il tipo di mouse sia quello giusto per il vostro hardware.

5.1.4 Il mio Microsoft Intellimouse o il mio Logitech MouseMan+ non funziona.

La SVGAlib, che gestisce l’input del mouse per i Quake/QW/Q2 SVGA e GL, non supporta direttamente l’Intellimouse fino alla versione 1.3.0. Se avete una versione della SVGAlib precedente alla 1.3.0 dovreste aggiornarla, e poi usare il tipo di mouse IntelliMouse (per i mouse seriali) o IMPS2 (per i mouse PS/2) nel

file libvga.config.

5.1.5 Il mio mouse risponde in ritardo ed è molto più lento che sotto Windows.

• Per molti basta aumentare il valore di sensitivity nella console di gioco cura il problema. Impostare la sensitivity a mano nella console o in un file .cfg vi permette di aumentare la sensibilità del mouse più dello slider nel menù delle opzioni; ad esempio sensitivity 15.

• Dall’aggiornamento di Zoid del .plan del 1/7/98:

Se il renderer GL è lento nel mostrare i video (se sembra che la velocità di successione dei frame sembra essere rallentato dal movimento del mouse) digitate gl_finish 1 sulla console. Questa opzione forza l’aggiornamento ogni frame.

• L’ultima versione delle SVGAlib (1.3.0) fornisce moltissimi parametri nel file libvga.config per personalizzare il comportamento del mouse. Con le impostazioni giuste dovrebbe essere possibile far comportare il mouse come volete. Sul mio sistema, cambiare mouse_accel_type al valore normal (il default è power) mi ha dato i risultati che volevo. Non ho giocato con le altre impostazioni, e non pretendo di sapere come funzionano.

5.1.6 Ho una Voodoo2, e quando provo ad usare il renderer gl, questo riporta che non ho una scheda Voodoo installata.

Ci sono versioni diverse della Glide per le schede Voodoo e Voodoo 2. Assicuratevi di aver montato quella giusta.

5.1.7 Quando gioco con una delle versione di Quake sotto SVGAlib o GL e premo Ctrl-C, il gioco esce e talvolta lascia la console inutilizzabile.

5.1.8 A volte quando Quake/Quake II esce non in modo corretto, lascia la console inutilizzabile.

Sì, non è carino. La SVGAlib cattura il Ctrl-C e decide cosa farci invece di farlo gestire a Quake. Non conosco nessun modo per evitarlo, tranne modificando la SVGAlib.

Se usate Quake da uno script che resetti la tastiera e il terminale, come questo qui sotto, avrete meno possibilità di finire con il terminale incasinato se succede.

     #!/bin/sh
     ./quake2 $*
     kbd_mode -a
     reset

5.1.9 squake/quake2 non parte e dice svgalib:  cannot get I/O permissions

Gli eseguibili di Quake devono girare come root, quindi dovete o farli girare come root o renderli setuid root. Controllate le istruzioni di installazione in questo documento per avere dettagli sull’argomento.

5.1.10 A volte, dopo avero giocato a una delle versioni di Quake su X, non funziona la ripetizione dei tasti.

Per una qualche ragione, la versione per X11 di Quake disabilita la ripetizione dei tasti mentre sta girando; se per qualche motivo il programma esce in maniera non normale, questa non viene riattivata. Fate

          xset r on

per riabilitarla.

5.1.11 Quake/Quake II dice /dev/dsp : device not configured

L’hardware del suono non è configurato correttamente. Forse vi manca solo un insmod sound, o forse dovrete ricompilare il kernel. Gli utenti RedHat possono provare a richiamare il programma sndconfig(8). Controllate la documentazione della vostra distribuzione di Linux e/o il Linux Sound HOWTO per avere altre informazioni su come configurare il suono sul vostro sistema.

5.1.12 Quake/Quake II per GL girano più lenti sotto Linux che sotto Windows. **

Il miniport per Windows della GL per 3Dfx è ottimizzato pesantemente per quello che fa Quake II. Mesa, d’altra parte, è più generale e meno ottimizzata. Come risultato Quake II sotto Linux gira più lentamente che sotto Windows. Non è una limitazione di Linux, ma una dei driver.

Con le uscite più recenti di QuakeWorld e Quake II, il miniport per 3Dfx citato prima è disponibile anche per Linux. Anche se non porta la performance di Quake per Linux allo stesso livello di quella di Windows, è un altro passo nella direzione giusta.

Oltre a questo, per gli utenti di Pentium Pro e Pentium II, ci sono alcuni trucchi che si possono fare con il buffering della memoria - l’ultimo device driver per 3Dfx ha il supporto per farlo automaticamente. Abilitare gli MTRR può velocizzare in modo significativo (10 fps sul mio sistema) GL Quake. Per informazioni più dettagliate leggete http://glide.xxedgexx.com/MTRR.html .

5.1.13 Come posso far partire un server e scollegarmi, e poi tornarci più tardi? **

screen(1) è un’utility valida per questo genere di cose. Vi permette di creare molti schermi virtuali in una singola tty e di passare tra uno di essi ed un altro. Screen è compreso nella maggior parte delle distribuzioni, ma lo potete scaricare da ftp://prep.ai.mit.edu/pub/gnu

o da qualsiasi mirror GNU.

Inizializzate screen digitando il comando screen, poi create una nuova finestra premendo CTRL-A CTRL-C. Non vedrete molto mentre fate tutto ciò, ma state tranquilli, qualcosa sta succedendo.

Inizializzate il server di QuakeWorld:

          /usr/local/games/quake/qwsv

Ora aprite una nuova finestra di screen con CTRL-A CTRL-C ed inizializzate il server di Quake II:

          /usr/local/games/quake2/quake2 +set dedicated 1

Potete passare avanti ed indietro tra i server premendo CTRL-A CTRL-N.

Premete CTRL-A CTRL-D per uscire dal programma. Screen ed i suoi server stanno ancora girando, ma non sono più visibili nella finestra del terminale. Ora potete scollegarvi ed i processi continueranno a girare normalmente.

Usate screen -r per ricollegarvi al processo di screen precedente ed accedere di nuovo ai server.

Questo è tutto. Per avere altre informazioni leggete la pagina man di screen(1).

5.2 Quake/QuakeWorld

5.2.1 Quake muore all’avvio con un segmentation fault.

In genere questo significa che il setup di rete non è corretto. Provate a fare partire Quake con l’opzione -noudp e vedete se l’errore si ripete. Se funziona, controllate il file /etc/hosts e verificate che ci sia una voce per la vostra macchina. Usate 127.0.0.1 come indirizzo IP se avete un accesso via modem che vi assegna un indirizzo diverso ogni volta che vi collegate.

5.2.2 Che differenza c’è tra glqwcl, glqwcl.3dfxgl e glqwcl.glx? ++

• glqwcl è il client standard di QuakeWorld per GL che avete visto nelle versioni precedenti; è linkato con la libMesaGL.so.2.

• glqwcl.3dfxgl è uno script che avvia glqwcl dopo aver precaricato la libreria del miniport 3Dfx GL, lib3dfxgl.so. Precaricare la libreria del miniport fa usare le funzioni della GL invece che quelle della Mesa. Dato che il miniport della GL è ottimizzato per Quake, è una buona cosa.

• glqwcl.glx è linkato con le librerie OpenGL standard invece che con le Mesa; questo permette a Quake di girare su altro hardware 3D supportato da altre implementazioni di OpenGL. Questa è un’applicazione X, e quindi deve essere usata da dentro X.

5.2.3 Quando uso glqwcl.glx a tutto schermo da X, non riesco ad usare il mouse o la tastiera. ++

Usate glqwcl.glx con l’opzione +_windowed_mouse 1. QuakeWorld GLX gira in una finestra anche se sembra a tutto schermo. Se spostate il mouse mentre il Window Manager è in modalità focus-follow-mouse, probabilmente lo sposterete fuori della finestra, e allora Quake smette di rispondere all’input del mouse e della tastiera. +_windowed_mouse 1 fa gestire in esclusiva il mouse a QuakeWorld.

5.3 Quake II

5.3.1 Quando provo a usare Quake II con il renderer GL, non funziona, e dice: LoadLibrary( ref_gl.so) failed: Unable to resolve symbol

Se subito prima della linea di Unable to resolve symbol avete dei messaggi come can't resolve symbol 'fxMesaCreateContext', la libreria Mesa che avete installato non ha compilato il supporto per le glide. Vedere la sezione 3.7 (Il renderer GL) nella sezione sull’installazione di Quake per avere delle informazioni su come installare le Mesa e glide.

5.3.2 Quake II muore con l’errore LoadLibrary(ref_XXX.so) failed:  No such file or
       directory

• /etc/quake2.conf non ha il percorso giusto per la directory di Quake II. Questo file dovrebbe contenere una linea con la directory in cui risiede Quake II.

• Se /etc/quake2.conf contiene il percorso per la directory, provate a rimuovere il file ed a ricrearlo a mano. Alcune versioni di Quake II per Linux includevano un file quake2.conf formattato male.

• Avete le SVGAlib installate? Controllate in /lib, /usr/lib e /usr/local/lib, se c’è il file libvga.so.1.X.X, in cui al posto delle X ci sono dei numeri. Se non lo trovate, dovete prendere ed installare la SVGAlib per poter usare Quake II fuori di X.

• Se il renderer in questione è ref_gl.so, forse non avete installato correttamente le Mesa. Avete copiato libMesaGL.so.2.6 nella directory delle librerie come scritto nelle istruzioni di installazione?

• Se il renderer in questione è ref_gl.so, avete installato le librerie glide?

5.3.3 Quando aggiusto la luminosità mentre uso il renderer GL e premo apply, non succede niente!

Digitate vid_restart nella console per fare attivare le modifiche.

5.3.4 Note sulla distribuzione 3.17

Nel momento in cui sto scrivendo, la versione di Quake II più recente è la 3.19. Se per qualche ragione state usando la versione 3.17, vi potrebbero essere utili le seguenti informazioni.

Due file di testo (quake2.conf e fixperms.sh) della versione 3.17 sono stati salvati inavvertitamente nel formato di testo MS-DOS CR/LF invece che nel formato Unix LF, cioè alla fine di ciascuna linea di questi file c’è un carattere di carriage return in più, e non funzioneranno bene finché non risolverete questo problema.

Usate tr(1) per togliere i CR.

          for i in fixperms.sh quake2.conf
          do
          mv $i $i.bak
          tr -d '\r' < $i.bak > $i
          done

5.3.5 Quando uso Quake II con l’opzione +set vid_ref glx a tutto schermo da X, non riesco ad usare il mouse o la tastiera. ++

Usate quake2 GLX con l’opzione +set _windowed_mouse 1. Quake2 GLX gira in una finestra anche se sembra prendere tutto lo schermo. Se spostate il mouse mentre il window manager è in modalità focusfollow-mouse, è possibile che spostiate il puntatore fuori della finestra, e allora Quake II non risponderà più all’input del mouse e della tastiera. L’opzione +set _windowed_mouse 1 fa usare solo a Quake II l’input del mouse.

5.3.6 Perché non posso passare ad alcune delle modalità SVGA che sono nel menù Video di Quake II? **

La SVGAlib probabilmente non sa come ricreare le modalità sulla vostra scheda. Quando Quake II parte con il renderer SVGA (ref_soft.so), stampa un elenco di tutti i modi che la SVGAlib ha disponibili:

          ------- Loading ref_soft.so -------
          Using RIVA 128 driver, 4096KB.
          mode 320: 200 1075253220
          mode 320: 240 1075253220
          mode 320: 400 1075253220
          mode 360: 480 1075253220
          mode 640: 480 1075253220
          mode 800: 600 1075253220
          mode 1024: 768 1075253220
          mode 1280: 1024 1075253220

Questi sono i soli modi tra cui potete passare con successo dal menù Video. Se ad esempio 512x384 non è sulla lista, sceglierlo dal menù video non funziona.

La SVGAlib vi fa definire delle nuove modalità video per alcuni chipset in libvga.config, in modo che possiate creare da soli le vostre modalità video. Controllate la documentazione della SVGAlib per altri dettagli su questo argomento.

6 Tips & Tricks

6.1 Utilizzare i giochi per X e GL senza setuid

Se usate solo le versioni X e GL di Quake, QuakeWorld o Quake II, non avete bisogno di usarle con permessi di root. La SVGA è l’unica modalità in cui serve. Le versioni da X hanno bisogno solo dell’accesso a /dev/dsp, il dispositivo per il suono, alle versioni GL serve anche accesso alla scheda 3Dfx.

/dev/dsp deve essere leggibile e scrivibile da Quake. La maggior parte delle distribuzioni gli danno per default i permessi 662 (rw-rw–w-). La soluzione più semplice è di fare chmod 666 /dev/dsp. Sulla maggior parte dei sistemi la possibilità di leggere dal device del suono non darà un buco di sicurezza significativo. Se per voi questo approccio non è accettabile, create un gruppo a cui farete appartenere /dev/dsp, e rendete i giocatori di Quake membri di questo gruppo.

Per utilizzare le applicazioni glide (come GLQuake) non da root vi serve il driver /dev/3dfx dalla pagina di glide di Daryll Strauss ( http://glide.xxedgexx.com/3DfxRPMS.html ). Scaricate il pacchetto Device3Dfx.xxx.rpm ed installatelo seguendo le istruzioni sulla pagina web. Dopo aver installato il driver, assicuratevi che /dev/3dfx ha permessi 666 (chmod 666 /dev/3dfx).

Quando /dev/dsp e /dev/3dfx sono impostati correttamente, potete rimuovere il bit setuid dagli eseguibili di Quake/QW/Q2. Da root fate chmod 0755 XXXXX, dove XXXXX è glquake quake.x11, o quake2.

Se avete giocato da root prima di fare queste modifiche, molti dei file di Quake (come i file di salvataggio) potrebbero appartenere all’utente root, e quindi possono essere inaccessibili ad un utente normale, quindi ricordatevi di modificare il proprietario dei file prima di provare a giocare non da root.

6.2 Usare le versioni SVGA e GL da X**

I client di QuakeWorld e Quake II per GLX sono applicazioni X native, ma dato che usano le Mesa invece che il mini-driver 3Dfx, sono più lenti delle versioni lib3dfxgl.so. Per questa ragione forse preferirete ancora questo modo di inizializzare i giochi da X usando i client GLX.

La parte seguente è basata su uno dei 2 Cent Tip di Joey Hess della Linux Gazette ( joey@kite.ml.org ). L’originale si trova su http://www.ssc.com/lg/issue20/lg_tips20.html#squake .

Sì, è possibile usare Quake da X se siete root, ma non è un buon comportamento, e rischiate che Quake crashi e lascino la console che non risponde. Con un po’ di lavoro potete fare in modo di poter giocare come utente normale usando i Quake SVGA e GL da X E passare automaticamente a X quando il programma finisce, sia che usciate normalmente che non lo facciate.

Nota: quando dico Quake nel testo qui sotto, voglio dire quake, glquake squake, qwcl, glqwcl, qwcl.x11 o quake2.

• Per prima cosa vi serve il pacchetto open(1) di Jon Tombs. Si tratta di due programmi molto piccoli che vi permettono di passare tra le console virtuali e farci girare dei programmi. Scaricateli da http://sunsite.unc.edu/pub/Linux/utils/console/ . Non dovrete fare molto più che make;make install per compilarli ed installarli. Una volta installati, dovrete rendere gli eseguibili open e switchto setuid root. Fate così:

               cd /usr/local/bin
               chown root open switchto
               chmod 4755 open switchto

• Poi salvate il codice qui sotto nel file getvc.c:

             /* getvc.c
              * Prints the number of the current VC to stdout. Most of this code
              * was ripped from the open program, and this code is GPL'd
              *
              * Joey Hess, Fri Apr  4 14:58:50 EST 1997
              */
              #include <sys/vt.h>
              #include <fcntl.h>

main () {
int fd = 0;
struct vt_stat vt;
if ((fd = open("/dev/console",O_WRONLY,0)) < 0) {
  perror("Failed to open /dev/console\n");
  return(2);
}
if (ioctl(fd, VT_GETSTATE, &vt) < 0) {
  perror("can't get VTstate\n");
  close(fd);
  return(4);
}
printf("%d\n",vt.v_active);
}
/* End of getvc.c */

Compilatelo ed installatelo da qualche parte nel $PATH:

gcc getvc.c -o getvc
strip getvc
mv getvc /usr/local/bin

• Ora create lo script runvc:

#!/bin/sh
# Run something on a VC, from X, and switch back to X when done.
# GPL Joey Hess, Thu, 10 Jul 1997 23:27:08 -0400
exec open -s -- sh -c "$* ; chvt `getvc`"

Rendetelo eseguibile e mettetelo da qualche parte nel $PATH:

chmod 755 runvc
mv runvc /usr/local/bin

Ora potete usare il comando runvc per cominciare a giocare a Quake. Continuate ad usare qualsiasi linea di comando che usate per il gioco, ma metteteci all’inizio runvc:

runvc ./quake2 +set vid_ref gl +connect quake.foo.com

Passerete automaticamente ad una console virtuale, giocherete a Quake e poi quando ha finito passerete di nuovo a X!

6.3 Mantenere il mouse dentro la finestra in X

Dal file readme.linux di Quake II:

Per default, il mouse non sarà legato alla finestra di Quake2. Per farglielo catturare, selezionate Windowed Mouse dal menù video, o digitate ’_windowed_mouse 0’ sulla console. Fate il contrario per lasciarlo. Potete creare una scorciatoia da tastiera per catturare e lasciare il mouse così: bind i _windowed_mouse 1 bind o _windowed_mouse 0 In questo modo i catturerà il mouse e o lo rilascerà.

6.4 Le impostazioni trucchettose di 3Dfx funzionano anche in Linux

Potreste avere sentito parlare o visto modi di modificare la performance delle OpenGL di Quake impostando diverse variabili d’ambiente. Queste variabili sono valide nello stesso modo sotto Linux, soltanto si impostano in un modo leggermente diverso. Se una guida per Windows/DOS vi dice di fare:

          SET SST_GRXCLK=59

Sotto Linux dovete fare così:

          export SST_GRXCLK=59

6.5 Il browser del server del poveraccio

Joe S. ( jszabo@eden.rutgers.edu ) suggerisce:

          un trucco che faccio con qstat:
          Faccio un file con i miei server preferiti, poi fate
          qstat -f /C/quake2/file.txt | less

premete Ctrl-z per sospendere, poi copiate gli indirizzi IP o i nomi degli host con gpm sulla linea di comando, così:

          ./quake2 +connect expert.eqclans.com

Poi potete usare fg per tornare alla lista più tardi...

6.6 Usare le lib3dfxgl.so per Quake I **

Potete usare il mini-driver 3Dfx (lib3dfxgl.so) da Quakeworld o da Quake II anche con glquake. Copiate semplicemente gli script glqwcl.3dfxgl o quake2.3dfxgl in un nuovo file, ad esempio glquake.3dfxgl; poi copiate lo script glquake.3dfxgl in modo che usi glquake invece di glqwcl. Anche in questo caso si applicano le stesse restrizioni per l’uso da root, come anche le differenze tra libc5 e glibc. Vedere le sezioni 2.9.3 (Quakeworld) o 3.7.4 (Quake II) per avere altre informazioni su lib3dfxgl.so.

7 Administrivia

7.1 Nuove versioni di questo documento

Le nuove versioni di questo documento verranno postate periodicamente in comp.os.linux.answers e in rec.games.computer.quake.misc . Saranno anche inserite nei vari siti WWW e FTP, compresa la home page di LDP .

Le nuove versioni di questo documento saranno periodicamente postate in rec.games.computer.quake.misc e in comp.os.linux.misc .

L’ultima versione del Linux Quake HOWTO può sempre essere trovata nei seguenti siti:

• http://www.linuxquake.com/

• http://webpages.mr.net/bobz/

• http://www.linuxgames.com/quake

7.2 Altri formati di questo documento

Questo documento è disponibile in una gran varietà di formati diversi; molti più di quanto servono, in realtà. Li potete trovare in http://www.linuxquake.com/howto/other-formats .

• testo ASCII

• testo ASCII con backspace-overstrikes per poter essere visualizzato com man(1)

• HTML già zippato e pronto per essere inserito nel vostro sito web

• Postscript

• PRC per poter essere visualizzato sul Palm Pilot con Aportis Doc

• SGML

• LaTeX

• Tutto quello elencato sopra, in un solo pacchetto

7.3 Policy di distribuzione

Copyright (c) 1998, di Bob Zimbinski, Brett A. Thomas e Mike Hallock. Questo documento può essere distribuito sotto i termini descritti nella licenza LDP a sunsite.unc.edu/LDP/COPYRIGHT.html .

Questo HOWTO è documentazione libera, e può essere ridistribuita e/o modificata sotto i termini della licenza LDP. Questo documento viene distribuito con la speranza che serva, ma senza alcuna garanzia; senza neanche la garanzia implicita di essere vendibile o adatto ad un particolare scopo. Beh, anche se questo documento vi uccide il cane, non è colpa mia.

Vedere la licenza LDP per ulteriori dettagli.

7.4 Storia delle revisioni

Le sezioni di questo documento che sono state aggiornate nell’ultima revisione hanno un ** dopo il titolo. Le sezioni aggiornate nella revisione precedente sono contrassegnate da ++.

Qui sotto è riportata la storia completa delle revisioni di questo documento. Non è stata concepita per essere utile a nessuno, tranne che agli autori (per questo non viene tradotta :-) n.d.t.) .

$Log: Quake-HOWTO.sgml,v $
Revision 1.0.1.15  1998/10/05 21:09:42  bobz
Fixed a few typos and spelling errors that I missed last time around
Revision 1.0.1.14  1998/10/05 19:54:17  bobz
Removed the long-dead LinQuake page from list of Linux Quake sites
Removed renaissoft.com link
Minor wording changes throughout
Added link to svgalib libc5 binary
Added info about q2 demo
Updated q2 installation info for the 3.19 release
moved section about 3.17 textfile problems to the troubleshooting section
Added part about lib3dfxgl.so to QW section
Added part about GLX client to QW section
Added part about lib3dfxgl.so to Q2 section
Added part about GLX client to Q2 section
Updated "slower than windows" FAQ
Removed obsolete TS tip about glibc & q2
Removed obsolete TS tip about playing w/CD mounted
Changed tip about running glquake with lib3dfxgl.so
Added instructions for Q2 mission pack 2
Added pointer to svgalib libc5 binary
Added FAQ about svgalib modes in Q2
Added Cheapo proxy to software section
Added screen FAQ
Added qgraph to  software sectoin
Decided I was lying when I promised a 3Dfx tweak section in the next update
Revision 1.0.1.13  1998/09/02 01:35:18  bobz
Fixed some broken url links
Restored <author> tag
added an acknowledgement
added a reminder to the non-root tip
added qlog listing
Revision 1.0.1.12  1998/08/30 21:35:23  bobz
Updated QuakeWorld install section for 2.30 release
Updated QW file list
Updated Quake 1.01 install info per email suggestion
Added QW 2.30 caveat to "Glibc considerations" section
Updated linux vs. windows speed section for new 3dfx miniport
Added glqwcl versions FAQ
Added troubleshooting tip about windows focus and glx
Added a sentence about /dev/3dfx permissions
Made runvc script usage clearer
Added tip about using mini-driver with Quake & QuakeII
Revision 1.0.1.11  1998/08/15 19:28:49  bobz
Added glibc topic in Troubleshooting/FAQ section
Moved non-setuid info to Tips & Tricks section

Moved rcs log into Revision Hist section
Changed distribution info a little until LDP wakes up
Changed references to quake.medina.net to www.linuxquake.com
Added linuxgames.com to list of places to get current version
Changed 3dfx Howto pointer
Moved explanation of change markings (** and ++) to intro section where they'll be noticed
Mentioned zoid's GL driver port in the Win vs Linux FAQ
Fixed credit and URL in q2getty
Revision 1.0.1.10  1998/08/07 19:07:02  bobz
Changed XQF url
Added comments to the revision history section
Started marking changed sections
Added OS Considerations to troubleshooting section
Added rcon to Other Software section
Added ICE to Other Software section
Revision 1.0.1.9  1998/08/04 21:06:22  bobz
Updated Acknowledgements
Added discussion of Quake security
Added QIPX to "Related Software"
Added ts topic about -noudp
Revision 1.0.1.8  1998/08/03 22:09:28  bobz
Updated and restructured the q2 mods section
Minor change to gpm troubleshooting info
Changed sound ts info
Changed intellimouse ts info
Revision 1.0.1.7  1998/08/03 04:55:21  mikeh
Added "Playing" section of Q2 Mods & Addons section.
Added "Intelimouse" section of Troubleshooting section
Added RedHat sndconfig part to Troubleshooting section
Fixed a few spacing problems, and one error message
Revision 1.0.1.6  1998/08/03 02:01:13  bobz
Changed abstract.
Revision 1.0.1.5  1998/07/31 16:07:11  bobz
Added gpm -k mention in mouse troubleshooting
mentioned 'sensitivity' in mouse lag troubleshooting
Added qstat|less tip
Added "/dev/dsp not configured" to troubleshooting
Slightly reworded part of the mod compiling section
Added bit about running mods server side
corrected required version # in q2 mission pack 1
Updated acknowledgements section
Revision 1.0.1.4  1998/07/30 21:08:46  bobz
Fixed a problem with broken lines in <sect> tags

Revision 1.0.1.3  1998/07/30 17:40:29  bobz
Fixed broken link to Latex version.
Revision 1.0.1.2  1998/07/30 15:46:40  bobz
Test update.
Revision 1.0.1.1  1998/07/30 15:43:59  bobz
Changed version numbering scheme.
Revision 1.10  1998/07/30 13:51:24  bobz
Minor version reporting change
Revision 1.9  1998/07/29 20:42:03  bobz
Added some server links
Revision 1.8  1998/07/29 17:37:15  bobz
Added a Quake II model viewer to the Other Programs section
Revision 1.7  1998/07/29 16:02:23  bobz
Added some relative links in Other Formats to make it
more portable.
Revision 1.6  1998/07/29 15:18:12  bobz
Version and date stamps back to the way they were
Revision 1.5  1998/07/29 14:52:03  bobz
Added tags for automatic timestamping
Revision 1.4  1998/07/29 13:17:51  bobz
Changed captured.com's web address per webmaster's request
Revision 1.3  1998/07/29 02:11:02  bobz
Ooops again.  Made "Other formats" a <sect> instead of a <sect1>.
Revision 1.2  1998/07/29 01:55:41  bobz
Oops.  I deleted the doctype tag...
Revision 1.1  1998/07/29 01:48:34  bobz
Added Other Formats section.
Changed acknowledgments slightly
Added ftp.medina.net to list of ftp sites.
Revision 1.0 1998/07/28
First publicly released version
Revision 0.9 1998/07/25
Restructured,rewritten and expanded by Bob Zimbinski.
Revision 0.01 1998/06/16

7. Administrivia 48

     First Pre-Release version v0.01by Brett A. Thomas and Mike Hallock.