Quake I&II Mini Como

Álvaro Villalba Poncet, alvarovp@mad.servicom.es

ver 0.7, 22 de Enero de 1999.


Guia para configurar el Quake I y el II en linux.

1. Introducción.

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

2. Requisitos.

2.1 Software.

Nos hacen falta los ejecutables para linux. Se pueden encontrar en muchos sitios , el principal es en idsoftware ( ftp.idsoftware.com) pero este server va muy lento, el mejor sitio para bajarse todo lo necesario es la página de quake en linux ( captured.com/threewave/linux/index.html). 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 quake.medina.net. Otros sitios donde se puede obtener casi todo el software necesario para el quake son:

Para descomprimir un fichero tgz o tar.gz ponemos tar zxfv nombre_del_fichero.

2.2 Hardware:

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

Configuración de la tarjeta de video.

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 /etc/vga/libvga.config (En RedHat) o en /etc/libvga.config (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).

Configuración de tarjetas aceleradoras.

Lo primero que necesitaremos es una tarjeta aceleradora; hasta la fecha solo están soportadas las basadas en el chip 3dfx (en el momento de escribir esto estaban portando los drivers para la banshee). Para poder usar una 3dfx necesitaremos bajarnos los siguientes ficheros:

Una vez obtenidos los ficheros necesarios lo primero que instalaremos son las glide, si nos las hemos bajado en rpm lo haremos con

[root@unsCAred][~]# rpm -Uhv Glide_V[tipo de tarjeta]-[versión].rpm
 
Si no disponemos del programa rpm podemos usar la utilidad rpm2cpio de la siguiente manera (desde el directorio / para que nos cree bien los directorios necesarios):
[root@unsCAred][/]# cd /
[root@unsCAred][/]# rpm2cpio archivo.rpm | cpio -i --make-directories
[root@unsCAred][/]# ldconfig
Para comprobar que las librerías están correctamente instaladas ejecutamos en el shell el comando:
[root@unsCAred][~]# ldconfig -p|grep libglide
[root@unsCAred][~]# ldconfig -p|grep libtexus

Ahora instalamos el fichero Glide2x_SDK-2.1, del que solo necesitamos los includes Si tenemos rpm ponemos

[root@unsCAred][~]# rpm -Uhv Glide2x_SDK-2.1-3.i386.rpm
Si no disponemos de rpm usamos nuevamente el rpm2cpio de la siguiente manera:
[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
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 libglide en /usr/local/glide/lib, lo hacemos con lo siguiente:
[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@

Ahora que ya hemos instalado correctamente las librerías glide nos vamos a por las Mesa. Haremos lo siguiente:

[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
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: 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:
[root@unsCAred][/tmp/Mesa-3.0]# cd lib
[root@unsCAred][/tmp/Mesa-3.0/lib]# cp -a * /usr/lib
He puesto el /usr/lib porque es donde las tenía yo instaladas, si ya las teníamos en /usr/local/lib las copiaremos ahí. Si no las teníamos instaladas antes lo hacemos poniendo:
[root@unsCAred][/tmp/Mesa-3.0]# make install

Para concluir, ejecutamos como root el comando 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).

Configuración del ratón.

Para que funcione el ratón tenemos que editar otra vez el fichero de configuración de la vga (ver Configuración de la tarjeta de video) y poner el tipo de ratón que tenemos. Es necesario tener el gpm funcionando, que es el que se encarga de controlar el ratón en la consola. Si usa el gpm con el parámetro -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 -mdev [device] y la velocidad con -mrate [speed]. Los parámetros por defecto son /dev/mouse para el -mdev y 1200 para el -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 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:

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

Configuración de la tarjeta de sonido.

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

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 OSS, el egcs o el pgcc como compilador y un kernel de la serie 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 gcc y no con el egcs/pgcc).

3. Quake :

Bueno, se acabaron las configuraciones, ahora toca jugar :)

Necesitamos los archivos pak0.pak (para la share) y el pak0.pak y 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 /mnt/dos.

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

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

Ahí luego ponemos vid_mode N siendo 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 -width ANCHO -height ALTO, sino arrancará por defecto en 640x480 (otra resolución muy utilizada es 512x384).

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

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

3.1 Principales problemas:

Pueden ser:

3.2 Juego en Red (Quake World).

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 pukka (con lo segundo disfrutas ;) ).

Cambia totalmente tu visión del juego y la manera de jugar, los movimientos se aceleran en un 200%. 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 Software.) se puede encontrar un ejecutable que se llama 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 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 qspy o el 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 xqf que es un magnífico interface para el qspy hecho con gtk (para las X), se puede bajar de www.botik.ru/~roma/quake

Para instalar el qw lo único que hay que hacer es descomprimir el archivo qwcl en el directorio /usr/local/games/quake y poner ./qwcl +connect IP siendo IP la dirección en donde queremos jugar (ver 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 glqwcl. Para indicarle la resolución de pantalla se hace como en el glquake mediante los parámetros -width ANCHO -height ALTO.

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

3.3 Añadidos al quake.

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

  1. Se crea el directorio /usr/local/games/quake/ctf
  2. Se descomprimen los ficheros del ctf en ese directorio.
  3. Desde el directorio quake se pone ./squake -game ctf.

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 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 www.ionet.net/~mimpchnk)

Otra variación muy interesante es el Team Fortress que se puede encontrar en www.planetfortress.com/teamfortress>. Es básicamente el ctf solo que podemos elegir distintos 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 Rocket Arena es otra variación del quake, el argunmento es muy simple, 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 http://www.planetquake.com/servers/arena/.

4. Quake II

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:

Y listo, ya podemos jugar.

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

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

Para arrancarlo usamos:

        ./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)
Eso solo se hace la primera vez, luego con poner ./quake2 sirve.

4.1 Juego en Red

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

Hay dos opciones, server list, update server list y luego una lista. Le damos a server list y añadimos las direcciones de servers que queramos , luego le damos a 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 +connect IP desde la consola del quake2 (que sale dandole a la tecla º). Previamente habremos configurado nuestro jugador en player config (el nombre, el modelo, la skin, el tipo de conexión y las opciones de descarga que se usan para bajarse 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 Software., que además del ejecutable traen un 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 :) ).

4.2 Principales Problemas

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

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

4.3 Principales modificaciones.

Al igual que para quake, para quake 2 hay muchas modificaciones, la más extendida es el 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 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 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 Team Fortress del quake2 se llama Weapons Factory, que se puede obtener de http://www.captured.com/weaponsfactory/.

El Rocket Arena 2 tambien está disponible y se puede bajar de la misma página que el Rocket Arena para quake (ver Añadidos al quake..

5. Cómo montar un server dedicado.

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

5.1 Quake

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

El screen lo puede encontrar en prep.ai.mit.edu/pub/gnu Lo único que sale al arrancar un server dedicado es una consola de texto.

5.2 QuakeWorld.

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

Una modificación muy interesante para montar un servidor es el 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 http://www.demolition.org/k/.

5.3 Quake 2

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

6. Problemas con las tarjetas aceleradoras.

Hay una página con una faq muy completa sobre las 3dfx en www.voodooextreme.com/3Fingers. Tambien hay un programa llamado GlideControl disponible en 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:

7. Servidores españoles de quake.

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

8. Agradecimientos:

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

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

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

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

9. Anexo: El INSFLUG

El INSFLUG forma parte del grupo internacional 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 INSFLUG se orienta preferentemente a la traducción de documentos breves, como los COMOs y PUFs (Preguntas de Uso Frecuente, las FAQs. :) ), etc.

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

En la sede del INSFLUG encontrará siempre las últimas versiones de las traducciones: www.insflug.org. 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 (mirror) del Insflug más cercanos a Vd., e información relativa a otros recursos en castellano.

Francisco José Montilla, pacopepe@insflug.org.