Artículo 1b: EL MUNDO LUDICO EN LINUX

Autor: (c) Santiago Romero
Revista: Solo Linux (Prensa Técnica) nº 1, Marzo-1999


Existen juegos en Linux, y algunos realmente muy buenos. Compañías como ID Software han confiado en Linux (o Unix en general) para portar sus juegos (tales como Doom, Quake o Quake II) a este potente Sistema Operativo, un mercado nuevo bastante inexplorado en cuanto a sus capacidades gráficas. Veamos qué hay disponible para Linux y cómo conseguirlo.

La historia de los juegos de Unix va ligada a su funcionamiento. Al ser Unix (y Linux) un sistema multitarea, multiusuario, y eminentemente orientado a redes, los juegos que han predominado en este Sistema Operativo desde su creación han basado siempre su jugabilidad en sus capacidades multijugador, al contrario que los juegos de MSDOS y Windows cuya baza principal son los gráficos y sonidos, y donde sólo desde hace poco se incluye la posibilidad de utilizar redes IPX o TCP/IP para disfrutar varios jugadores simultáneamente en máquinas distintas.

Los primeros juegos de los que disfrutó Unix fueron juegos donde se utilizaban terminales de texto (es decir, juegos a base de carácteres alfanuméricos de texto), tales como juegos de Rol (donde el interface MUD hacía estragos en Universidades), o juegos de mazmorras (Dungeons) como NetHack, que sigue teniendo gran tirón actualmente en todo el mundo (basta buscar NetHack en www.yahoo.com para encontrar versiones para todos los gustos y plataformas Unix, Windows, Dos..., así como editores de mapeados, descripciones de personajes, etc.).

X Window, creado a mediados de los 80, introdujo una revolución en los juegos al dotar a estos de un interface gráfico quasi-estándar y de capacidades gráficas medias o altas, cosa que unida a su carácter multiplataforma lo hacía un buen portador del espiritu lúdico en cualquier máquina Unix. Pero el lector no debe pensar que al hablar de estos primeros juegos en X Window lo estemos haciendo con juegos de alta calidad, sino que nos referimos a juegos del estilo "joyas de la inteligencia", tipo Tetris, Colummns, Solitario, ajedrez, cartas, comecocos, etc. Juegos como Xchomp (el comecocos de X Window), Xtetris, Xbill (donde hemos de eliminar a un malvado personaje que quiere infectar ordenadores personales con un virus llamado Windows) o Mahjong (el juegos de las piezas chinas donde hay que realizar parejas) convivían en X Window, y siguen estando incluidos en las distribuciones de ahora.

Ha sido ahora cuando las compañías que diseñan videojuegos, así como los programadores freelance (por libre) han puesto sus ojos en Linux debido a la gran popularidad que ha adquirido este Sistema Operativo por su bajo precio, estabilidad y potencia. Y esta gran popularidad se debe, en parte, a la filosofía que siguen los juegos en Linux y el mismo S.O. en general: la filosofía GNU.


FILOSOFIA DE LINUX

La licencia GNU es una manera muy diferente de ver el software de la que estamos acostumbrados. Si se viene del mundo Windows, es muy común pensar que un juego en Linux tiene que valer también dinero. Es muy posible que se haya oido hablar del shareware, pero de los juegos freeware de MSDOS y Windows mejor ni hablar (aunque los haya de calidad). Pero en Linux, la mayoría de ellos están bajo la licencia GNU, lo cual quiere decir que estos pueden ser copiados, distribuidos y modificados por cualquiera, siendo esto totalmente legal. Los mismos autores suelen incluir el código fuente para aquel que quiera realizar modificaciones o recompilarlo de acuerdo a su sistema, con lo que se obtiene una nueva versión y toda la comunidad Linux resulta beneficiada.

Esta manera de ver el software lo hace evolucionar rápidamente, hace crecer el número de usuarios, y dota de gran popularidad a este S.O., además de permitirnos disfrutar de nuestro tiempo de ocio de una manera legal y con software que, pese a no ofrecer gran espectacularidad, cumple perfectamente su objetivo de entretener. Sin olvidar, claro está, algunos otros programas de gran capacidad y potencia gráfica, como veremos a continuación.


4 MANERAS DE ENTENDER LOS JUEGOS

Los juegos en Linux se basan principalmente en 4 soportes o librerías gráficas: la consola de texto Linux, la SVGALIB de consola Linux, los juegos del entorno de ventanas X Window, y el futuro (aunque ya empieza a funcionar) Interface General de Gráficos, GGI.

Los juegos de consola de texto son aquellos en que los gráficos (si es que los hay) están formados por carácteres alfanuméricos, encuadrando dentro de esta categoría a los juegos de rol (con mapeados a base de carácteres ASCII), a las aventuras conversacionales (donde el usuario debe introducir comandos que interpreta y ejecuta el programa, tales como "ir norte", "coger espada", etc, y juegos con gnuchess, el juego de ajedrez GNU, o los MUD.

La librería SVGALIB (basada en la anterior VGALIB) es una verdadera API de programación gráfica para la consola de Linux. Además de incluir funciones de inicialización de modos gráficos y diferentes primitivas para ellos, ésta incluye soporte de ratón y gestión de teclado para juegos, así como algunas funciones de OpenGL (vgaGL). Esta librería no necesita X Window para funcionar, soporta cambios de consola virtual (a otras consolas, sin perder el contenido de la consola gráfica), ratón de diversos tipos (Microsoft, Logitech, PS2), y bastantes tarjetas soportadas (aunque esta es su verdadera asignatura pendiente). Para configurar la SVGALIB para que utilice nuestra tarjeta hay que editar el fichero /etc/vga/libvga.config, proceso que resulta muy sencillo si nuestra tarjeta gráfica está entre las soportadas por SVGALIB. Si no es así, sólo tendremos acceso a una VGA estándar, con resoluciones como 320x200 y modos X (320x240, 360x400, etc.). Ya que la librería Svgalib accede a videomemoria (y recordemos que sólo el root tiene acceso directo al hardware), este tipo de juegos suele tener activado un bit llamado SetUID, que (explicado de una manera sencilla) hace quien ejecute un programa con dicho bit activado se convierta en el dueño del programa y, por tanto, de las Svgalib, con lo que la ejecución de instrucciones de acceso al hardware quedaría permitida (dicho bit se activa mediante chmod +s programa).

Los juegos basados en X Window son independientes de la plataforma de funcionamiento, y utilizan las funciones de X Window para sus capacidades gráficas, de forma que no necesitan el bit setuid para funcionar, con el consiguiente ahorro en seguridad (no se puede explotar un posible bug del programa). Suelen ser más lentos que sus equivalentes versiones en Svgalib.

Finalmente, el futuro parece ser el GGI, acrónimo de General Graphics Interface, que trata de crear un API común para todos los juegos de Linux, y que está dando sus primeros frutos (es posible compiler el emulador Xmame para esta plataforma), aunque habrá que esperar para averiguar sus verdaderas capacidades.

Por otra parte, actualmente se desarrolla una librería llamada aalib que se encarga de transformar a ASCII la salida de programas de SVGALIB, lo cual ha permitido crear un juego como TtyQuake, o Quake para terminales en modo texto (realmente sorprendente).

A continuación vamos a pasar a comentar qué software hay disponible para Linux, dónde puede conseguirse, y cualquier comentario relacionado con cada título.


JUEGOS DE ACCION

Abuse: Abuse es un juego de plataformas en 2D de aspecto espectacular, con fantásticos juegos de luces y acción a raudales, a base de disparos a una gran cantidad de enemigos. Está disponible en versión Svgalib y X Window, en ftp.island.net/pub/Linux/games.

Abuse:

Foto del abuse

Doom, Quake, Quake II, QuakeWorld: Los tres primeros títulos de los 4 que nombramos son probablemente los mejores Shoot-em-up's 3d de la historia (por la revolución que supusieron), y gracias a ID Software (ftp.idsoftware.com) podemos disfrutar de ellos en versión Linux. Están disponibles versiones de Svgalib (rundoom y squake) y de X11 (xdoom, x11quake, linuxquake, quake.x11, quakeII.x11), y pueden bajarse directamente del site de ID Software. Para utilizarlos basta instalar el juego original (el de MSDOS o Windows) en un directorio al que tengamos acceso desde Linux, y descomprimir el paquete bajado de Internet (normalmente conteniendo sólo un ejecutable para Linux) allí, de forma que utilice los ficheros de la versión que tenemos comprada. La mejor versión de Quake es la Quake.x11, que soporta modos de 16 y 24bpp, mientras que la más rápida es con diferencia la Svgalib quake (squake). Todas estas versiones soportan las mismas opciones que el Quake original (multiplayer, direct connect, sonido, los parches de bots y mapeados, etc.). Además es posible utilizar el paquete QuakeWorld en versión Linux para jugar partidas en Internet con otros usuarios (sin importar el S.O. que tengan instalado aquellos). Una versión algo especial es ttyquake, un ejecutable que utiliza aalib para mostrar Quake (se necesita squake de svgalib) en modo texto, de forma que pueda jugarse en simples terminales de texto. Para más información, la noticia y un link al programa pueden encontrarse en www.slashdot.org, en la sección de noticias de Septiembre.

Quake:

Foto del quake

Doom:
Foto del doom

Descent: Descent es un ejecutable para utilizar la versión de MSDOS del juego 3d Descent en Linux. Puede obtenerse de www.muppetlabs.com/linux/descent.

Xgalaga: Este juego es la conversión a X Window del clásico de naves Galaga, en el cual nos atacan hordas de naves desde la parte superior de la pantalla, que habremos de destruir con nuestro caza espacial. Este juego puede obtenerse de ftp.x.org/contrib/games.

Xgal:

Foto del xgal

Xblast y Xbomber son clones de conocido BomberMan (o dynablaster), donde varios jugadores (con capacidad multiplayer en red) disponen de la posibilidad de colocar bombas en un mapeado de bloques, tratando de destruir a los enemigos y resto de jugadores. URL:http://www.ikp.uni-koeln.de/~vogel/xblast/xblast.htm y ftp.x.org/contrib/games/multiplayer.

Xchomp / Xpacman: clones del archiconocido Pacman, donde deberemos comer los puntos y frutas de la pantalla evitando a nuestros enemigos los fantasmas. Xchomp puede obtenerse de ftp://ftp.yggdrasil.com/mirrors/sunsite/games/arcade/tetris/xchomp-linux.tar.z, y Xpacman de ftp.x.org/contrib/games.

Xchomp:

Foto del XChomp

Xbill es el clásico juego de Linux donde debemos evitar que un malvado personaje (Bill) infecte con un virus los ordenadores que aparecerán en la pantalla. Un juego obligatorio para los amantes de Linux, y que puede obtenerse de ftp.x.org:/contrib/games.

Zap'em/Xinvaders y Xtron son los clásicos juegos de Invaders y Tron en su versión Linux, disponibles en ftp://sunsite.unc.edu/pub/Linux/games/x11/action, ftp://ftp.yggdrasil.com/mirrors/sunsite/games/arcade/invaders/ y ftp://sunsite.unc.edu/pub/Linux/games/video.

Aparte de estos, otros juegos a considerar y que son fácilmente encontrables en cualquier buscador de Internet (como www.yahoo.com) son: Battalion, Boing y XBoing, CBZone, Firepower, Golddig, Gravity Wars, Jetpack, Koules, Last Defender, LinCycles, Lizards, Maelstrom, Mr. Is, Netmaze, Rocks 'n' Diamons, Sasteroids, SpaceBoom, Terroid, Thrust, Virtual Combat, XDigger, XEvil, Xkobo, XSoldier, Xoids, Xonix, Xspacewars, Gama 2, Hatman, iMaze y un largo etcétera.

Battalion:

Foto del battalion


SIMULADORES

ACM, Xpilot, fly8: Air Combat Simulator es un simulador de vuelo/combate multijugador, donde es posible volar en un Mig29 o F16, luchando contra otros jugadores en red (conectados al servidor, Acms), o contra drones o bots en el modo de 1 jugador. URL: ftp.x.org/contrib/games/multiplayer/. Por otra parte, Xpilot es un simulador de combate espacial y de maniobras tácticas para X Window, donde cada jugador posee un caza espacial con el que se mueve en un mundo virtual luchando contra otros pilotos de la red y contra la gravedad, descargable desde www.cs.uit/no/XPilot/, o desde ftp.x.org/contrib/games/multiplayer/. Fly8 es otro simulador de vuelo que incorpora además versiones de MSDOS y Windows (ftp://ise.canberra.edu.au/pub/ise/eyal/fly8/released).

Flying: Flying es un simulador físico que incorpora (gracias a sus capacidades de simulación) un juego de billar, otro de mesas de aire, snooker, curling, cannon, etc, todos ellos en red. Funciona en 256 colores y puede obtenerse de ftp.x.org/contrib/games/multitplayer.

Foto del flying

Freeciv / Lincity y Simcity demo: Estos 3 juegos son del tipo estrategia, siendo el primero de ellos un clon del juego de MSDOS Civilization (Freeciv en www.freeciv.org o http://www.daimi.aau.dk/~allan/freeciv.html), el segundo (Lincity, ftp://ftp.yggdrasil.com/mirrors/sunsite/games/strategy/) una versión/clon GNU del clásico SimCity, y el tercero el mismo SimCity comercial de Maxis (del que hay disponible una demo de prueba jugable durante 15 minutos cada partida) en versión Linux (ftp://ftp.yggdrasil.com/mirrors/sunsite/games/strategy/).

Otros simuladores son Galactic Civilizations, Flight Gear y FGFS (en desarrollo).


INTELIGENCIA

Juegos de inteligencia en Linux hay muchos, de modo que nos centraremos en los más interesantes, algunos incluidos en muchas distribuciones de Linux.

Pinfocom es un intérprete para las aventuras conversacionales creadas por la compañía Infocom. Ftp://sunsite.unc.edu /pub/Linux/games.

Xmine / Xdemineur / XnetMine: clones del conocido Buscaminas de Windows (incluso multiplayer, como en el caso de XnetMine), localizables en ftp://sunsite.unc.edu/pub/Linux/X11/xapps.

Xmahjongg / Xshangai /Xshisen: Versiones Linux del clásico juego oriental, donde hay que realizar parejas de fichas entre las que no están ocupadas por ambos bordes. (ftp://ftp.cdrom.com/pub/X11/contrib/games/).

Xjewels: clon del juego de SEGA Collumns. URL: ftp://ftp.yggdrasil.com/mirrors/sunsite/games/arcade/tetris/.

Xboard: Xboard es un interface gráfico para X Window que utiliza el programa GnuChess (de consola, en modo texto) para proporcionar un ajedrez gráfico con la calidad que atesora en cuanto a juego la versión de texto (hace de front-end del mismo). Puede obtenerse de www.research.digital.com/SRC/personal/Tim_Mann.

Nethack y Angband: Nethack es el clásico juego de mazmorras, en versión X Window, Dos y Windows, que más tirón tiene en cuanto a juegos de rol RogueLike. Está disponible en http://www.win.tue.nl/games/roguelike/nethack/ y http://www.uq.edu.au/~cswallis/nhqt/index.html, mientras que AngBand es un juego de rol basado en carácteres, disponible en ftp://export.andrew.cmu.edu/angband/Linux/. Tampoco hay que olvidarse de Anoraks of Doom (ftp://shannon.mee.tcd.ie/pub/Brian/) y CrossFire (ftp://ftp.ifi.uio.no/pub/crossfire), mezcla de Gauntlet y Nethack.

Boulder dash, Xpipeman y Wormz: Son clones de los juegos Boulder Dash (donde has de recoger todos los diamantes evitando a los enemigos y a las piedras que caen como consecuencia de tus excavaciones), PipeMan, donde debes construir una tuberia con las piezas que te proporcionan para llevar el agua a una parte concreta de la pantalla, y Worms, el juego de los gusanos de MSDOS. Los 2 primeros pueden encontrarse en ftp://ftp.yggdrasil.com/mirrors/sunsite/games/arcade/ y ftp://ftp.yggdrasil.com/mirrors/sunsite/games/strategy/, mientras que Wormz está disponible en varios formatos (incluido binario Linux) en la misma página Web de su autor: http://www.ms.mff.cuni.cz/~jkou5237/Wormz.html.

Más juegos de este tipo son 3dpong, Across, BD4, Chain Reaction, GemDropX, Awele,. Affenspiel, Cosmo, Pente, Xcogitate, xjig, Xquarto, XScrabble, Xsokoban, AntipoliX, Xfibs, altris, BlockOut (tetris 3d), Tetris, Netris, multitetris, xhextris, Xtris, xtet42, Xtic, XNibbles, Xbomb, TUD, TinyFugue, SpellCast, Snake, Seascape, Othello, Reversi, Mordor, Mmucl, Mancala, Labyrinth, Judge, Kmonop, etc.

XTetris:

Foto del Xtetris

Xbl:
Foto del XBl


CARTAS

Sol, xpat2, poker, DontSpace, Hearts, Caribean Studs, xblackjack, etc: Son versiones X Window de gran variedad de juegos de cartas, solitarios, etc. URL donde encontrar estos juegos: ftp.x.org/contrib/games, aunque también se puede buscar el vga_gamespack, de Svgalib, donde se incluye el solitario para consola aparte de otros juegos como Conecta4 (y en X, Xvier) o asteroids.

Foto del Solitario


EMULADORES

El mundo de la emulación también está muy presente en Linux, y todo ello gracias a que la mayoría de emuladores son creados en C puro (y recordemos que Unix es la cuna del C) y portados a muchas plataformas. En este sentido, Linux ofrece una gran variedad de emuladores, siendo más del 95% de ellos freeware. Mediante estos emuladores podemos obtener los cartuchos de juego en formato de fichero (ROM pasada a un fichero de PC), y jugarlos en nuestro emulador. El aspecto legal de las ROMs se basa en que para jugar a un determinado juego en un emulador se debe ser el poseedor de dicho cartucho original así como de la máquina, de otro modo se tiene un período de evaluación de 24 horas para probar el juego y emulador en cuestión. Otras ROMS, como los de máquinas antiguas, ya permiten la libre distribución de las mismas (como en el caso del Spectrum) sin ningún impedimento legal (si acaso alguna compañía en concreto no lo permite con sus juegos).

Emuladores en Linux los hay de Spectrum, Amstrad, MSX, SuperNintendo, Nintendo, MegaDrive, GameBoy, de ManicMiner (version portada a Linux), de máquinas recreativas y NeoGeo (Xmame) e incluso emuladores de MSDOS (dosemu, que funciona mejor que el propio DOS) y de Windows (Wine y Wabi), aunque estos no son emuladores de juegos propiamente dichos.

Snes9x y Snemul: SNes9x es el emulador de SuperNintendo de Dos, Windows y Linux, y que incorpora gran cantidad de opciones de emulación, como una sencilla emulación del chip FX incluido en algunos juegos para acelerar las funciones 3d de los mismos (StarFox, Stunt FX, Doom). La última versión publicada al cierre de este artículo era la versión 1.05, aunque también está disponible una version 0.99 con entorno gráfico (GUI) desde donde configurar todo y ejecutar los juegos. A partir de esta version (0.99), Snes9x incluye soporte para cargar ROMs comprimidas con gz o ZIP, con lo que las ROMS ocuparán menos espacio en el disco duro. El mismo programa incluye una versión de X Window (snes9x) y otra de Svgalib (ssnes9x, mucho más rápida) además de un fichero de ayuda, y puede conseguirse en www.euronet.nl/users/jkoot (sección downloads, Linux version) o a partir de www.emuspain.com, sección SuperNintendo, y pinchando en su página web. Snemul es otro emulador de SuperNintendo, disponible en www.eternite.com/SNEmul.

Spectrum, Spectemu, Xzx y x48 son emuladores del popular ordenador Spectrum Sinclair (48k y 128k), emulando el hardware extra disponible para éste y con soporte total de carga de ROMs. Proximamente se portará TAPER (el programa de conversión de cintas a formato TAP y TZX) a Linux, además de disponer de algunas utilidades de conversión. Para obtener versiones de estos emuladores de Spectrum, puede navegar por www.inf.bme.hu/~mszeredi/spectemu, o buscar PlanetSinclair o Spectrum World.

Manicminer: Conversión del clásico de Spectrum ManicMiner a Linux. No es un emulador en sí mismo pero es muy fiel al original, manteniendo su gran jugabilidad. Localizable en la página del autor de Wormz: http://www.ms.mff.cuni.cz/~jkou5237/.

Xmame: La estrella de los emuladores es el Machine Arcade Emulator, Xmame. Emula todas las recreativas (excepto CPS2 con encriptación y algunas otras variantes), como las SEGA, NeoGeo, etc. Dispone de cientos de juegos, como Gauntlet, Ghouls n Ghosts, Commando, Toki, juegos de la consola NeoGeo, etc. Se distribuye normalmente en código fuente (fácilmente compilable) aunque a partir de las páginas de www.davesclassics.com también se pueden llevar a versiones previamente compiladas para diferentes plataformas y procesadores. La última revisión antes de cerrar este artículo era la 0.33b4, y es recomendable compilarla para Svgalib (editando el makefile antes de seguir las simples instrucciones de compilación del fichero README) debido a la gran diferencia de velocidad con la versión X Window.

Vgameboy, Msx e iNES: Emuladores de GameBoy, Msx y Nintendo Entertainement System, siendo los 2 primeros originales de Marat Faizulin (buscar su nombre en Yahoo o Altavista o llegar a partir de www.davesclassics.com).

Unos links interesantes de donde conseguir estos emuladores y otros no comentados son:

www.davesclassics.com: La página Web de clásicos de Dave's incluye emuladores de todos los sistemas y para todos los sistemas, así como ROMs de cualquiera de los emuladores de consola y máquina recreativa.

www.ctv.es/USERS/jivars: Página de emuladores para Linux EmuLinux, española. Su webmaster lo puedes encontrar en el newsgroup es.comp.os.linux, como Earendil. Una página muy completa y bien organizada sobre emuladores en Linux.

www.emuspain.com: Una de las mejores páginas de España sobre emuladores.


DIRECCIONES DE INTERES

En Internet podemos encontrar la mayoría de los juegos comentados hoy, así como su código fuente. Una buena manera de empezar a buscar son las siguientes referencias, de juegos de Linux y de X11 en general:

 ID Software: ftp.idsoftware.com/idstuff
 LinuxGames: www.linuxgames.com
 Linux Quake Page: http://captured.com/threewave/linux
 The Linux Game Tome: http://www.cs.washington.edu/homes/tlau/tome/linux-game.html
 X11 Games: http://www.spinne.com/x/games/
 X Games: ftp.x.org/contrib/games/
 Buscador yahoo: www.yahoo.com


EN RESUMEN

El mundo de los juegos en Linux no está vacío, sino que es mucho más libre que en otros S.O. Hay muchos juegos GNU, donde no priman los gráficos pero sí la diversión y juegos comerciales en versión Linux, donde perdemos la licencia GNU pero ganamos en espectacularidad. Tampoco se nos debe olvidar el emulador de Windows WINE, que pese a estar en fase alpha ya comienza a emular aplicaciones de Windows95, e incluso en www.linuxgames.com hay una sección que explica cómo hacer funcionar StarCraft (juego de estrategia de Blizzard) en Linux mediante Wine y Windows95. Finalmente, los emuladores de otras máquinas completan una oferta magnífica en cuanto a diversión en Linux.

Para que Linux pueda competir con Windows en cuanto a juegos hace falta el apoyo de las empresas que los desarrollan, y para recordarles la existencia del mundo Linux nada mejor que algun email de petición amable por nuestra parte al buzón de sugerencias de cada grupo de programación. Linux ya es popular como Sistema Operativo, ahora hemos de hacerlo popular como plataforma de juegos. Empresas como ID ya se han fijado, pero falta nuestra presión para acelerar este avance en otras compañías. Hasta entonces, Linux tiene un oferta muy variada aunque no sea profesional toda ella, oferta que aumentará en gran cantidad con la aparición del GGI y de PenguinPlay, el equivalente a las DirectX para Linux, y que se está desarrollando actualmente.

Santiago Romero



Volver a la tabla de contenidos.