Juegos en Linux:
Unreal Tournament

Cómo ejecutar Unreal Tournament en GNU/Linux

Llevaba mucho tiempo queriendo escribir este tutorial, porque Unreal Tournament es un juego que me gusta bastante. El problema era mi ordenador, una máquina de segunda mano con una tarjeta Intel, integrada, y sin aceleración gráfica... Pero mi buen amigo Anarko sí posee el sistema adecuado para jugarlo, y hace unos días pasamos una entretenida tarde intentando instalar Unreal Tournament en su Linux. Así que aquí va nuestra experiencia.

Unreal Tournament fue creado por los programadores de Epic, y se publicó en 1999; también se le llama UT99, para diferenciarlo de las secuelas que han ido apareciendo posteriormente. Se trata más bien de una variante del primer Unreal enfocada a las partidas por Internet. Los paisajes monumentales y la exploración relajada que hicieron a su antecesor tan especial —o tan aburrido, según algunos— se ven sustituidos aquí por una acción frenética contra bots y jugadores de la otra punta del mundo. Deathmatch en sus diversas variantes, vaya.

Bien, Unreal Tournament puede jugarse en Linux de forma nativa. El modo de hacerlo no es tan obvio como parecía, surgieron algunos errores inesperados... Pero, con todo, no es difícil de instalar.

Me queda decir que existen dos ediciones del juego: la normal, y la GOTY (de game of the year). La diferencia es que el Unreal Tournament GOTY se distribuía en dos discos, uno con el juego en sí y otro con texturas en alta resolución y mapas añadidos. Nosotros instalamos el Unreal Tournament original; sin embargo, lo que comentaremos aquí se aplica, a grandes rasgos, también a la edición GOTY.

Requisitos

Como siempre, veremos primero los requisitos necesarios para instalar y disfrutar el juego. Son los siguientes:

  • Linux con un kernel 2.2.x o superior —a día de hoy, cualquier Linux que tenga menos de diez años—.
  • Librerías SDL.
  • Librería libmikmod —en realidad creo que no es imprescindible, pero sin ella no escucharéis la música del juego—.
  • CD de Unreal Tournament. O CDs, en plural, si tenéis la edición GOTY.
  • Instaladores del juego para Linux.

Tanto SDL como libmikmod vendrán ya instaladas en la mayoría de las distribuciones grandes de Linux. Y si no es así, seguramente podréis descargarlas sin complicaciones con vuestros gestores de paquetes —Synaptic, Apt, etc—.

Los instaladores para Linux son dos: uno para la versión original de Unreal Tournament —buscad ut-install-436.run—, y otro para la edición GOTY —ut-install-436-goty.run—. Necesitaréis uno u otro, dependiendo de la edición del juego que queráis instalar. Más sobre ellos un poco más abajo.

Por último, para jugar también vais a necesitar una máquina con lo siguiente:

  • Procesador Pentium II o superior.
  • 64 MB de memoria RAM (128 MB recomendados).
  • Es recomendable disponer de una tarjeta gráfica con aceleración 3D —en Linux el juego usa, por defecto, OpenGL—; aunque no estrictamente necesario, dado que existe también un modo de renderización por software.
  • Tarjeta de sonido compatible con OSS/ALSA.
  • Un mínimo de 550 MB de espacio libre en el disco duro.

Naturalmente, damos por supuesto que tenéis vuestra tarjeta gráfica bien configurada en Linux; y también que estáis usando un sistema de escritorio con Xorg/XFree86 —si puedes leer esto en una ventanita de colores en tu monitor probablemente lo tienes, a no ser que estés usando alguna distro exótica configurada con alternativas como TinyX o SVGAlib—.

Descargando los instaladores

Antes dije que hay que descargar un instalador para Linux de Unreal Tournament, y que hay dos de ellos, correspondientes a la edición original del juego y a la GOTY. Bien, pues podéis conseguirlos de los enlaces que nombraré a continuación. Aunque tampoco son difíciles de encontrar en Google:

Para el Unreal Tournament original

El archivo necesario se llama ut-install-436.run, y lo podréis descargar de los siguientes sitios de Internet:

Para la edición Game of the Year (GOTY)

El instalador que os interesa tiene el nombre de ut-install-436-goty.run. Clicad en alguno de los siguientes enlaces para descargarlo:

Configuración e instalación

¿Ya tenéis todo lo necesario? ¿El disco del juego, el instalador para Linux, y las librerías mencionadas anteriormente? Pues nada, manos a la obra.

Vamos a suponer que habéis descargado el instalador en la carpeta /home/miusuario/ut.

Montamos el CD-ROM del juego

Lo primero es abrir una terminal, insertar el CD del juego, y montarlo para que el instalador lo pueda leer. En la mayoría de las distribuciones modernas de Linux —Ubuntu, por ejemplo— los CDs se montan automáticamente al meterlos en el lector, así que podríais pasar al siguiente paso... En fin, si podéis examinar el contenido del CD con un explorador de archivos, está montado. De lo contrario, tendréis que escribir un comando como éste:

$ mount /dev/cdrom

En mi caso al menos es así. Esto depende mucho de cómo esté configurado vuestro sistema, del contenido de vuestro archivo /etc/fstab y de otros detalles de los que suelen ocuparse los creadores de cada distribución de Linux. Pero insisto en que en cualquier sistema razonablemente moderno los CDs se montan solos...

Ejecutamos el instalador

En fin, ya con el CD montado, accedemos a la carpeta donde dejamos el instalador y le damos permisos de ejecución:

$ cd /home/miusuario/ut
$ chmod a+x ut-install-436.run

Y ahora accedemos a la cuenta del administrador, y lo ejecutamos:

$ su
Password: ← Introducimos la contraseña del administrador.
# ./ut-install-436.run --keep

Ojo, hay distribuciones de Linux, como Ubuntu, en las que no existe cuenta de administrador... Los comandos que necesitan ejecutarse de este modo se arrancan con sudo. Así, por ejemplo:

$ sudo ./ut-install-436.run --keep

Dependiendo de vuestro sistema, el instalador puede ejecutarse sin problemas, o pueden surgir errores indescifrables. En mi Vector Linux 5.9 arranca sin inconvenientes, pero en el Ubuntu 8.04 de mi amigo Anarko hubo que hacer algunos ajustes. Veamos algunos errores frecuentes y el modo de resolverlos.

Primer error misterioso

Precisamente, hemos usado la opción --keep para esquivar el primero de estos errores. No sé para qué sirve ni qué es exactamente lo que hace. Pero suele suceder que, si ejecutáis el instalador así:

# ./ut-intall-436.run

...Se interrumpa al cabo de unos segundos con un mensaje como éste —en mi ordenador—:

Uncompressing Unreal Tournament version 436 Linux installtrap: usage: trap [lp] [arg signal_spec ...]

O este otro —en Ubuntu 8.04—:

Uncompressing Unreal Tournament version 436 Linux installtrap: 154: cd /tmp; /bin/rm -rf $tmpdir; exit $res; bad trap

Y el modo de evitarlos es precisamente arrancar el instalador escribiendo esa opción --keep. Quién lo hubiese adivinado... Desde aquí sólo me queda agradecer a Alejandro la entrada sobre el tema que escribió en Demonios y Pingüinos.

Segundo error misterioso

Otra cosa que puede suceder es que la ejecución del instalador se interrumpa con el siguiente mensaje abominable —o similar—:

Verifying archive integrity...tail: no se puede abrir «+6» para lectura: No existe el fichero o el directorio.

Esto tiene un remedio, y es ejecutar el instalador de la siguiente manera:

# export _POSIX2_VERSION=199209
# ./ut-install-436.run --keep

En Ubuntu me tropecé con este problema, pero en mi Vector Linux no. Desconozco la razón. Parece que en algún sitio —¿tail, tal vez?— se ha roto la compatibilidad hacia atrás con versiones más viejas...

Esperamos a que el instalador termine

Bueno, resueltos estos errores el instalador del juego debería funcionar sin problemas. Puede ejecutarse en modo texto en una terminal, o en una ventanita del escritorio. En cualquiera de los dos casos, las cuatro opciones que hay se explican por sí mismas.

El instalador propone instalar el juego en el directorio /usr/local/games/ut, y los ejecutables para arrancarlo en /usr/local/bin. No os aconsejo que lo cambiéis, a no ser que tengáis claro qué estáis haciendo y por qué.

La gran mayoría de vosotros querrá usar OpenGL como modo gráfico por defecto, o default renderer... Y también tendréis que decir que sí a Instalar Binary Files e Instalar Data Files.

Y bueno, cuando el instalador comience la tarea y vuestro lector de CD-ROM empiece a trabajar, sólo queda esperar...

Antes de arrancar el juego

Cuando el instalador termine, tendréis Unreal Tournament esperando en vuestro disco duro. ¿Listo para jugar? Pues tal vez..., o tal vez no. Podéis averiguarlo ejecutando el juego desde la terminal:

$ ut

Si todo va bien, felicidades. De lo contrario, seguid leyendo.

Tercer error misterioso

Puede que el juego no cargue, y os encontréis en la terminal con un error como éste:

dirname: missing operand
Pruebe `dirname --help' para más información.
Couldn't run Unreal Tournament (ut-bin). Is UT_DATA_PATH set?

Lo que pasa aquí es que el juego requiere una variable (UT_DATA_PATH) que no está especificada. Para corregir esta situación, sin salir de la terminal, teclearemos:

$ export UT_DATA_PATH=/usr/local/games/ut/System

Y procederemos a arrancar el juego como antes.

Esto habría que hacerlo cada vez que queramos jugar a Unreal Tournament. Cosa que sería un coñazo; alguien estará pensando, "¿de verdad tengo que escribir toda esa mierda antes de poner en marcha el juego?". Y la respuesta es... ¡No! Simplemente crearemos un script que lo haga por nosotros.

Abrid un editor de texto y teclead en él lo siguiente:

#!/bin/bash
export UT_DATA_PATH=/usr/local/games/ut/System
ut

Lo guardáis con el nombre de unreal, le dais permisos de ejecución, y lo movéis al directorio /usr/local/bin:

$ chmod +x unreal
$ su

Password:
# mv unreal /usr/local/bin

Y de este modo, cada vez que queráis ejecutar el juego, bastará con que abráis una terminal y escribáis:

$ unreal

Cuarto error misterioso

Una vez solucionado el problema anterior, después de haber creado el susodicho script y de usarlo para arrancar el juego, es posible que Unreal Tournament siga negándose a funcionar. Ahora, con esta excusa:

Failed to load `Entry': Can't find file `Entry'
Failed to load `Level None.MyLevel': Can't find file `Entry'
appError called:
Failed to enter Entry: Can't find file `Entry'

Esto sucede porque el instalador ha copiado los mapas del juego comprimidos. Si listáis el contenido del directorio /usr/local/games/ut/Maps, veréis que todos los archivos que se guardan ahí —los niveles— tienen una extensión .unr.uz.

Bien, habrá que descomprimirlos —¿que por qué esto no se hace automáticamente al instalar el juego? Hmm, buena pregunta—. Para ello, entraremos en la cuenta del administrador y usaremos ucc, un descompresor hecho a propósito para esto que se incluye con Unreal Tournament, y que se instala en el sistema junto con el juego.

Quiero decir, algo así:

$ su
Password:
# export UT_DATA_PATH=/usr/local/games/ut/System
# cd /usr/local/games/ut/Maps
# for i in *unr.uz; do ucc decompress ../Maps/$i; done

Esto tardará un rato.

Lo que hemos hecho ha sido crear una lista con todos los ficheros .unr.uz de la carpeta Maps —mediante la orden for i in *unr.uz— e ir descomprimiéndolos uno por uno —ucc decompress ../Maps/$i—. (Hablando con propiedad, for no "crea listas", sino bucles que avanzan de forma recursiva; algo como "por cada uno de éstos, haz esto otro que indico aquí". Pero como explicación rápida e improvisada para la gente que no programa ordenadores creo que, más o menos, sirve).

Los mapas descomprimidos, en contra de lo que podríamos esperar, no se guardarán en la carpeta Maps del juego, sino en la carpeta personal del usuario que los haya descomprimido. Como en este caso se trataba del administrador, estarán en /root/.loki/ut/System.

Así que procedemos a moverlos al árbol de directorios del juego en /usr/local/games/ut:

# pwd
/usr/local/games/ut/Maps
# mv /root/.loki/ut/System/*unr .

Y si queréis ahorrar espacio en el disco duro, podéis borrar los mapas comprimidos, que ya no os servirán de nada:

# rm *unr.uz

¿Qué pasa con los gráficos?

Otra cosa que puede ocurrir, y que no comenté en la primera versión de este texto, es que cuando ejecutéis el juego por primera vez os encontréis unos gráficos llenos de colores distorsionados e imposibles de seguir. Creo que se trata de un problema que no sufrirá todo el mundo, pero al menos a mí me ocurrió.

Sucede que el motor gráfico de UT99 cuenta con varios modos de renderización, y no todos tienen por qué funcionar bien en todos los sistemas. Cuál empleará en vuestro caso concreto viene definido en el archivo ~/.loki/ut/System/UnrealTournament.ini. Abridlo con un editor de texto, y buscad las siguientes líeas:

GameRenderDevice=OpenGLDrv.OpenGLRenderDevice
WindowedRenderDevice=OpenGLDrv.OpenGLRenderDevice
RenderDevice=OpenGLDrv.OpenGLRenderDevice

El valor que figura a la derecha —en este ejemplo, OpenGLDrv.OpenGLRenderDevice, que es el que suele venir por defecto— indica qué método de renderización usará el juego. Hay disponibles los siguientes:

  • OpenGLDrv.OpenGLRenderDevice: OpenGL. Debería funcionar bien, pero en mi caso no lo hizo. Y si os ocurre también a vosotros, usad alguno de los que menciono a continuación.
  • SDLGLDrv.SDLGLRenderDevice: OpenGL, pero usando las librerías SDL. Si el anterior da problemas, ésta es la elección obvia.
  • SDLSoftDrv.SDLSoftwareRenderDevice: El motor del juego puede usar también renderización por software. No es tan bonita como las anteriores, pero os permitirá jugar en máquinas sin aceleración gráfica.
  • GlideDrv.GlideRenderDevice: Glide es la API que usaban las viejas tarjetas gráficas de 3Dfx. Por si aún queda alguien con una de ellas...

En fin, si un método de renderización no da los resultados deseados, podéis cambiarlo editando las tres líneas mencionadas y escogiendo otro de los descritos.

Misión cumplida

Y ya está. A falta de más "errores misteriosos", ya deberíais poder disfrutar sin inconvenientes de Unreal Tournament. Si encontráis algún problema que no esté explicado aquí siempre podéis pedir auxilio en el foro de Arcades 3D, donde quizás alguien sepa cómo ayudaros. Yo he descrito aquí el proceso de instalación de Unreal Tournament en el Ubuntu de mi amiguete Anarko, y lo que más tarde vi en mi propio ordenador —Vector Linux 5.9—.

La verdad es que el juego tiene un funcionamiento impecable bajo Linux, siempre y cuando lo pongáis a pantalla completa —en una ventana de escritorio resulta poco práctico, porque hay que mantener el puntero del ratón dentro de ella—.

Nada más. A correr...


Y como hacemos siempre en estos tutoriales, las imprescindibles capturas de pantalla. Para que veáis que, efectivamente, Unreal Tournament funciona en GNU/Linux. :risa:

Aquí veis el instalador del juego ejecutándose en mi ordenador, en una bonita ventana de estilo Motif. En cambio, en el sistema de amigo Anarko arrancaba en una consola de texto. La verdad es que no sé cómo hacer que funcione de una manera o de otra; quizás haya alguna opción que no he visto... De todas formas, da igual; el instalador, en la consola o en una ventanita del escritorio, es el mismo:

Instalando Unreal Tournament

Y aquí debajo tenéis la pantalla de menús del juego, esa especie de escritorio virtual que usa Unreal Tournament. Esta captura está tomada en Ubuntu 8.04, en el ordenador de Anarko. Naturalmente, el juego puede ponerse a pantalla completa —de hecho, en principio se ejecuta siempre así—, y eso es lo más recomendable.

Unreal Tournament: pantalla de bienvenida.

Y por fin, lo que todos esperábamos... Una captura en plena partida. Como podéis ver, los mapas que ponían en aquel servidor no eran gran cosa. ¿Qué diseñador incompetente de niveles puede resistirse al encanto de las luces de colores?:

Luchando sin piedad hasta la derrota final.

- Manual escrito por Eye del Cul en abril de 2009.
- Revisado en enero de 2014.


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