XENIO
versión 1.0


ÍNDICE


INTRODUCCIÓN

Xenio es un remake para Linux y Windows del juego clásico para MS-DOS Xonix, de Ilan Rav y Dani Katz.

El objetivo del juego es manejar un pequeño personaje (Xenio) por el escenario hasta rellenar más del 75 por ciento de su superficie.

El escenario está dividido en dos zonas: tierra y aire. Xenio se mueve principalmente por tierra, pero debe lanzarse al aire para conquistar nuevos territorios. Por el aire se mueven varias bolas que matan a Xenio si lo golpean directamente o a su rastro. También muere si se tropieza con su propio rastro o cambia de repente 180 grados. Si Xenio consigue volver a tierra evitando las bolas, su rastro y la zona de aire libre de bolas (si la hay) se convertirán en tierra. Cuando consiga que haya al menos el 75 por ciento de tierra, se pasará de nivel con una bola más. Para darle más interés al juego, Xenio también tiene un enemigo en tierra (un cazador).

Hay tres modos de juego y se pueden añadir otros nuevos. Cada modo tiene características diferentes:

Y algunas cosas más.

Xenio se presenta con tres modos de juego predefinidos (también llamados «skins»), a los que se pueden añadir otros personalizados. Los predefinidos son:

default

Es el considerado principal y en él he puesto las opciones que son más de mi gusto. En las características básicas se parece al juego clásico, pero tiene gráficos menos esquemáticos, fondos (fotografías), y la característica «modo prudente», que consiste en que Xenio se para en el borde antes de lanzarse al aire.

classic

Imita el juego Xonix original. Incluye una característica bastante especial que he llamado «permitir burbujas».

sxonix

Imita una versión (también muy antigua) llamada Super Xonix. No tiene cazador, empieza con solo dos bolas y el movimiento es «paso a paso», es decir, que Xenio solo se mueve mientras pulsamos las teclas. Incluye fondos de pantalla que recrean la litografía «Subiendo y bajando» de M. C. Escher (que usaba Super Xonix)1 y otras ilusiones ópticas. Una característica de esta versión que no he imitado es que disponía de un modo head to tead para dos jugadores.

Nota 1. Gracias a Henry Lim, Abaroth y Niels Iburg.


INSTALACIÓN

Xenio está escrito en el lenguaje de programación sdlBasic, que depende de la biblioteca SDL. Además de la parte básica de SDL, también usa otras bibliotecas opcionales.

Windows

El paquete incluye todas los ficheros DLL necesarios para Windows, de manera que en este sistema basta ejecutar xenio.bat (xenio_eng.bat para la versión con textos en inglés).

Linux

En Linux sí hay que instalar previamente SDL (si es que no lo está ya), incluyendo algunas bibliotecas opcionales. La forma de hacer esto depende de la distribución. En el caso de Ubuntu (probado en Ubuntu 11.10) hay que instalar los paquetes:

Esto se puede hacer ejecutando desde un terminal:

   $ sudo apt-get install libSDL-mixer1.2 libsdl-image1.2 libsdl-ttf2.0-0 libsdl-net1.2

Una vez instalado SDL se puede ejecutar Xenio invocando el fichero xenio o el script xenio-eng.sh para la versión en inglés.


MANEJO

Lo primero que aparece al ejecutar Xenio es el selector de skin. Como indica el letrero, hay que usar las teclas de cursor izquierda y derecha para cambiar de skin e Intro para seleccionar el que se muestra.

Xenio se maneja exclusivamente con el teclado. Tú controlas el personajillo cuadrado que aparece arriba (ese es Xenio) con las cuatro flechas. Dependiendo del skin seleccionado, el movimiento será continuo o no. En default o classic, Xenio se moverá en la dirección indicada aun cuando soltemos la tecla. En sxonix el movimiento es paso a paso, si soltamos la tecla, el personaje se para.

Realmente, ambos tipos de movimientos están disponibles en todos los skins; lo que varía es la forma de producirlos. En los skins de movimiento continuo se puede usar el modo «paso a paso» pulsando la tecla Control izquierdo a la vez que la tecla de cursor. Y en sxonix podemos usar Control izquierdo si queremos movimiento continuo.

Aunque tanto en default como en classic el movimiento (sin usar Control) es continuo, Xenio se comporta de una forma un poco distinta en ellos. El skin default, usa lo que he llamado «modo prudente», que consiste en que, cuando está moviéndose por tierra, Xenio se para en la frontera con el aire (sin llegar a meterse). En classic en cambio Xenio se lanza al aire sin más.

Además de las teclas de flechas y control izquierdo, se pueden usar:


MÁS SOBRE EL JUEGO

En los skins default y classic, además de las bolas (que se mueven por el aire) hay un cazador (con apariencia de una calavera en default) que se mueve por la tierra. Este cazador es igual de mortal que las bolas.

En la barra inferior, a la derecha, aparece un tiempo que empieza en 60 y va disminuyendo (no necesariamente son segundos). Cuando este tiempo se agota no muere Xenio (como podría esperarse), sino que nace un nuevo cazador.

Cuando Xenio consigue rellenar el 75 por ciento del terreno pasa de nivel. Esto tiene varias consecuencias:

Además, al igual que cuando se produce una muerte, el tiempo se restablece y el número de cazadores vuelve a ser 1.

De todas formas, tanto el número de bolas como de cazadores tienen un límite: 15 en el caso de las bolas y 5 en el caso de los cazadores. Y la velocidad puede ir aumentando hasta un cierto valor máximo (puede aumentar 19 veces).

Como la mayoría de protagonistas de videojuegos, Xenio tiene más de una vida. El número inicial de vidas depende del skin. Cuando Xenio pierde la última de sus vidas, el juego termina.

La puntuación es de la siguiente forma:

Cuando termina el juego aparece un marcador que contiene las diez mejores puntuaciones (cada skin tiene su propio marcador). Si la puntuación está dentro de esas diez se debe escribir el nombre. El nombre no puede contener espacios, pero sí «letras no inglesas», como ñ o vocales acentuadas. Se puede usar la tecla de retroceso para borrar e intro para terminar. En sucesivas partidas (de la misma sesión) aparece el nombre ya escrito para confirmarlo con Intro.


AÑADIR SKINS

Un skin está definido en un subdirectorio del directorio skins. El nombre de este subdirectorio será el nombre del skin. Debe contener, al menos, los siguientes ficheros:

xenio.png, bola.png, caza.png

Las imágenes xenio.png, bola.png y caza.png deben ser cuadradas y del tamaño de la celdilla unidad o ligeramente mayores. Si son mayores conviene que el exceso sea par, para que queden perfectamente centradas. No pueden ser menores, pero se puede conseguir el mismo efecto usando transparencia.

Como sucede en el skin default, Xenio puede tener otros dos aspectos: uno para cuando va por el aire (xenio_aire.png) y otro para cuando muere (xenio_cazado.png; en realidad, más que morir se enfada). Estos ficheros (o uno de ellos) se usan automáticamente si se encuentran en el subdirectorio del skin.

screeenshot.jpg

Debe medir aproximadamente 300 × 200 píxeles.

hiscores

Es un fichero de texto muy simple, cada línea de la forma nombre:puntuación.

opciones.txt

Es un fichero de texto con una sintaxis sencilla. Cada línea debe ser una asignación de la forma:

   variable = valor

Las líneas que no contengan un signo de igualdad no se tienen en cuenta, lo cual permite añadir un título, comentarios, etc. Además, si aparece el carácter de comilla simple, se ignora el resto de la línea. Esto permite «desactivar» una asignación o añadir un comentario a su derecha.

Las asignaciones pueden ir en cualquier orden. Además, ninguna de ellas es obligatoria, pues el programa hace asignaciones por defecto. Veamos todas las variables, en algunos casos con su valor por defecto.

celdilla = 14

Es la dimensión, en píxeles, horizontal y vertical, de la celdilla unidad. Es como si el terreno de juego fuera un tablero de casillas cuadradas de dicho tamaño.

color_tierra, color_aire, color_fuego

Son los colores de las dos zonas del tablero, más el del rastro de Xenio cuando va por el aire (que es de fuego). Este color se «mezcla» con la imagen de fondo, si se usan imágenes de fondo. Debe ser un número entre 0 y 16777215 (ffffff en hexadecimal), dos bytes para cada componente RGB.

color_info, color_texto

Son los colores del fondo y del texto de la barra informativa de abajo.

dim_x = 64
dim_y = 38

Son las dimensiones, en celdillas, del terreno de juego, incluyendo el marco de tierra del principio.

info_h = 28

Es la altura, en píxeles, de la barra informativa.

font_info = skins/default/VDS_Bold.ttf

Es el tipo de letra (fichero ttf) usado para los textos de la barra informativa. La ruta debe estar indicada de forma relativa desde el directorio raíz del juego (no desde donde esté el fichero opciones.txt).

tam_font = 20

Es el tamaño, en puntos, de los textos de la barra informativa.

info_x1, info_x2, info_x3, info_x4, info_x5

Son los componentes horizontales (distancias al borde izquierdo) de las posiciones de las diferentes secciones de la barra informativa: bolas (x1), puntos (x2), vidas (x3), relleno (x4) y tiempo (x5). La posición se refiere a la de la esquina superior izquierda del rectángulo que contiene el texto.

Si situamos un texto muy a la izquierda o muy a la derecha se verá solo una parte o no se verá en absoluto. He usado este truco en el skin sxonix para que no aparezcan las secciones de los extremos, bolas y tiempo.

info_y

Es el componente vertical de las posiciones anteriores, medido (hacia abajo) desde el borde superior de la barra informativa.

usar_fondos = 1

Debe valer 1 (sí) o 0 (no). Si vale 1, debe existir al menos el fichero fondo1.jpg. Si existen fondo2.jpg, fondo3.jpg... se van usando al pasar de nivel. Cuando se llega al último fichero se empieza otra vez por fondo1.jpg. El tamaño de estas imágenes debe ser exactamente de (celdilla x dim_x) x (celdilla x dim_y).

modo_prudente = 1

Debe valer 1 (sí) o 0 (no). Si vale 1, se usa el «modo prudente» que hace que Xenio se pare en el borde de la tierra antes de lanzarse al aire.

modo_pocoapoco = 0

Debe valer 1 (sí) o 0 (no). Si vale 1 hay que mantener pulsada la tecla de dirección para que Xenio se mueva.

permitir_burbujas = 0

Debe valer 1 (sí) o 0 (no). Si vale 1 se pueden formar «burbujas», es decir, zonas de aire sin ninguna bola dentro. Esta característica imita al Xonix clásico.

ini_bolas = 3

Número inicial de bolas. Debe estar entre 1 y 15.

hay_cazas = 1

Debe valer 1 (sí) o 0 (no). Indica si hay o no cazador.

vidas = 3

Número de vidas al principio del juego.


EJECUCIÓN DESDE LA LÍNEA DE COMANDOS

El programa Xenio consiste en el fichero xenio.sdlbas, que es un fichero de texto con código sdlBasic. Este código es ejecutado por el intérprete de sdlBasic, también incluido. El intérprete para Windows es sdlBrt.exe y el de Linux es sdlBrt, pero se ha renombrado a xenio. La ejecución desde un intérprete de comandos es, en Windows:

   > sdlBrt.exe xenio.sdlbas

y en Linux:

   $ ./xenio

Para facilitar las cosas a los usuarios de Windows se ha incluido un fichero xenio.bat para hacer clic sobre él.

Xenio puede, alternativamente, mostrar los textos en inglés. Para ello hay que invocarlo con el parámetro eng (o en, o english).

   > sdlBrt.exe xenio.sdlbas eng
   $ ./xenio eng

Se han incluido los ficheros xenio_eng.bat y xenio_eng.sh para Windows y Linux.

En caso de que se quiera ejecutar el juego desde el principio sin sonidos (y no tener que pulsar S) hay que usar el parámetro ss (alternativas: sinsonido, ns, nosound).

En caso de que se quiera ejecutar el juego desde el principio a pantalla completa (y no tener que pulsar F o Alt+Intro) hay que usar el parámetro fs (alternativa: fullscreen). En cualquier caso, el selector de skin es en modo de ventana.

Los parámetros eng, ss y fs pueden usarse solos o combinados, en cualquier orden.