Juegos en Linux:
Shadow Warrior

Cómo ejecutar Shadow Warrior en GNU/Linux

¿Recordáis Shadow Warrior? Fue el siguiente juego publicado por 3D Realms, tras Duke Nukem 3D; en él manejábamos a una especie de ninja vacilón llamado Lo Wang, que luchaba contra la malvada corporación Zilla y sus esbirros. Pues bueno, hará cosa de un año se liberó su código fuente... Y ni cortos ni perezosos, tanto la gente de Icculus.org como Jonathon Fowler —autor del puerto JFDuke3D— sacaron rápidamente sendas versiones para GNU/Linux.

Bien, aquí comentaré el modo de jugar a Shadow Warrior con el puerto JFSW, desarrollado por Jonathon Fowler, que es en realidad la única opción asequible. El puerto de Icculus.org se trata de algo experimental y no está lo suficientemente maduro para jugar con él... Si alguien quiere probarlo, allá él; yo ni siquiera he conseguido compilarlo.

Requisitos

Bueno, pues en principio necesitaremos las siguientes librerías. En cualquier distribución moderna de GNU/Linux de uso general —dejando aparte minidistros como Damn Small Linux y similares— vendrán ya instaladas todas o casi todas:

  • libSDL 1.2 o superior.
  • libgtk-x11 2.0 o superior.
  • libPango 1.0 o superior.
  • libglib 2.0 o superior.
  • libSDL_mixer 1.2 o superior.
  • libcairo.
  • libfreetype.
  • libvorbis.
  • libogg.

Además, necesitaremos una máquina con, al menos, 32 MB de RAM y un procesador a 133 MHz... Bueno, ya me imagino que esto no será un problema; basta con un ordenador que no se esté cayendo a pedazos de puro viejo. Y si disponemos de aceleración gráfica, mejor que mejor, aunque no es imprescindible.

Configuración e instalación

Bueno, tenemos dos opciones. Descargarnos el código fuente del JFSW y compilarlo por nuestra cuenta, u obtener directamente unos binarios listos para usar. Ésta última es la opción más sencilla y cómoda para la gente que no quiera calentarse demasiado la cabeza, así que la comentaré en primer lugar.

Bien, podéis conseguir los binarios de www.arcades3d.com —mirad en la sección "Linux"—. Los compilé yo mismo, aplicando de paso los parches necesarios para activar el sonido —JFSW todavía no incluye soporte de forma oficial, aunque parece que en la próxima versión esto cambiará—.

Quizá la forma más práctica de descargarlos sea abriendo una consola de comandos y usando Wget, aunque cada uno tiene sus costumbres... En el siguiente ejemplo, creamos una carpeta para almacenar el Shadow Warrior y nos bajamos el archivo comprimido con los binarios:

$ mkdir juegos
$ cd juegos
$ mkdir swarrior
$ cd swarrior
$ wget http://www.arcades3d.com/linux/jfsw-20051009-bin.tar.bz2

Ahora hay que descomprimir el fichero que acabamos de descargar:

$ tar -jxvf jfsw_binarios_09102005.tar.bz2
$ ls

.
.
<-- Cuatro o cinco ficheros, entre ellos sw y build.
.
$

Ahora tendremos unos pocos archivos en nuestro recién creado directorio, entre ellos dos ejecutables; sw nos servirá para comenzar una partida a Shadow Warrior, y build para cargar el editor de mapas.

Pero para esto necesitaremos una copia del Shadow Warrior original. El juego puede encontrarse en algunas páginas dedicadas al abandonware; sin ir más lejos podéis mirar aquí en Arcades 3D, o en 3D Shooter Legends, entre otros sitios... En realidad no hace falta todo el contenido del juego; basta con los siguientes archivos —ojo a las minúsculas—:

  • tables.dat
  • sw.grp

Sólo con estos dos ya deberíamos jugar y editar mapas sin problemas —al fin y al cabo el juego propiamente dicho, los niveles, armas, enemigos y demás, está guardado en el archivo sw.grp—. No obstante, quizás alguien necesite también algún otro, como sw.rts o sw.cfg; aunque ya digo que en principio no hacen falta.

En fin, simplemente copiamos los archivos necesarios a la carpeta en la que descomprimimos los binarios. Y ya en ella, para comenzar una partida basta con ejecutar:

$ ./sw

O para cargar el editor de mapas Build:

$ ./build

Y bueno, nada más. Que disfrutéis del juego... Sólo me quedaría por comentar que las partidas guardadas y las capturas de pantalla que hagáis se guardan en una carpeta oculta, situada en ˜/.jfsw.

Antes de que se me olvide: el sonido tiene cierto bug, bastante incómodo, que puede hacer que el Shadow Warrior se quede colgado, acaparando memoria RAM y recursos del procesador hasta ser interrumpido por el propio sistema. Esto sólo sucede cuando la opción Ambience —dentro del menú Sound— está activada; así que lo primero que deberíais hacer al arrancar el juego es aseguraros de desactivarla.


Por supuesto, no pueden faltar un par de capturas de pantalla.
Por ejemplo, aquí tenéis el juego recién cargado y con el menú de presentación, corriendo en Vector Linux y mi escritorio Fluxbox:

El juego acaba de empezar...

Y aquí, jugando un mapa descargado de Internet, cuyo nombre he olvidado, pero con una dificultad cercana al sadismo. Los enemigos me han hecho morder el polvo y me consuelo toqueteando algunas opciones:

La frustración tiene nombre, pero no lo recuerdo.

Compilando el puerto JFSW

Bien, hemos visto cómo jugar a Shadow Warrior usando los binarios ya compilados que hay disponibles en Arcades 3D. Pero el mundo está lleno de geeks y demás gente maniática en general, así que explicaré también cómo compilar nuestros propios binarios a partir del código fuente. En realidad el método es el mismo que el que ya se comentó en su momento para el puerto JFDuke3D.

Antes de ponernos a hacer nada, necesitaremos unas cuantas cosas que paso a enumerar... Si os descargáis el código fuente de Arcades 3D —los dos enlaces que vienen a continuación— los parches para activar el sonido están ya incluidos en los archivos tar.bz2:

Muchas distribuciones de GNU/Linux incluirán ya en su instalación por defecto las librerías citadas; y las que no, probablemente las tengan disponibles en sus respectivos repositorios de paquetes. En todo caso, no debería resultar problemático obtenerlas, bien mediante herramientas como Apt, Emerge y similares, bien descargándolas directamente de sus sitios web:

De estas tres cosas, la única que suele presentar dificultades a la hora de instalarla es Fmod. Si no está en el repositorio de vuestra distribución para descargarla y configurarla automáticamente, habrá que hacerlo a mano, cosa que explico al final de este manual. De momento asumiré que ya la tenéis correctamente instalada y configurada.

Por lo demás, el código fuente y los parches que he citado arriba podéis encontrarlos en la sección "Linux" de Arcades 3D, o en la página oficial del puerto JFSW y sus foros.

Solucionado el asunto de las librerías ya podemos ponernos manos a la obra. Como somos muy ordenados, crearemos un directorio para guardar los archivos comprimidos del código fuente y sus respectivos parches. Por ejemplo, aquí le he llamado fuentes, y éstos serían los ficheros que contiene:

$ cd fuentes
$ ls

jfbuild_src_20051009.zip
jfsw_src_20051009.zip
jfbuild_src_20051009.patch
jfsw_src_20051009.patch

Y sin más dilación, procedemos a extraer el contenido de los archivos zip:

$ unzip jfbuild_src_20051009.zip
$ unzip jfsw_src_20051009.zip

Estos ficheros podrían estar también en formato tar.bz2, si los habéis descargado de Arcades 3D... Pero bueno, sea como sea, al descomprimirlos habrán aparecido dos nuevos directorios, llamados jfbuild_src_20051009 y jfsw_src_20051009 respectivamente.

Ahora hay que aplicar los dos parches. Son necesarios, al menos si queremos jugar con sonido... Supongo que esto cambiará cuando el soporte de sonido "oficial" para el JFSW/JFDuke3D esté completo. Así, ejecutamos lo siguiente:

$ patch -p0 < jfbuild_src_20051009.patch
$ patch -p0 < jfsw_src_20051009.patch

También necesitamos crear un enlace simbólico, llamado build, que apunte a la carpeta jfbuild_src_20051009. Este paso es importante, porque sin él la compilación se interrumpirá:

$ pwd
/home/usuario/fuentes
$ ln -s jfbuild_src_20051009 build

Hecho esto, accedemos al directorio que contiene las fuentes del JFSW. Antes de comenzar a compilar hay que hacer un pequeño cambio en el Makefile. Nada serio, por otra parte... Así que abrimos este fichero con nuestro editor de texto favorito:

$ cd jfsw_src_20051009
$ vi Makefile

Tendremos que buscar la siguiente línea, situada no muy lejos del principio del archivo:

-I$(INC:/=) -I$(EINC:/=) -I$(SRC)jmact -I$(SRC)jaudiolib #-I../jfaud/inc

Y sustituirla por ésta otra:

-I$(INC:/=) -I$(EINC:/=) -I$(SRC)jmact -I$(SRC)jaudiolib -I/usr/local/include/fmod #-I../jfaud/inc

Como podéis ver, lo único que cambia entre ellas es el texto resaltado en negrita (-I/usr/local/include/fmod). Esto es lo que hay que añadir. Es necesario hacerlo porque el parche de sonido tiene enlaces a la librería Fmod —que, como ya he dicho, deberíamos tener correctamente instalada—; de lo contrario, la compilación se interrumpirá con un error.

Y nada más. Grabamos los cambios, y por fin llega el momento de cruzar los dedos... Para compilar el código fuente tecleamos:

$ make

Y si todo ha ido bien —o sea, si habéis seguido correctamente los pasos de este tutorial... :risa:—, después de muchas letras y números y algún que otro warning sin importancia, encontraremos dos archivos ejecutables: sw —para jugar a Shadow Warrior— y build —el editor de niveles—.

Con ellos y los contenidos originales del juego —véase la primera parte de este manual— ya podremos jugar sin complicaciones.


Anexo: Instalando la librería Fmod

Lo prometido es deuda, y aquí explicaré cómo instalar manualmente la librería de sonido Fmod. Es algo que puede resultar problemático para la gente menos experimentada en GNU/Linux... De todos modos lo ideal sería descargarla de los repisotorios de paquetes de vuestras distribuciones; aunque ya me imagino que si estáis leyendo esto es porque, por lo que sea, no la habéis encontrado en ellos.

Pues nada, en primer lugar nos descargamos el archivo correspondiente —en el momento de escribir esto, fmodapi375linux.tar.gz—, y lo descomprimimos:

$ wget http://www.fmod.org/files/fmodapi375linux.tar.gz
$ tar -zxvf fmodapi375linux.tar.gz

A continuación tendremos que crear varias carpetas dentro de /usr/local/ —para hacerlo es probable que necesitéis acceder a la cuenta del administrador—. Así, por ejemplo:

$ su
Password: <-- Introducimos la contraseña del administrador...
# mkdir -p /usr/local/fmod/include/fmod
# mkdir -p /usr/local/fmod/lib

Y accedemos a los contenidos que acabamos de descomprimir para comenzar a copiar los archivos necesarios. Lo único que nos interesa aquí es la carpeta llamada api:

# cd fmodapi375linux
# cd api
# cp -v libfmod-3.75.so /usr/local/fmod/lib
# cp -v inc/* /usr/local/fmod/include/fmod

Ahora necesitamos crear algunos enlaces simbólicos, para que los diversos programas puedan encontrar fácilmente la librería Fmod cuando lo requieran:

# ln -s /usr/local/fmod/lib/libfmod-3.75.so /usr/local/fmod/lib/libfmod.so
# ln -s /usr/local/fmod/lib/libfmod-3.75.so /usr/local/lib/libfmod.so
# ln -s /usr/local/fmod/include/fmod /usr/local/include/fmod

Y ya lo tenemos... Al final no era tan difícil, ¿verdad?

- Manual escrito por Eye del Cul.


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