Juegos en Linux:
Enemy Lines 3

Cómo ejecutar Enemy Lines 3 en GNU/Linux

Introducción

Esta sección "Linux" llevaba algo más de un año congelada, desde que escribimos el tutorial dedicado a Unreal Tournament. En teoría el siguiente añadido iba a ser el primer Unreal, pero en fin, ya se sabe: si quieres hacer reír a los dioses, cuéntales tus planes... Así que en su lugar tenéis esta pequeña guía dedicada a un arcade gratuito, muy conocido por su autor y una docena de amigotes más: Enemy Lines 3. Pero puedo prometer y prometo que antes de que se termine el mundo en diciembre de 2012 explicaré cómo jugar a Unreal en Linux. Hasta entonces, esto es lo que hay...

De Enemy Lines 3 ya escribí un comentario, en el que describía más o menos lo que puede esperarse de él. Como he dicho arriba, se trata de un juego gratuito, creado de forma amateur entre 2005 y 2006 por su autor, Raphael Pikrin. Posee una mecánica muy simple —el objetivo es sobrevivir a los ataques de los "robots" y acumular puntuación—, y un aspecto visual colorista y bastante peculiar, basado en formas sencillas y colores sólidos. No es, ni lo pretende, una maravilla gráfica como Unreal, ni aspira a un argumento tan complejo ni una experiencia tan inmersiva como System Shock 2.

Se trata de un arcade poco popular. Y esto significa que, aunque quizás lo encontréis en los repositorios de las distros más grandes —en Debian sí que lo tenían, y seguramente en Ubuntu también—, si usáis otras más minoritarias tendréis que seguir los pasos de esta guía. Así que vamos a ello.

Requisitos

En principio no son muchos. Pero sucede que el autor publica el juego en forma de código fuente, por lo que tendréis que compilarlo, y esto requiere obviamente un compilador y las librerías adecuadas. De todos modos, como en Arcades 3D somos muy buenos y nos desvivimos por vosotros —bueno, algo así—, hemos colgado una copia ya compilada y lista para usar, para ahorraros el trabajo.

Aquí va la lista:

  • Para compilarlo, necesitaréis GCC. El código original del autor fue escrito para GCC 3.4.6 y anteriores, y falla en las versiones modernas —las de la serie 4.x—. Sin embargo, la gente de Debian preparó algunos parches que solventan esto.
  • Librería SDL (de la rama 1.2).
  • Librería SDL_ttf.
  • Librería SDL_mixer.
  • cURL.

Estas cosas casi con seguridad sí estarán en los repositorios de vuestras distros, y lo más sencillo es que las instaléis desde ellos. En algunos repositorios —Ubuntu me viene a la cabeza—, las librerías vienen divididas en dos paquetes distintos, uno para la librería en sí, y otro, que suele tener la terminación dev o devel, con el código necesario para compilar otros programas que usen esa librería; si es vuestro caso, instalad ambos.

Y para jugar vais a necesitar una máquina con lo siguiente:

  • Aceleración gráfica. No hace falta, ni mucho menos, una tarjeta de última generación; con algo tan modesto como una Nvidia TNT2 de 32 MB bastará.
  • Quizás sean suficientes 32 MB de memoria RAM, pero para que funcione de forma fluida es recomendable disponer al menos de 64 MB.

Si os sirve de indicación, yo solía jugar a Enemy Lines 3 con un Pentium II a 350 MHz y 96 MB de RAM, así que ya veis que el juego se conforma con poco.

Descargar el código fuente

Ya he dicho que la versión para Linux de Enemy Lines 3 se distribuye como código fuente. Podéis conseguirlo desde la página web del autor, o descargar la copia alojada aquí en Arcades 3D. Os recomendamos la segunda opción, porque incluye los parches mencionados arriba:

Si no queréis abrir el navegador sólo para eso, podéis usar Wget desde una terminal. Y lo mejor es que ni siquiera hace falta escribir el comando letra por letra: podéis copiar el texto siguiente, seleccionándolo con el botón izquierdo del ratón:

$ wget https://www.arcades3d.org/linux/archivos/enemylines3-1.2-7.tar.bz2

Y pegarlo en vuestra terminal preferida —Xterm, Aterm, o lo que sea que uséis— pulsando el botón del medio del ratón. Igual es una tontería, y algún lector resopla, pensando, "pues vaya descubrimiento, lo siguiente será hablarnos del botón de apagado del ordenador"; pero yo me enteré de este detallito después de varios años usando Linux.

Compilación

Ya he dicho que el código original del autor requería una versión de GCC de la serie 3 para su compilación. En fin, quizás algún repositorio de paquetes ofrezca todavía, por razones de compatibilidad, alguna de estas versiones viejas, pero hoy en 2014 lo veo bastante dudoso. Bajarlas e instalarlas a mano es un coñazo, y hacerlo sólo para compilar Enemy Lines 3 no tiene mucho sentido. Así que lo que haremos será usar los parches que amablemente preparó Debian, que para eso están.

Como siempre, lo primero es acceder a la carpeta en la que hayáis dejado el archivo enemylines3-1.2-7.tar.bz2, y descomprimirlo:

$ cd mi_carpeta_de_descargas
$ tar -jxvf enemylines3-1.2-7.tar.bz2

Esto crea una carpeta llamada enemylines3-1.2, que contiene todo el código fuente del juego. Antes de hacer otra cosa, obviamente, tendréis que acceder a ella:

$ cd enemylines3-1.2

Dentro, existe un subdirectorio llamado debian, que guarda los parches que permiten que el código funcione en versiones modernas de GCC. Y ahora mismo los aplicamos:

$ patch -p1 < debian/patches/02_fix_gcc4.1.patch
patching file font_ttf.h
patching file game.cc
patching file map.h

$ patch -p1 < debian/patches/fix_gcc4.3.patch
patching file random.cc
patching file c3_tpl.h

Después de esto, proceder a la compilación en sí es tan fácil como teclear make en la terminal:

$ make

Yo he probado con éxito las versiones 4.2.4 y 4.6.4 de GCC —y curiosamente, después de aplicar los parches de Debian, veo que la 3.4.6 sigue funcionando—. El asunto quedará resuelto en menos de cinco minutos en cualquier ordenador moderno.

Los binarios de Arcades 3D

Para ahorraros faena os ofrecemos aquí el juego ya compilado. Para ello usé Vector Linux con GCC 4.1.2 y Glibc 2.5. Supongo que esta copia debería funcionar sin problemas en la mayoría de sistemas, si cuentan con las librerías necesarias.

¿Y cuáles son esas librerías? Aquí tenéis la lista:

$ readelf -d enemylines3
(NEEDED)                     Shared library: [libSDL-1.2.so.0]
(NEEDED)                     Shared library: [libpthread.so.0]
(NEEDED)                     Shared library: [libGL.so.1]
(NEEDED)                     Shared library: [libGLU.so.1]
(NEEDED)                     Shared library: [libSDL_mixer-1.2.so.0]
(NEEDED)                     Shared library: [libSDL_ttf-2.0.so.0]
(NEEDED)                     Shared library: [libcurl.so.4]
(NEEDED)                     Shared library: [libstdc++.so.6]
(NEEDED)                     Shared library: [libm.so.6]
(NEEDED)                     Shared library: [libgcc_s.so.1]
(NEEDED)                     Shared library: [libc.so.6]
[...]

No son unas dependencias complicadas, e instalando SDL, SDL_mixer, SDL_ttf y cURL deberían quedar satisfechas.

Instalación

Por último, podéis instalar Enemy Lines 3 en vuestro sistema para disfrute de todos los que compartáis el ordenador, aunque no es imprescindible para jugar. Tanto si lo habéis compilado vosotros mismos como si habéis descargado la copia que os ofrecemos en Arcades 3D, el asunto se resuelve entrando en la carpeta del juego, accediendo a la cuenta del administrador, y escribiendo la orden make install. En resumen:

$ cd enemylines3-1.2
$ su

Password: ← Introducid la contraseña del administrador.
# make install

Esto copia el ejecutable del juego al directorio /usr/local/bin, y crea otra carpeta, dentro de /usr/local/share, para algunos archivos de datos. Con ello, Enemy Lines 3 estará disponible para todos los usuarios del sistema. Aunque, como ya dije antes, no es imprescindible hacerlo para poder jugar.


Como siempre, os dejamos con algunas capturas de pantalla.

En la primera tenemos la pantalla de presentación de Enemy Lines 3, que explica lo necesario para poder jugar..., y como veis es muy poco. El juego está corriendo en Vector Linux, en un sencillito gestor de ventanas llamado Karmen, que estuve probando por curiosidad:

Pantalla de presentación de Enemy Lines 3. Opera tu fimosis.

Comenzando un nuevo nivel... En Enemy Lines, los mapas se suceden aleatoriamente, y hay varios tipos de ellos con objetivos diferentes —matar cierto número de bichos, defender la parte central del escenario, encontrar las tres llaves, etc—, así que una partida no tiene por qué ser exactamente igual a la anterior:

Comenzando un nuevo nivel: consigue las 3 llaves.

Y para terminar, una captura que me muestra en pleno combate contra los malvados robots cabezones, y suspirando por la ayuda de los Cascos Azules de la ONU:

Robots avanzan implacables, es la lucha final en el país de los cubos azules.

- Manual escrito por Eye del Cul en agosto de 2010.
- Revisado en febrero 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)...