Avanti Indietro Indice

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 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:

Opzionali:

3.2 Installazione di Quake II

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:

I file di Quake II nominati in questa sezione sono:

Altro software nominato:

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
     

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 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.

Avete finito di installare i file di dati di Quake II. Passate all'" Installazione dei binari per Linux".

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 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 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:

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 Scaricare i file necessari per sapere dove trovare i file di Quake II per Linux.

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
     

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 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.

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 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 sezione dei file più sopra. Se avete la RedHat 5.x o un'altra distribuzione di Linux basata su glibs, guardate le 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
     

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.

SVGAlib

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

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.

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 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:

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

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

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 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 Altre fonti di informazioni nella prima parte di questo documento.

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.

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).

Altre fonti di informazioni sui server

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.

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.

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.

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 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.

Pacchetti missione **


Avanti Indietro Indice