<!-- 1,1 -->
<!-- Quake I y II,0 -->
<!-- Álvaro,Villalba Poncet,alvarovp@mad.servicom.es -->
<!-- 0.70,1999-01-22 -->
<!-- quake -->
<!-- Software,Juegos -->

<!doctype linuxdoc system>

<!-- ****************************************************************** -->
<!-- * Revisión y re-reformateo sgml v0.23     Álvaro Villalba Poncet * -->
<!-- *  22/01/99                             alvarovp@mad.servicom.es * -->
<!-- ****************************************************************** -->

<article>
<title>Quake I&amp;II Mini Como
<author>Álvaro Villalba Poncet, <tt><htmlurl url="mailto:alvarovp@mad.servicom.es"
name="alvarovp@mad.servicom.es"></tt>
<date>ver 0.7, 22 de Enero de 1999.

<abstract>Guia para configurar el Quake I y el II en linux. </abstract>

<toc>

<sect>Introducción.
<p>

Actualmente no hay muchos juegos "populares" portados a linux, de hecho 
solo está el doom, el quake (en todas sus versiones) y el InnerWorlds,
pero todo se andará (actualmente hay fabricantes que han dicho que nunca
portarán sus juegos a linux, algún día se comerán sus palabras ... :) ). 
El quake en linux funciona perfectamente, incluso más rápido que en 
windows, además si se quiere montar un server de quake es la plataforma
perfecta, el único problema que puede haber es con las tarjetas de video 
modernas (especialmente con las 3dfx de última generación), ya que no 
todas tienen drivers para linux (pero cada vez son más las soportadas).

<sect> Requisitos.
<p>

<sect1>Software.<label id="soft">
<p>

Nos hacen falta los ejecutables para linux. Se pueden encontrar en muchos 
sitios , el principal es en idsoftware (<tt><htmlurl 
url="ftp://ftp.idsoftware.com" name="ftp.idsoftware.com"></tt>) pero este 
server va muy lento, el mejor sitio para bajarse todo lo necesario es la 
página de quake en linux (<tt><htmlurl 
url="http://captured.com/threewave/linux/index.html" 
name="captured.com/threewave/linux/index.html"></tt>). Ahí se puede bajar
todo lo necesario sin tener que sumergirse en los oscuros directorios de
idsoftware ... Otro sitio sobre el Quake y Linux es <htmlurl
url="http://quake.medina.net" name="quake.medina.net">. Otros sitios donde se 
puede obtener casi todo el software necesario para el quake son:

<itemize>

<item><tt><htmlurl url="ftp://ftp.cdrom.com" name="ftp.cdrom.com"></tt>
(muy lento, es mejor el mirror que hay en <tt><htmlurl
url="ftp://ftp.doc.ic.ac.uk" name="ftp.doc.is.ac.uk"></tt>).

<item><tt><htmlurl url="ftp://ftp.sci.com/quake" name="ftp.sci.com/quake"></tt>.

<item><tt> <htmlurl url="http://www.quake2.com" name="www.quake2.com"></tt>

</itemize>

Para descomprimir un fichero <tt/tgz/ o <tt/tar.gz/ ponemos <tt/tar
zxfv nombre_del_fichero/.
	
<sect1>Hardware:
<p>

Los que pide el propio juego, osea, una tarjeta de video y un Pentium a 90
(yo he visto el quake corriendo en un 486 bajo linux y funcionaba, así que
todo es cuestión de probar ;) ). 

<sect2>Configuración de la tarjeta de video<label id="video">.
<p>

Se puede jugar al quake desde las X o desde la SVGA, recomiendo la SVGA
porque es mas rápida, pero si es un servidor con varios usuarios
recomiendo la versión de las X (principalmente porque para correr la
versíon SVGA hace falta que el ejecutable sea setuid root, con los
consiguientes riesgos de seguridad que esto conlleva), pero cada uno que
use la que más le guste ...

Si vas a jugar en las X tendrá que tenerlas configuradas (cualquier
duda sobre cómo hacerlo mirela en el XFree86-Como)

Para la SVGA normalmente no hay que tocar nada, el archivo de 
configuración está en <tt>/etc/vga/libvga.config</tt> (En RedHat) o en
<tt>/etc/libvga.config </tt> (Slack). Si algo no va bien con la vga tendrá
que editar el fichero y poner los parámetros de su tarjeta (tipo de
chipset, RamDac, etc) y del monitor (mírelas en los manuales del
ordenador).

<sect2>Configuración de tarjetas aceleradoras<label id="3dfx">.
<p>

Lo primero que necesitaremos es una tarjeta aceleradora; hasta la fecha solo
están soportadas las basadas en el chip <tt/3dfx/ (en el momento de escribir
esto estaban portando los drivers para la <tt/banshee/). Para poder usar una
3dfx necesitaremos bajarnos los siguientes ficheros:
<itemize>
<item><tt/glide/ son las librerías que acceden directamente a la tarjeta, se
pueden obtener de <htmlurl url="http://glide.xxedgexx.com/3DfxRPMS.html"
name="http://glide.xxedgexx.com/3DfxRPMS.html" > , ahí podemos encontrar
versiones en formato <tt/rpm/ (para RedHat, OpenLinux, SuSe) así como para
glibc (RedHat 5.X, debian 2.X, SuSe 6.X) o, libc5. En esta página se puede
obtener tambien información sobre las tarjetas soportadas. Necesitaremos como
mínimo dos archivos:
  <enum>
  <item><tt/Glide2x_SDK-2.1/ es el kit de desarrollo de la librería glide.
  <item><tt/Glide/ son las librerías propiamente dichas, dependiendo del tipo de
  3dfx que tengamos necesitaremos:
	<enum>
	<item><tt/Glide_VG-2.46/ para las tarjetas <tt/voodoo 1/.
	<item><tt/Glide_VR-2.46/ para las tarjetas <tt/voodoo rush/.
	<item><tt/Glide_V2-2.51/ para las tarjetas <tt/voodoo 2/.
	</enum>
  </enum>
<item><tt/Mesa/ es la versión <it/free/ de las librerías <tt/OpenGL/, se pueden 
obtener de <htmlurl url="http://www.ssec.wisc.edu/~brianp/Mesa.html" 
name="http://www.ssec.wisc.edu/~brianp/Mesa.html">. La última versión estable
es la 3.0 y de desarrollo la 3.1, es recomendable bajarse la última estable
(en este caso la 3.0). De ahí cojeremos dos ficheros:
  <enum>
  <item><tt/MesaLib/ las librerías propiamente dichas.
  <item><tt/MesaDemos/ demos de la librería.
  </enum>
Existen binarios de las librerías en todos los formatos, pero en este caso
necesitaremos los fuentes porque las tenemos que recompilar.
</itemize>

Una vez obtenidos los ficheros necesarios lo primero que instalaremos son las
<tt/glide/, si nos las hemos bajado en rpm lo haremos con 
<tscreen><verb>
[root@unsCAred][~]# rpm -Uhv Glide_V[tipo de tarjeta]-[versión].rpm
 
</verb></tscreen>
Si no disponemos del programa rpm podemos usar la utilidad <tt/rpm2cpio/ de la
siguiente manera (desde el directorio / para que nos cree bien los directorios
necesarios):
<tscreen><verb>
[root@unsCAred][/]# cd /
[root@unsCAred][/]# rpm2cpio archivo.rpm | cpio -i --make-directories
[root@unsCAred][/]# ldconfig
</verb></tscreen>
Para comprobar que las librerías están correctamente instaladas ejecutamos en
el shell el comando:
<tscreen><verb>
[root@unsCAred][~]# ldconfig -p|grep libglide
[root@unsCAred][~]# ldconfig -p|grep libtexus
</verb></tscreen>

Ahora instalamos el fichero <tt/Glide2x_SDK-2.1/, del que solo necesitamos los
includes
Si tenemos rpm ponemos 
<tscreen><verb>
[root@unsCAred][~]# rpm -Uhv Glide2x_SDK-2.1-3.i386.rpm
</verb></tscreen>
Si no disponemos de rpm usamos nuevamente el rpm2cpio de la siguiente manera:
<tscreen><verb>
[root@unsCAred][~]# cd /tmp
[root@unsCAred][/tmp]# rpm2cpio Glide2x_SDK-2.1-3.i386.rpm | cpio -i --make-directories
[root@unsCAred][/tmp]# cd /usr/local/
[root@unsCAred][/usr/local]# mkdir glide
[root@unsCAred][/usr/local]# cd glide
[root@unsCAred][/usr/local/glide]# mkdir include
[root@unsCAred][/usr/local/glide]# cd include
[root@unsCAred][/usr/local/glide/include]# cp /tmp/include/* .
[root@unsCAred][/usr/local/glide/include]# ls
3dfx.h      glidesys.h  gump.h      sst1vid.h
glide.h     glideutl.h  linutil.h   texus.h
</verb></tscreen>
En caso de haber usado el rpm tenemos que hacer un enlace simbólico ya que las
librerías Mesa buscarán la librería <tt/libglide/ en <tt>/usr/local/glide/lib
</tt>, lo hacemos con lo siguiente:
<tscreen><verb>
[root@unsCAred][~]#cd /usr/local/glide
[root@unsCAred][/usr/local/glide]# mkdir lib
[root@unsCAred][/usr/local/glide]# cd lib
[root@unsCAred][/usr/local/glide/lib]# ln -s /usr/lib/libglide2x.so .
[root@unsCAred][/usr/local/glide/lib]# ls
libglide2x.so@
</verb></tscreen>


Ahora que ya hemos instalado correctamente las librerías glide nos vamos a por
las Mesa. Haremos lo siguiente:
<tscreen><verb>
[root@unsCAred][~]# cd /tmp
[root@unsCAred][/tmp]# tar zxfv MesaLib*
[···]
[root@unsCAred][/tmp]# tar zxfv MesaDemos*
[···]
[root@unsCAred][/tmp]# cd Mesa-3.0
[root@unsCAred][/tmp/Mesa-3.0]# make realclean
</verb></tscreen>
Ahora es cuando nos leemos el README que viene con las librerías, una vez
hecho eso las compilamos, dependiendo del tipo de tarjeta aceleradora que
tengamos pondremos lo siguiente:
<itemize>
<item><tt/make linux-386-opt-glide/ si tenemos una voodoo 1.
<item><tt/make linux-386-opt-V2-glide/ si tenemos una voodoo 2.
<item> si tenemos una voodoo rush podemos hacer uno de estos tres:
   <enum>
   <item><tt/make linux-glide/ para linux glide.
   <item><tt/make linux-386-glide/ para micros i386.
   <item><tt/make linux-386-glide-mits/ micros i386 con multiproceso.
   </enum>
</itemize>
Despues de un rato y si no hemos tenido ningun problema las librerías ya
estarán compiladas, ahora lo único que queda es instalarlas. Si ya las
teníamos instaladas antes lo único que tenemos que hacer es copiar la librería
nueva que hemos generado, para eso hacemos:
<tscreen><verb>
[root@unsCAred][/tmp/Mesa-3.0]# cd lib
[root@unsCAred][/tmp/Mesa-3.0/lib]# cp -a * /usr/lib
</verb></tscreen>
He puesto el <tt>/usr/lib</tt> porque es donde las tenía yo instaladas, si ya
las teníamos en <tt>/usr/local/lib</tt> las copiaremos ahí.
Si no las teníamos instaladas antes lo hacemos poniendo: 
<tscreen><verb>
[root@unsCAred][/tmp/Mesa-3.0]# make install
</verb></tscreen> 

Para concluir, ejecutamos como root el comando <tt/ldconfig/ y ya tendremos
todo lo necesario para que funcione la 3dfx (bueno, aún nos faltan los
ejecutables para el quake, el quakeworld y el quake2).


<sect2>Configuración del ratón<label id="raton">.
<p>

Para que funcione el ratón tenemos que editar otra vez el fichero de
configuración de la vga (ver <ref id="video" name="Configuración de la
tarjeta de video">) y poner el tipo de ratón que tenemos. Es necesario
tener el <tt/gpm/ funcionando, que es el que se encarga de controlar el
ratón en la consola. Si usa el <tt/gpm/ con el parámetro <tt/-R/ es
recomendable cambiarlo antes de jugar con un script o algo parecido, ya
que se nota bastante la velocidad de respuesta del mouse. 

En el quake se puede especificar el dispositivo en el que se encuentra el
ratón mediante los parámetros <tt/-mdev &lsqb;device&rsqb;/ y la velocidad 
con <tt/-mrate &lsqb;speed&rsqb;/. Los parámetros por defecto son 
<tt>/dev/mouse</tt> para el <tt/-mdev/ y <tt/1200/ para el <tt/-mrate/. 

Lo errores con el ratón normalmente se deben a fallos en la configuración 
del gpm o porque no se ha especificado el tipo de ratón en el
<tt/libvga.config/. Además es muy común que cuando se está jugando al
quake y se cambia a otra consola el ratón deje de responder, esto se puede
arreglar de dos maneras:

<itemize>
<item> Reiniciando el gpm (en RedHat con <tt>/etc/rc.d/init/gpm restart</tt>)
<item> Poniendo <tt>echo "*n" >/dev/mouse</tt> en una consola.
</itemize>

Para cualquier duda o problema con un ratón de tres botones es recomendable 
consultar el <tt/Raton_3_botones-Como/.

<sect2>Configuración de la tarjeta de sonido.
<p>

No es extrictamente necesaria, pero jugar al quake sin sonido es como una 
primavera sin flores ;) . Para configurar la tarjeta de sonido consultar
el <tt/Sonido-Como/.) Para jugar sin sonido ponemos el parámetro 
<tt/-nosound/. Además de este hay otros parametrós que son:

<itemize>

<item><tt/sndbits/ &lsqb;8 or 16&rsqb;
<item><tt/sndspeed &lsqb;speed&rsqb;/ (8000, 11025, 22051 and 44100), por
defecto 11025.
<item><tt/sndmono/.
<item><tt/sndstereo/ (por defecto, siempre que sea posible).

</itemize>

En el quake2 he experimentado problemas con el OSS y el driver para mi
tarjeta (una AWE32), ya que cuando se reinicia el sistema de sonido deja 
de funcionar (esto no ocurre con el driver normal del kernel). El problema
estaba en el compilador, si está usando el <tt/OSS/, el <tt/egcs/ o el
<tt/pgcc/ como compilador y un kernel de la serie <tt/2.0.X/ puede que tenga
problemas, la solución pasa por instalarse el gcc-2.7.2.3 y recompilar el
sndconfig con él (además los kernels de esa versión es recomnedable
compilarlos con el <tt/gcc/ y no con el <tt>egcs/pgcc</tt>).

<sect>Quake :
<p>
Bueno, se acabaron las configuraciones, ahora toca jugar :)

Necesitamos los archivos <tt/pak0.pak/ (para la share) y el <tt/pak0.pak/
y <tt/pak1.pak/ para la registrada. Si tenemos el quake ya instalado en 
otra partición (por ejemplo en windows) no hace falta copiarlos a la 
partición linux, podemos usar enlaces simbólicos, lo único que tenemos que 
hacer es montar la particion de windows, por ejemplo en <tt>/mnt/dos</tt>. 

Vamos a instalar el quake en <tt>/usr/local/games/quake</tt> (se puede
instalar en cualquier sitio). 

<itemize>

<item>Lo primero es crear ese directorio (<tt>mkdir 
/usr/local/games/quake</tt>). Un vez hecho eso creamos el directorio 
<tt/id1/ (a partir de ahora todos los directorios van referenciados al
<tt>/usr/local/games/quake</tt>) dentro del directorio quake.

<item>Copiamos el <tt/pak0.pak/ y el <tt/pak1.pak/ al directorio <tt/id/
(si lo hacemos con enlaces simbólicos, y suponiendo que tenemos la
partición donde está el <tt/pak0.pak/ y el <tt/pak1.pak/ montada en
<tt>/mnt/dos</tt> ponemos como root:

<tscreen><verb>
ln -s /mnt/dos/&lsqb;ruta_al_quake&rsqb;/quake/id/pak* /usr/local/games/quake/id
</verb></tscreen>

<item>Descomprimimos el ejecutable para linux en
<tt>/usr/local/games/quake</tt>.

<item>Y ahora ... a jugar, ya no hace falta nada más ... vamos al 
directorio <tt>/usr/local/games/quake</tt> y ponemos <tt>./squake</tt> (o 
<tt/xquake/ si estamos en las X) y cruzamos los dedos. Si todo a ido bien 
ya está funcionando el quake. Si usamos una tarjeta aceleradora ejecutaremos 
<tt>./glquake</tt>.
</itemize>

Para cambiar la resolución de la pantalla se usan dos comandos, nos 
ponemos en la consola del quake y ponemos <tt/vid_describemodes/ que nos 
da una descripción de todos los modos de video posible (cada uno con un
número).

Ahí luego ponemos <tt/vid_mode N/ siendo <tt/N/ el número que corresponde
a la resolución que queremos. Esto no funciona con las tarjetas aceleradoras,
para cambiar la resolución en ellas hay que especificarlo en el arranque
mediate los parámetros <tt/-width ANCHO -height ALTO/, sino arrancará por
defecto en 640x480 (otra resolución muy utilizada es 512x384).

Si queremos medir los <it/fps/ a una resolución podemos hacerlo con
<tt/timedemo demo1/ desde consola, que intenta ejecutar lo más rápido
posible la <tt/demo1/ y nos dice los <it/fps/.

Si queremos comprobar los <it/fps/ durante el juego lo podemos hacer
con <tt/timerefresh/ (pero depende de la parte de la fase en la que 
nos encontremos).

<sect1>Principales problemas:
<p>

Pueden ser:

<itemize>

<item> La tarjeta de sonido no está configurada y hemos intentado arrancar 
con sonido. Solución: arrancamos con <tt>./squake -nosound</tt>.

<item> No tenemos puesto el <tt/HOSTNAME/. Solución: editamos el fichero 
<tt>/etc/hosts</tt> y añadimos el nombre de nuestra máquina, por ejemplo:

<tscreen><verb>
127.0.0.1       localhost	localhost.localdomain 	     unsCAred
</verb></tscreen>

y nos aseguramos de que en <tt>/etc/HOSTNAME</tt> pone unsCAred (en mi 
caso claro ;) )

<item><tt>can't get I/O permisions</tt>. El squake necesita ser
<it/setuid root/ , ejecutamos como root 

<tscreen><verb>
chown root.root squake
chmod 4755 squake/ 
</verb></tscreen>

(No me responsabilizo de nada que pase por tener el ejecutable 
<it/setuid/) (No se asuste!!!, esto tiene problemas de seguridad, si es la
máquina de casa no se te va a romper el ordenador ni nada parecido,
simplemente, la svga no es muy segura en cuanto a <it/seguridad del 
sistema/ se refiere).

<item>No nos arranca en las X. Solución arrancamos el servidor a 8 bits de
profundidad de color con (<tt>startx -bpp 8</tt>).

</itemize>

<sect1>Juego en Red (Quake World).
<p>

El quake es un buen juego, pero cuando de verdad sorprende y crea adicción 
es cuando se juega en red. No es lo mismo matar a un monstruo en mitad de 
un nivel que a tu amigo <it/pukka/ (con lo segundo disfrutas ;) ).

Cambia totalmente tu visión del juego y la manera de jugar, los 
movimientos se aceleran en un 200&percnt;. Para jugar en red lo único que
necesita es una conexión a internet o a una LAN. 

En la página de quake en linux ( ver <ref id="soft" name="Software.">) se 
puede encontrar un ejecutable que se llama <tt/qwcl/. Esto es el cliente
de QuakeWorld, que no es más que una mejora de la engine de red del quake 
(solo sirve para jugar en red) con algunos añadidos, como el poder 
"cambiar" de piel o uniforme.

Se puede jugar en red con el quake normal, pero la mejora con el <it/qw/ es 
muy notable, de hecho, es muy raro encontrar servers de quake normal en 
internet, lo normal es que sean de quakeworld. 

Una herramienta muy útil para jugar en internet es el <tt/qspy/ o el 
<tt/quickspy/ (para consola) que consiste en un programa que localiza 
servers de quake world y nos dice cuantas personas hay, el ping, etc. 

Hace poco ha salido el <tt/xqf/ que es un magnífico interface para el
<tt/qspy/ hecho con gtk (para las X), se puede bajar de <tt><htmlurl
url="http://www.botik.ru/~roma/quake" name="www.botik.ru/~roma/quake"></tt>

Para instalar el qw lo único que hay que hacer es descomprimir el archivo 
<tt/qwcl/ en el directorio <tt>/usr/local/games/quake</tt> y poner 
<tt>./qwcl +connect IP</tt> siendo IP la dirección en donde queremos jugar
(ver <ref id="servers" name="Servidores españoles de quake">).

Lo mejor es tener la última versión del qw (actualmente la 2.30) y la 
anterior ya que algunos server no se han actualizado aún.

Si se tiene una tarjeta aceleradora necesitará el <tt/glqwcl/. Para indicarle
la resolución de pantalla se hace como en el <tt/glquake/ mediante los
parámetros <tt/-width ANCHO -height ALTO/.

El parámetro <tt/rate XXXX/ controla el numero de <it/bps/ que recibimos 
del servidor además del número de <it/fps/. Para un modem de 33.6 el 
parámetro óptimo es de 3000, para un 28.8 de 2500. 

<sect1>Añadidos al quake.<label id="ads">
<p>

Uno de los principales factores que han hecho al quake un juego "de culto" 
es ademas de su excelente modo de red el que se le puedan añadir 
variaciones fácilmente. 

Puede añadirle nuevas armas, nuevos montruos, nuevos niveles, incluso 
nuevos "juegos". El más popular es el <tt/Capture the Flag/, que divide a
todos los jugadores en dos equipos (es para jugar en red) y le da a cada
uno una bandera y una base, la misión de cada equipo es capturar la
bandera del otro y llevarla a su base, siempre y cuando no lo capturen la
suya. La mayoría de los patches o modificaciones se instalan igual.
Supongamos el ctf. Los pasos para instalarlo son.

<enum>
<item>Se crea el directorio <tt>/usr/local/games/quake/ctf</tt>
<item>Se descomprimen los ficheros del ctf en ese directorio.

<item>Desde el directorio quake se pone <tt>./squake -game ctf</tt>.
</enum>

Sin duda alguna la mejor variación que se ha hecho del quake son los bots, 
osea robots dotados de inteligencia artificial para simular el juego en 
red con <it/humanos/. Los mejores son el omicron (por lo menos es el que
más me gusta a mi ;) ) y el reaperbot (una lista completa de los bots, con
puntuaciones a cada uno y comentarios se puede encontrar en <tt><htmlurl
url="http://www.ionet.net/&tilde;mimpchnk"
name="www.ionet.net/&tilde;mimpchnk"></tt>)

Otra variación muy interesante es el <tt/Team Fortress/ que se puede 
encontrar en <tt><htmlurl url="http://www.planetfortress.com/teamfortress/"
name="www.planetfortress.com/teamfortress"/></tt>. Es básicamente el
<tt/ctf/ solo que podemos elegir distintos <it/caracteres/ cada uno con
funciones y armas diferentes. En este mod es donde menos importa las
diferencias de ping y donde más se juega en equipo.

El <tt/Rocket Arena/ es otra variación del quake, el argunmento es muy simple,
<it/dos entran, uno sale/, osea, son combates uno contra uno en mapas
especiales, los dos jugadores salen con todas las armas y armaduras y el que
mate al otro se queda y sigue jugando contra el siguiente contrincante.
Tambien se pueden configurar los servidores para poder jugar por equipos. Se
puede obtener de <htmlurl url="http://www.planetquake.com/servers/arena/"
name="http://www.planetquake.com/servers/arena/">.

<sect>Quake II
<p>

Para jugar al quake2 lo único que hace falta es el cd y el ejecutable,
osea que aunque tu disco duro esté lleno con un poco más de 800k que es lo
que ocupa el ejecutable puedes jugar. Lo único que hay que hacer es lo 
siguiente:

<itemize>

<item>Lo primero, creamos un directorio <tt>/usr/local/games/quake2</tt>
(por ejemplo) y dentro de este un directorio <tt/baseq2/.

<item>Copiamos el fichero <tt>/mnt/cdrom/Install/Data/baseq2/pak0.pak</tt>
a este directorio. Si se quiere jugar sin copiarlo se hace un enlace
simbólico con 

<tscreen><verb>
ln -s /mnt/cdrom/Install/Data/baseq2/pak0.pak /usr/local/games/quake2/baseq2
</verb></tscreen>

Atención que el <it/ficherito/ sólo ocupa 160 megas ;).

<item>Luego creamos el directorio <tt/players/ dentro del <tt/baseq2/
y los directorios <tt/male/ y <tt/female/ dentro de este (osea que queda
algo así:

<tscreen><verb>
	quake2---|-baseq2---|-players---|-male
					|-female
</verb></tscreen>
<item>Compiamos todos los ficheros que hay en 
<tt>/mnt/cdrom/Install/Data/baseq2/players/male</tt> en <tt/male/ y los
del <tt/female/ en <tt/female/.

<item>Descomprimimos el <tt/quake2-3.20-i386-unknown-linux2.0.tar.gz/ en
el directorio <tt/quake2/.
</itemize>

Y listo, ya podemos jugar. 

Si no tiene la librerías <tt/MesaGL/ instaladas tendrá que copiar la que
viene con el ejecutable a <tt>/usr/local/lib</tt> (por ejemplo) y poner
<tt/ldconfig/ como root (tiene que ser la version 2.6beta3 como mínimo) e
instalar las librerias <tt/glide/ si va a usar una 3dfx (ver <ref
id="3dfx" name="Configuración de tarjetas aceleradoras">). 

Si se va a jugar en la svga el fichero <tt/quake2/ tiene que estar
<tt/setuid root/ (con el ejecutable vienen un script para poner bien los
permisos), simplemente ponemos <tt>./fixperms.sh</tt> como root en el
directorio <tt/quake2/).

Para arrancarlo usamos:

<tscreen><verb>
	./quake2 +set vid_ref soft (para la svga)
        ./quake2 +set vid_ref softx (para las X)
	./quake2 +set vid_ref gl (para jugar con 3dfx)
	./quake2 +set vid_ref xgl (soporte para OpenGL,solo funciona en las X)
	./quake2.3dfxgl (para usar el mini-port del OpenGL, solo en sistemas
con glibc, es decir RedHat 5.X o debian 2.0)
</verb></tscreen>
Eso solo se hace la primera vez, luego con poner <tt>./quake2</tt> sirve.

<sect1>Juego en Red
<p>

Para jugar en red arrancamos el quake2, vamos al <tt/menu multiplayer/ y
le damos a <tt/join network game/.

Hay dos opciones, <tt/server list/, <tt/update server list/ y luego una
lista. Le damos a <tt/server list/ y añadimos las direcciones de servers
que queramos , luego le damos a <tt/update server list/ y nos saldrán los
servers con la información en la lista, colocado por ping, de menor a
mayor.

Tambien puedemos jugar poniendo <tt/+connect IP/ desde la consola del
quake2 (que sale dandole a la tecla <tt/º/). Previamente habremos
configurado nuestro jugador en <tt/player config/ (el nombre, el modelo,
la <it/skin/, el tipo de conexión y las opciones de descarga que se usan
para bajarse <it/skins/, mapas, sonidos y demás cosas de los servidores).

La mayoria de los servers usan lo mapas de deathmatch (q2dm*). En el quake 
venían en el cd, pero en el quake2 salieron después con lo que si queremos
jugar en internet estamos obligados a bajárnoslos.

Los mapas vienen en la versión 3.13, ocupan unos 10 megas, ver <ref
id="soft" name="Software.">, que además del ejecutable traen un
<tt/pak1.pak/ con los mapas de deathmatch).

Se instalan descomprimiendo el archivo en el directorio quake2, pero hay
que recordar que tenemos que instalar luego la versión 3.20 que es la que
usan los servidores (esta es la última versión que ha salido hasta la
fecha, es recomendable tener siempre la última versión y algunas veces
necesario :) ).

<sect1>Principales Problemas
<p>

Aparte de los del quake uno (que tambien pasan aquí) un problema del quake
2 es:

<itemize>

<item><tt/Cuando juego como usuario y me conecto a un server el programa
termina .../. Este es un problema de permisos, con una mala solución ...
cuando juega en servers con modificaciones (como el <it/ctf2/ o el
<it/Lithium II/) al conectar se reinicia el sistema de video, y si no esta
como root el quake2 "suelta" la id del root después de iniciar el sonido y
el vídeo y se produce el problema de I/O perm. La única manera de que esto
no pase es jugando como root o usando <tt/sudo/.

</itemize>
Nota: para jugar al quake2 en red NO necesita tener el Cd del quake, sólo
tiene que tenerlo instalado (por supuesto, si está jugando desde el cd
tendrá que meterlo ;) ).

<sect1>Principales modificaciones.
<p>

Al igual que para quake, para quake 2 hay muchas modificaciones, la más
extendida es el <it/Lithium II/, que añade nuevas funcionalidades al quake
(como runas que te dan distintos poderes o el "hook"), de hecho la mayor 
parte de los servidores usan el <it/Lithium II/, pero para jugar en ellos
no hace falta ningun fichero extra. 

Si queremos usar bots como en el quake los únicos que conozco que 
funcionen en linux son los eraser (ver la url que hay en <ref id="ads"
name="Añadidos al quake.">) pero consumen muchos recursos (aún así se
pueden usar).

Otra modificación que está sustituyendo al ctf2 es el lmctf que es una
variación de este con mapas más grandes.

El equivalente al <tt/Team Fortress/ del quake2 se llama <tt/Weapons Factory/,
que se puede obtener de <htmlurl url="http://www.captured.com/weaponsfactory/"
name="http://www.captured.com/weaponsfactory/">.

El <tt/Rocket Arena 2/ tambien está disponible y se puede bajar de la misma
página que el <tt/Rocket Arena/ para quake (ver <ref id="ads" name="Añadidos
al quake.">.


<sect>Cómo montar un server dedicado.
<p>

Si tiene una conexión permanente a Internet, ¡¡¡contribuya a la causa y
monte un server de quake !!!

<sect1>Quake
<p>
Para montar un server de quake dedicado solo necesitamos los pak's y por 
supuesto el ejecutable (que se llama
<tt/unixded-1.0-i386-unknown-linux2.0.tar.gz/). Lo ejecutamos (se 
recomienda usar el <tt/screen/ y ponerlo en una consola <it/detached/) y
listo.

El <tt/screen/ lo puede encontrar en <tt><htmlurl
url="ftp://prep.ai.mit.edu/pub/gnu" name="prep.ai.mit.edu/pub/gnu"></tt>
Lo único que sale al arrancar un server dedicado es una consola de texto.

<sect1>QuakeWorld.
<p>

Para montar un server de quake world necesitamos el fichero
<tt/qwsv2.30-i386-unknown-linux2.0.tar.gz/>.

Una modificación muy interesante para montar un servidor es el <tt/Kombat
Teams/, que ofrece una serie de posibilidades a los usuarios como poder
cambiar el mapa, fijar el tiempo, el límite de frags, etc. Se puede bajar de 
<htmlurl url="http://www.demolition.org/k/"
name="http://www.demolition.org/k/">.


<sect1> Quake 2
<p>

Aquí no necesitamos nada nuevo, solamente poner <tt>./quake2 +set
dedicated 1 +exec server.cfg</tt>. En <tt/server.cfg/ ponemos los mapas
que queremos cargar y demás cosas, recordar que si no ponemos la linea
<it/map q2dm1/, (por ejemplo) no se cargará ningun mapa. Igualmente se
recomienda se usar el <tt/screen/.


<sect> Problemas con las tarjetas aceleradoras.
<p>
Hay una página con una faq muy completa sobre las 3dfx en <htmlurl
url="http://www.voodooextreme.com/3Fingers"
name="www.voodooextreme.com/3Fingers">.
Tambien hay un programa llamado <tt/GlideControl/ disponible en <htmlurl
url="http://www.ling.ed.ac.uk/~oliphant/gc" 
name="http://www.ling.ed.ac.uk/~oliphant/gc"> muy útil para configurar los
parámetros de las 3dfx.
Los problemas más comunes suelen ser:

<itemize>
<item> Los usuarios no pueden usar la tarjeta aceleradora: Esto se puede
solucionar instalando el <it/Device3Dfx/, que es un paquete que nos crea un
dispositivo <tt>/dev/3dfx</tt> y mediante la inserción de un módulo en el
kernel (<tt/3dfx/) permite que los usuarios puedan acceder a la tarjeta
aceleradora. Asegurese si lo instala de que los permisos de <tt>/dev/3dfx</tt>
están correctamente puestos ( ejecute <tt>chmod  666 /dev/3dfx </tt> ). Este
paquete se puede encontrar en <htmlurl
url="http://glide.xxedgexx.com/3DfxRPMS.html"
name="http://glide.xxedgexx.com/3DfxRPMS.html">.
<item> Cuando ejecuto el glquake me da un <it/core dump/:. El quake2 y el
glqwcl están disponibles para glibc, sin embargo el glquake no, esto crea
bastantes problemas a la hora de hacerlo funcionar. Si tiene una voodoo2 en
principio no debería tener problemas porque el propio paquete del Glide_V2
trae además de las versiones de las librerías para glibc las de libc5 (que se
instalan en <tt>/usr/i486-linux-libc5/lib</tt>), sin embargo el paquete de la
voodoo 1 no las trae, con lo que puede que tenga que bajarse la versión para
libc5, extraer las librerías (si está en rpm con el <tt/mc/ es muy sencillo
hacerlo, sino tendrá que usar el <tt/rpm2cpio/ o el <tt/rpmget/ ya que si lo
instala directamente con el <tt/rpm/ sobrescribirá las de la versión para
glibc) e instalarlas (en <tt>/usr/i486-linux-libc5/lib</tt>). Además asegurese
de que en el fichero <tt>/etc/ld.so.conf</tt> aparece el directorio
<tt>/usr/i486-linux-libc5/lib</tt> y de que tiene instalado el paquete de
compatibilidad con la libc5 (libc-5.3.X-Y en redhat).
<tscreen><verb>
¡asegurese si se baja este paquete de que lo está cogiendo de una versión de
RedHat 5.X o del directorio /libc6 en caso de que lo esté cogiendo del contrib
de RedHat, sino le sobreescribirá las antiguas librerías y no funcionará el
sistema!
</verb></tscreen>
Otra posible causa de error es que falte alguna librería en la ruta de
búsqueda del ejecutable, esto se puede comprobar mediante el comando <tt/ldd
fichero/. Si por ejemplo al hacer <tt/ldd glquake/ le sale alguna librería
seguida de la linea <it/Not Found/ ahí estará el problema, asegurese de que
tiene esa librería instalada y que el directorio en el que está dicha librería
aparece en el fichero <tt>/etc/ld.so.conf</tt>, si no lo está añada el
directorio y ejecute luego como root <tt/ldconfig/.

<item> Cuando ejecuto el glquake me da el error <tt/glquake: can't resolve symbol
'__register_frame_info'/. El glquake necesita las <tt/MesaGL-2.6/, si no las
tenía (vienen con el ejecutable del quake2) consulte la dirección de las
librerias en <ref id="soft" name="Software">, instalelas y ejecute ldconfig.

<item> El glquake/glqwcl/quake2 se ve muy oscuro. Ajuste el contraste de la
tarjeta, esto se hace mediante la variable de entorno <tt/SST_GAMMA/ en una
voodoo 1 y <tt/SSTV2_GAMMA/ en las voodoo 2, por ejemplo poniendo :
<tscreen><verb>
[unscared][~]$ export SSTV2_GAMMA=1.70
</verb></tscreen>
Otra opción es bajarse el programa <tt/GlideControl/ mencionado anteriormente
con el que puede cambiar la <it/gamma/ de la tarjeta además de otros
parámetros.

<item> Al jugar en linux obtengo menos fps que en windows: Bueno, las Mesa no
están todavía lo suficientemente optimizadas, y en procesadores <it/lentos/ no
dan un buen rendimiento. Una opción es probar el port de opengl que han
incluido los autores del quake como opción a las librerías Mesa (se llama
<tt/lib3dfxgl.so/). Para usarlo creese un fichero llamado glquake.3dfxgl y
meta en él lo siguiente:
<tscreen><verb>
#!/bin/sh
LD_PRELOAD=./lib3dfxgl.so ./glquake $*
</verb></tscreen>
Para el quake world puede usar el <tt/glqwcl.3dfxgl/ que viene con el
<tt/glqwcl/ y en el quake2 puede especificar el miniport en las opciones de
video.
Otra opción es asegurarse de que la <tt/libMesaGL.so.2/ es un enlace a la
<tt/libMesaGL.so.3/. La versión 3 está bastante más optimizada que la 2.6 y el
rendimiento aumenta bastante, el problema es que el glquake necesita la
versión 2.6. Una solución <it/chapucera/ es hacer lo siguiente; lo primero
vemos donde están las librerías y los ejecutables:
<tscreen><verb>
[root@unsCAred][/usr/local/games/quake2]# ls -la libMesaGL.so*
lrwxrwxrwx  1 root  root     14 ene 18 19:30 libMesaGL.so -> libMesaGL.so.2
lrwxrwxrwx  1 root  root     16 ene 18 19:30 libMesaGL.so.2 -> libMesaGL.so.2.6
-rwxr-xr-x  1 root  root 897135 dic 26 14:43 libMesaGL.so.2.6
[root@unsCAred][~]# ls -la /usr/lib/libMesaGL.so.2
lrwxrwxrwx  1 root  root     12 ene 13 20:01 /usr/lib/libMesaGL.so.2 -> libMesaGL.so
[root@unsCAred][~]# ls /usr/local/games/quake/glquake*
/usr/local/games/quake/glquake         /usr/local/games/quake/glquake.mesa
/usr/local/games/quake/glquake.3dfxgl
</verb></tscreen>
ahora hacemos un script que borre el enlace de la libMesaGl.so.2,que  añada en
el <tt/path/ de búsqueda el directorio /usr/local/games/quake2, que ejecute el
glquake y que deje todo como estaba.
Para usar las MesaGL:
<tscreen><verb>
[root@unsCAred][~]# cat /usr/local/games/quake/glquake.mesa
#!/bin/sh
# Movemos la libreria para que no la carge:
mv /usr/lib/libMesaGL.so.2 /usr/lib/libMesaGL.so.2.tmp
# Añadimos el directorio del quake2 a la ruta de búsqueda
LD_LIBRARY_PATH_OLD = $LD_LIBRARY_PATH
LD_LIBRARY_PATH=/usr/local/games/quake2
# Ejecutamos el glquake
./glquake $*
# Dejamos todo como estaba.
mv /usr/lib/libMesaGL.so.2.tmp /usr/lib/libMesaGL.so.2
LD_LIBRARY_PATH= $LS_LIBRARY_PATH_OLD
</verb></tscreen>
Para el miniport de 3dfx:
<tscreen><verb>
[root@unsCAred][~]# cat /usr/local/games/quake/glquake.3dfxgl 
#!/bin/sh

# This script preloads the lib3dfxgl.so library which overrides the functions
# present in libMesaGL.so.  This allows glquake to run using 3DFX's miniport
# and without Mesa 3-D.  Glide and X11 libraries have to be installed tho, 
# even tho GLQuake doesn't use X11, it's linked against it because Mesa 3-D
# requires them.
mv /usr/lib/libMesaGL.so.2 /usr/lib/libMesaGL.so.2.tmp

LD_LIBRARY_PATH_OLD= $LS_LIBRARY_PATH
LD_LIBRARY_PATH=/usr/local/games/quake2
LD_PRELOAD=./lib3dfxgl.so ./glquake $*
mv /usr/lib/libMesaGL.so.2.tmp /usr/lib/libMesaGL.so.2
LD_LIBRARY_PATH= $LS_LIBRARY_PATH_OLD
</verb></tscreen>

El problema de hacer esto es que el script se tiene que ejecutar como root.
Una opción para hacer lo mismo pero sin necesidad de ser root es eliminar la 
<tt/libMesaGL.so.2/ de la ruta de búsqueda del ldconfig y ponerla en otro
directorio (por ejemplo en <tt>/usr/local/lib/MesaGL</tt>). Para que nos
funcionen los programas que necesitan las Mesa lo único que tenemos que hacer
es añadir la linea <tt> export LD_LIBRARY_PATH=/usr/local/lib/MesaGL</tt> en
el fichero <tt>~/.bashrc</tt> si usamos el <it/bash/ como shell o la linea
<tt> setenv LD_LIBRARY_PATH /usr/local/lib/MesaGL</tt> en el .cshrc/.tcsh si
usamos <it>csh/tcsh</it>. Haciendo esto tendríamos lo siguiente:
<tscreen><verb>
[root@unsCAred][~]# cd /usr/local/lib/MesaGL/
[root@unsCAred][/usr/local/lib/MesaGL]# ls -la libMesaGL.so.2 
lrwxrwxrwx   1 root  root 23 ene 22 21:19 libMesaGL.so.2 -> /usr/lib/libMesaGL.so.3
</verb></tscreen>
Ahora ya podemos eliminar las lineas que llevan un <it/mv/ de los scripts 
<tt/glquake.mesa/ y <tt/glquake.3dfx/ con lo que ya no es necesario ser 
root para que funcione.


<item> No me funciona el ratón: Las <tt/3dfx/ y el <tt/gpm/ no se llevan bien
, en el README viene bastante claro que para que funcione el ratón con las
tarjetas aceleradoras hay que matár el gpm antes. Para hacerlo solo que
ejecutar un <tt/killall gpm/ como root (o un <tt/gpm -k/>. Tambien se puede
hacer mediante la orden <tt>/etc/rc.d/init.d/gpm stop</tt> y reiniciarlo con
<tt>/etc/rc.d/inid.d/gpm start</tt> (esto para redhat, en otras distribuciones
puede variar ligeramente el directorio <tt/stat.d/ ); Este sistema es el más
recomendable. 

</itemize>

<sect>Servidores españoles de quake.<label id="servers">
<p>

He aquí una lista de algunos servidores de quake en España. 

<itemize>
<item>QuakeWorld:
<itemize>
<item><tt/GODS/	147.83.7.151
<item><tt/NPM/ 194.74.94.4:27500
<item><tt/IBK/ 161.72.161.72:27500
<item><tt/Spain/ 194.179.72.11
<item><tt/FragZone Stockholm/ 194.14.204.119:27500
<item><tt/Axes4All/ 194.109.6.220:27500
<item><tt/quake.arrakis.es/ 195.5.65.162:27500
<item><tt/&lsqb;LPB&rsqb;/ 147.96.20.220:27500
</itemize>	     

<item>Quake 2:
<itemize>
<item><tt/NPM/ 194.74.94.9:27910 Deathmatch
<item>194.74.94.9:27920 Capture the flag
<item><tt/MaTaDoR-Q2/ 158.109.8.88:27910 Deathmatch
<item><tt/NOKLAN-Q2/ 194.224.96.59:27910 Deathmatch
<item><tt/VAMP-Q2/ 158.53.204.155:27910 Capture the flag
<item><tt/ARRAKIS/ 195.5.65.162:27910 Deathmatch
<item>195.5.65.165:29000 Capture the flag
<item><tt/&lsqb;QU&rsqb;-Q2/ 194.179.71.92:27910 Deathmatch
<item><tt/quake.ctv.es/	195.57.143.92:27910 Deathmatch
</itemize>
</itemize>


<sect>Agradecimientos:
<p>

A todos los habituales del canal &num;linux del irc hispano por
soportarme, y en especial a aquellos que me han enseñado las maravillas
del quake (<tt/pukka/, <tt/wait_man/, <tt/Al/ y alguno que me dejo ...),
además de a todos los que contribuyen a la expansión del linux. 

A <tt/Graffic/ por el 3Dfx-COMOR del que he sacado casi toda la información
sobre las 3dfx.

A <tt/Satch/ <tt/Sky-Man/ y <tt/Devan/ por las correcciones y añadidos.

A <it/Id Software/ por hacer el quake, y lo más importante, por portarlo
a Linux.

<sect>Anexo: El INSFLUG <label id="Grupos">
<p>

El <em/INSFLUG/ forma parte del grupo internacional <it/Linux
Documentation Project/, encargándose de las traducciones al castellano de
los Howtos (Comos), así como la producción de documentos originales en
aquellos casos en los que no existe análogo en inglés. 

En el <bf/INSFLUG/ se orienta preferentemente a la traducción de
documentos breves, como los <em/COMOs/ y <em/PUFs/ (<bf/P/reguntas de
<bf/U/so <bf/F/recuente, las <it/FAQs/. <tt/:)/ ), etc. 

Diríjase a la sede del INSFLUG para más información al respecto.

En la sede del INSFLUG encontrará siempre las <bf/últimas/ versiones de
las traducciones:  <tt><htmlurl url="http://www.insflug.org" 
name="www.insflug.org"></tt>. Asegúrese de comprobar cuál es la última
versión disponible en el Insflug antes de bajar un documento de un
servidor réplica. 

Se proporciona también una lista de los servidores réplica (<it/mirror/)
del Insflug más cercanos a Vd., e información relativa a otros recursos en
castellano. 

Francisco José Montilla, <tt><htmlurl url="mailto:pacopepe@insflug.org" 
name="pacopepe@insflug.org"></tt>. 

</article>
