Juegos en Linux - Quake (B)

Cómo ejecutar Quake en GNU/Linux (usando el puerto GLQuake)

El camarada Karnizero escribió hace tiempo una pequeña guía en la que explicaba cómo jugar a Quake en GNU/Linux, usando el Dark Places Engine; un puerto del juego que incluye muchas características avanzadas, como luces de colores, modelos MD3, etc. Para quién tenga curiosidad, dicha guía se encuentra disponible aquí.

Pero hay otras alternativas a nuestro alcance. No todo el mundo posee un ordenador que pueda ejecutar con fluidez el puerto Dark Places. Otros jugadores, en cambio, estarán buscando una experiencia lo más parecida posible al Quake original... En estos casos, emplear GLQuake podría ser una buena opción; se trata de una aplicación robusta, muy ligera, que como su nombre indica adapta el juego para funcionar por OpenGL.

Instalando GLQuake en GNU/Linux

La instalación es sencilla y los requisitos mínimos; con un Pentium II y 32-64 MB de memoria RAM probablemente ya podremos jugar sin problemas. Eso sí, necesitaremos una tarjeta gráfica que proporcione aceleración 3D —hoy por hoy cualquiera que no sea una reliquia—, con sus controladores correctamente instalados y configurados; GLQuake emplea la extensión "glx" de XFree/Xorg.

Lo primero que deberíamos hacer es instalar nuestra copia de Quake, bien ejecutando en Windows —o Wine :risa:— el CD original, bien descomprimiendo una de tantas réplicas que circulan por Internet. Por cierto, es muy importante que los nombres de los archivos y directorios del juego estén en minúsculas; no olvidemos a estas alturas que en Unix/Linux PAK0.PAK y pak0.pak serían dos ficheros diferentes...

El siguiente paso sería descargarse de Internet la versión para GNU/Linux de GLQuake. Por desgracia, la página web del autor parece que ya ha desaparecido; pero también la tenéis disponible en Arcades 3D, y quizás en algún otro sitio de la red.

Por ejemplo, si no deseamos perder tiempo con el navegador dando vueltas por Internet, bastaría con abrir una consola de comandos y teclear lo siguiente:

$ wget http://www.arcades3d.net/linux/archivos/glxquake.tar.bz2

Y en un periquete tendremos el archivo comprimido correspondiente (glxquake.tar.bz2) guardado en nuestro ordenador, probablemente en la carpeta principal de nuestro usuario. A continuación lo descomprimimos:

$ pwd
/home/chiquito/
$ tar -jxvf glxquake.tar.bz2 ← Extraemos el contenido de glxquake.tar.gz.

Esto habrá creado una nueva carpeta dentro del directorio actual, llamada glxquake. En ella encontraremos tres ficheros: el típico README, un parche de código fuente —mfcns_glquake.patch, que ahora no nos interesa para nada—, y un binario con el nombre de glquake. Éste es el único importante, y hay que copiarlo a la carpeta en la que hayamos instalado el Quake original.

Por ejemplo:

$ cd glxquake
$ cp glquake /home/chiquito/juegos/quake

Y luego solamente nos quedaría arrancar el juego usando el GLQuake:

$ cd /home/chiquito/juegos/quake
$ ./glquake

Valdría la pena comentar que algunos detalles del funcionamiento de GLQuake pueden configurarse al arrancarlo desde la línea de comandos. Contamos con diversas opciones, como -width o -height (que sirven para especificar, en píxeles, la resolución de pantalla que usaremos), -window (arranca GLQuake en una ventana en lugar de hacerlo a pantalla completa), etc.

En fin, para que os hagáis una idea:

$ ./glquake -width 640 -height 480 ← Jugamos con una resolución de 640x480.
$ ./glquake -window -width 800 -height 600 ← ...O en una ventana de 800x600.
$ ./glquake -game jarl ← Cargamos GLQuake con la TC/modificación "jarl".

Por lo demás, supongo que casi todas las opciones que aplicábamos de este modo al Quake original funcionarán también aquí. Probablemente habrán otras exclusivas para GLQuake, pero tampoco es un asunto en el que yo haya curioseado mucho.


Por supuesto, no pueden faltar algunas capturas de pantalla con GLQuake funcionando. Para los más curiosos, el mapa que aparece en ellas es un proyecto que tengo a medio hacer, y que quizás algún día termine:

Arrancando el juego con GLQuake...

Arranque de GLQuake

Y ya en plena partida, recorriendo un lugar extraño y solitario:

Mapa: Perrera.bsp

Cómo compilar GLQuake

Hasta ahora he comentado el modo de jugar con el puerto GLQuake usando el archivo ejecutable que nos proporciona su autor. Se trata de la opción más fácil y recomendable, y la que probablemente escogerán la mayoría de los aficionados. Sin embargo, quién así lo prefiera también puede compilar el código fuente y hacerse su propio ejecutable a la medida de su ordenador.

¿Y cómo hacerlo? Bien, la idea es aplicar el parche que encontramos dentro del archivo glxquake.tar.bz2 al código fuente del Quake original. Éste viene en un fichero comprimido llamado q1source.zip, bastante fácil de localizar en Internet... Por ejemplo, podéis descargarlo de la siguiente dirección:
http://idgames.gameaholic.com/cgi-sql/file-info.sql/14549

También podemos conseguir ambos archivos —el código fuente de Quake, y el puerto GLQuake— desde la consola de comandos, tecleando las siguientes órdenes:

$ mkdir prueba
$ cd prueba
$ wget ftp://ftp.gamers.org/pub/games/idgames2/idstuff/source/q1source.zip
$ wget http://www.arcades3d.net/linux/archivos/glxquake.tar.bz2

Lo mejor sería tener un poco de orden y guardar los ficheros en una carpeta creada para ellos, como se ve arriba, pero bueno..., cada cuál tiene su manera de hacer las cosas.

Ahora descomprimimos lo que nos hemos bajado:

$ unzip q1source.zip
$ tar -jxvf glxquake.tar.bz2

Si todo ha ido correctamente, después de extraer el contenido de estos dos ficheros nos encontraremos con varios subdirectorios, que serán los siguientes:

$ pwd
/home/chiquito/prueba
$ ls
QW/
WinQuake/
glxquake/
..
.

Ahora aplicamos el parche del GLQuake al código del Quake original:

$ patch -p0 < glxquake/mfcns_glquake.patch

Y si no ha surgido ningún error inesperado ya podemos arremangarnos la camisa y ponernos a compilar. Accedemos pues a la carpeta llamada WinQuake, y tecleamos la palabra mágica...

$ cd WinQuake
$ make

Cruzamos los dedos, en la consola de comandos empiezan a aparecer montones de letras y números... Cuando el proceso termine —no suele durar mucho— ya tendremos preparado un archivo ejecutable para correr el GLQuake. Tan sólo nos queda localizarlo —estará dentro del subdirectorio bin— y copiarlo, como ya vimos en la primera parte del manual, en la carpeta del juego original.

$ cd bin
$ cp glquake /home/chiquito/juegos/quake

Y ahora sí que termina este manual. Que disfrutéis del legendario Quake..., y hasta la próxima entrega de los "Juegos en Linux".


Anexo: Algunas dudas que pueden surgir

En la página oficial de este GLQuake para GNU/Linux había información útil para resolver posibles inconvenientes; ahora no, porque ya no existe. A cambio, basándome en mi experiencia, os explico cómo solucionar un par de problemas bastante frecuentes:

Compilando GLQuake: Errores con glquake.h...

Esto me sucedía nada más comenzar la compilación; en concreto, el ordenador se quejaba de que "GL/gl.h: No existe el fichero o el directorio", entre otros mensajes parecidos. Claro, GLQuake requiere OpenGL —esto es de cajón—. Pero además, el compilador busca los "headers" necesarios en la carpeta /usr/include/GL. El problema lo resolví así:

$ su
Password:
# ln -s /usr/X11R6/include/GL /usr/include/GL

Sin sonido: Could not mmap /dev/dsp

Venía explicado en la página de GLQuake. El problema reside en que GLQuake emplea el sistema de sonido OSS en lugar de ALSA, que es el que viene por defecto en la mayoría de las distribuciones modernas de Linux. Por otra parte, ALSA puede emular OSS, y generalmente esta característica suele estar activada en casi cualquier instalación del sistema operativo. Si no es así, uno puede recompilar el kernel —los de la serie 2.6 ya incluyen alguna versión de ALSA—, o bien descargarse las librerías y los controladores de la página oficial (http://www.alsa-project.org/).

De todas formas parece que algunas tarjetas de sonido insisten en dar problemas; como la mía, una Intel integrada en la placa base. Después de mucho buscar en Internet, pude arreglarlo de la siguiente forma:

$ su:
Password:
# echo "glquake 0 0 direct" > /proc/asound/card0/pcm0p/oss

Y a continuación basta con arrancar GLQuake del modo habitual para escuchar sonido... El truquillo además puede funcionar con otros juegos que presenten este mismo problema —en el mensaje original que leí, hablaban de Quake 2—; sólo habría que sustituir "glquake" por el nombre del archivo ejecutable en cuestión.


Una útima captura de pantalla; GLQuake funcionando en mi escritorio Fluxbox:

GLQuake: paisajes inquietantes

- Manual escrito por Eye del Cul, en marzo de 2006.
- Revisado en enero de 2014 para corregir enlaces rotos.


Cumple con el estándar HTMLCumple con el estándar CSSApta para cualquier navegador

Podéis copiar libremente cualquier contenido de esta página. Si se trata del texto o las imágenes, mencionad la fuente (www.arcades3d.net)...