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.
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.
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.
Abuse:
Quake:
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:
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:
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:
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.
Otros simuladores son Galactic Civilizations, Flight Gear y FGFS (en desarrollo).
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:
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.
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
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