NetHack, el Juego de Rol Eterno

Las videoterminales de conexión serial ofrecían grandes ventajas sobre las impresoras anteriores: además de ser más veloces y ahorrar innumerables hojas de papel, permitían una mucho mejor interacción con las computadoras centrales.

Entre las características novedosas de las Siegler AD3M que empezaron a llegar a la Universidad de Berkeley a finales de los 70s, estuvo la capacidad de direccionar el cursor y la aparición de sus caracteres en la matriz gráfica de 24x80 caracteres en la pantalla. Así, los programas que podían hacerse en au propia versión de UNIX resultaban más interactivos, atractivos y potentes.

Las terminales eran caras, pero utilizando mucha buena voluntad podían elaborarse personajes a partir del uso de dichos caracteres. Quien tuviese imaginación, podía utilizarlos para crear en pantalla una primitiva historia de aventuras, donde era posible controlarse estos personajes en forma de letras móviles. Realmente debía aportarse la ensoñación, pero una vez aceptada esta forma expresiva, es posible desplegar una historia en la pantalla, y con ella, jugar.

ROGUE

Surge así a finales de 1980 el juego primordial para las videoterminales del UNIX de la Universidad de Berkeley, el ROGUE, de Michael C. Toy, Kennet C. R. C. Arnold y Wichman habían desarrollado para UNIX en 1980.

En gran medida se afianzaba en la mitología del juego de tablero DUNGEONS AND DRAGONS - muy influyente en los EE.UU. a mediados de los 70s. En esta instancia, en la pantalla de una terminal adosada a una computadora PDP-11 provista del UNIX de Berkeley se corría un archivo binario ejecutable. Se formaba entonces a gran velocidad una serie de laberintos interconectados, las mazmorras del terror o "Dungeons of Doom", a los que el jugador debía recorrer para encontrar objetos mágicos y combatir enemigos fantásticos.

Fue un éxito particularmente notable en los campus universitarios de la costa oeste de principio de los ochentas, donde el uso de los videojuegos novedosos amenizaba el aprendizaje de los más duros lenguajes de programación. Tan notable fue el caso, que los autores aprovecharon para publicar también toda una propuesta multimedia que lo engrandecía. Particularmente útiles fueron los libros de estrategia para este juego, "A Guide to the Dungeons of Doom", de la pluma Michael C. Toy y Kenneth C. R. C. Arnold, e incluso otro clásico "Further Exploration of the Dungeons of Doom", de la pluma de Ken Arromdee siguió en la verba. El fenómeno ROGUE incluso fue adquirido por la productora EPYX para su distribución licenciada, uno de los primeros casos de adquisición del mundo del video juego, en un momento se iniciaba la aparición de las primeras microcomputadoras hogareñas de fabricación masiva.

Sin embargo, la distribución de copias de los binarios de estos juegos sufría de varios problemas: no existía aún maquinaria lo suficientemente estandarizada como para asegurar volúmenes de mercado: existían centeneres de arquitecturas y funcionalidades diferentes. Junto con a los amuletos que el personaje buscaba en las mazmorras, existía un objetivo superior que habían buscado todos los programadores: el de contar con una máquina "universal" que permitiese correr programas sin ningún tipo de inconvenientes. Tal máquina se había afianzado como vehículo de creación: se trataba del sistema UNIX, que permitía programar y compilar de forma cruzada para muchas de las computadoras que comenzaban a aparecer.

Desde 1982 Jay Fenlason comenzó a escribir entonces un juego de mazmorras, la cual publicó originalmente en 1984 - con la ayuda de Kenny Woodland, Mike Thome y Jon Payne - bajo el nombre de HACK.

El código fuente en C de Fenlason no guardaba ninguna similitud con el de ROGUE, pero sí buscaba cumplir con la aplicación de los principios de juego descriptos en los libros de estrategia publicados por sus autores. En particular, estaba totalmente disponible de forma solidaria a la comunidad educativa en forma de ficheros compilables de libre copia (en lugar de estarlo en forma de binario precompilado para BSD). Además de lúdico, el sentido de esta colaboración solidaria consistía en que los estudiantes de la Universidad de California - e incluso los de colegios secundarios - pudiesen contar con código fuente portable y sencillo en lenguaje C a mano con el cual practicar las artes de la programación, y poder practicar compilación tanto en las minicomputadoras institucionales como en las computadoras hogareñas o personales que por entonces comenzaban a aparecer (en cualquiera de las arquitecturas posibles).

Como descendiente de diseño de ROGUE, HACK no revisa la temática del hacking (como podría parecer sugerido por su nombre), sino que hace pie en la exploración de cavernas o mazmorras simuladas, combinando elementos de rol fantástico: combates de capa, espada y hechicería.

La posibilidad de contar con Hack en forma de copias de su código fuente en lenguaje C, permitió que a partir del año 1985, múltiples programadores y fanáticos a lo comenzaran a manipular. Para finales de ese año Andries Brouwer lo sometó a una reprogramación intensiva, modificándolo de forma tal de dar con un estilo de juego ciertamente distinto al del ROGUE originario. A este le dio difusión prácticamente instantánea e igual de solidaria en al menos tres versiones del mismo para UNIX, utilizando los enlaces telefónicos UNIX de lo que se conoció como red USENET. Los números de versión que sugieren cambios inferiores a los que realmente tuvo: 1.0.1, 1.0.2, y 1.0.3.

Para 1984 ya se había establecido la microcomputadora estándar: la IBM PC con microprocesador de 16 bits, de arquitectura Intel x86. Don G. Kneller portó el Hack 1.0.3 a esta máquina merced al compilador C de Microsoft, y con ello al sistema operativo MS-DOS 3.02. Creó así el primer PC HACK 1.01e, el cual recibió soporte para gráficos de la microcomputadora DEC Rainbow en su versión 1.03g, y continuó programando hasta dar con cuatro versiones eventuales más (las 3.0, 3.2, 3.51, y 3.6).

Un poco más tarde, R. Black portó aquel PC HACK 3.51 a Lattice C y con ello pudo disfrutarlo en la microcomputadora hogareña Atari ST 520/1040, compilando así ST Hack 1.03 para la consonada plataforma Atari ST de 16 bits.

NetHack 1.4

A mediados de los ochentas en los EE.UU. se producía otro fenómeno: el de las redes de datos locales anexionadas a través de la ARPANET. Mike Stephenson recabó a través de esta red el código de varias versiones ya existentes, unificándolas en una sola, incorporandole muchas de las características nuevas. Fue este novedoso recurso de acceso telemático lo que inspiró el cambio de nombre, llamándoselo ahora NetHack 1.4 (escrito para el UNIX de Berkeley).

NetHack constituiría el fenómeno más duradero de software lúdico en desarrollo, incluso al día de hoy.

Stephenson coordinaría luego a través de la misma red a miles de jugadores y programadores, quienes le formularían propuestas e incluso acercarían mejoras y depurado independiente del NetHack 1.4 (conformando finalmente las versiones 2.2 y 2.3 de NetHack).

                        Coins
                        $ - 3 gold pieces
                        Weapons
                        a - a +1 long sword
                ------- b - a +1 lance (weapon in hand)
                |...... Armor
               #...<... c - an uncursed +1 ring mail (being worn)
               #|...... d - an uncursed +0 helmet (being worn)
               #|...... e - an uncursed +0 small shield (being worn)
               #|...... f - an uncursed +0 pair of leather gloves (being worn)
               #------- Comestibles
               ##       g - 13 uncursed apples
                ###     h - 10 uncursed carrots
                  #     (end) 
                  #
            -o-|--#
            |....|#
           #|.....#
            ..@u.|
            ------


Peron the Gallant              St:15 Dx:9 Co:11 In:5 Wi:15 Ch:18 Lawful
Dlvl:1 $:3 HP:16(16) Pw:6(6) AC:3 Xp:1

Desde principios de 1986 coordinó una re-escritura de amplias porciones del juego, encabezando un equipo que incluía a Ken Arromdee, Jean-Christophe Collet, Steve Creps, Eric Hendrickson, Izchak Miller, John Rupley, Mike Threepoint, y Janet Walz, que dieron con NetHack 3.0c.

El NetHack 3.0 resultó portado a la Atari por obra de Eric R. Smith, y en 1987 al sistema multitarea OS/2 para microcomputadoras clónicas de IBM por Timo Hakulinen, y al VMS de las minicomputadoras VAX de DEC por David Gentzel. Estos tres y Kevin Darcy se unirían al equipo principal de Desarrollo de NetHack para producir las revisiones subsecuentes a la 3.0.

Olaf Seibert portó NetHack 2.3 y 3.0 a la computadora hogareña Amiga, la postrera y potente apuesta de Commodore a las micros. Norm Meluch, Stephen Spackman y Pierre Martineau diseñaron código overlay para dar con PC NetHack 3.0. Johnny Lee portó NetHack 3.0 al Apple Macintosh II. Fueron ellos - junto a varios otros adeptos a Calabozos y Dragones - quienes continuaron mejoraron los portes a PC, Macintosh, y Amiga a lo largo de las siguientes revisiones posteriores a la versión 3.0 que se sucedieron durante la primer mitad de la década del 1990.

NetHack 3.1

Encabezado por Mike Stephenson y coordinado por Izchak Miller y Janet Walz, el Equipo de Desarrollo de NetHack que ahora incluía a Ken Arromdee, David Cohrs, Jean-Christophe Collet, Kevin Darcy, Matt Day, Timo Hakulinen, Steve Linhart, Dean Luick, Pat Rankin, Eric Raymond, y Eric Smith llevó la antigua versión 3.0 a una revisión radical. Reestructurando el diseño del juego, y reprogramaron partes principales del código, agregaron mazmorras múltiples, rutinas nuevas de presentación, búsquedas individuales nuevas para los personajes, un nuevo final del juego, y muchas otras características, para producir el NetHack 3.1 de 1990.

Ken Lorber, Gregg Wonderly y Greg Olson, con ayuda de Richard Addison, Mike Passaretti, y Olaf Seibert, desarrollaron NetHack 3.1 para la Commodore Amiga. Norm Meluch y Kevin Smolkowski, con ayuda de Carl Schelin, Stephen Spackman, Steve VanDevender, y Paul Winner, portaron este NetHack 3.1 a la IBM PC.

Jon Witte y Hao-yang Wang, con ayuda de Ross Brown, Mike Engber, David Hairston, Michael Hamel, Jonathan Handler, Johnny Lee, Tim Lennan, Rob Menke, y Andy Swanson, desarrollaron NetHack 3.1 para el Apple Macintosh, portándolo para MPW. Al seguir programando sobre este desarrollo, Bart House agregó un portado para Think C.

Timo Hakulinen portó NetHack 3.1 al IBM OS/2. Eric Smith portó NetHack 3.1 a la Atari. Pat Rankin, con ayuda de Joshua Delahunty, fue responsable de la versión para VMS del NetHack 3.1. Michael Allison portó NetHack 3.1 a Microsoft Windows NT.

Dean Luick, con ayuda de David Cohrs, desarrolló NetHack 3.1 para el sistema de ventanas gráficas de UNIX X11. Warwick Allison escribió una versión de NetHack con gráficas de mapas de bits por mosaicos para la Atari; luego contribuyó solidariamente el arte de sus mosaicos para el Equipo de Desarrollo de NetHack, y se agregó soporte de gráficas de mosaicos para otras plataformas.

El NetHack 3.1 fue la rama que estableció un juego sencillo que también pudo ser portado a múltiples máquinas japonesas, incluso consola de videojuegos de 8 bits, y les serviría de base de desarrollo adecuado.

NetHack 3.2

El Equipo de Desarrollo de NetHack 3.2 - compuesto por Michael Allison, Ken Arromdee, David Cohrs, Jessie Collet, Steve Creps, Kevin Darcy, Timo Hakulinen, Steve Linhart, Dean Luick, Pat Rankin, Eric Smith, Mike Stephenson, Janet Walz, y Paul Winner, lanzaron la versión 3.2 en abril de 1996.

La versión 3.2 marcó el décimo aniversario de la formación del equipo de desarrollo. En testamento a su dedicación al juego, los trece miembros del equipo original permanecieron en el equipo al comienzo del trabajo que daría con tal lanzamiento. Duante el intervalo entre el lanzamiento de la versión 3.1.3 y la 3.2, uno de los miembros fundadores del Equipo de Desarrollo de NetHack, el Dr. Izchak Miller fue diagnosticado con cáncer y falleció. El lanzamiento de la versiónm 3.2 le fue dedicada en su honor.

Variantes

Durante la vida de NetHack 3.1 y 3.2 en los eclécticos años 90s, varios entusiastas del juego le fueron agregando modificaciones propias e hicieron públicas tales variantes:

Tom Proudfoot y Yuval Oren crearon NetHack++ adaptándolo al lenguaje C++, el cual resultó pronto renombrado a un burlón NetHack--. Trabajando de forma independiente, Stephen White escribió NetHack Plus. Tom Proudfoot unió luego NetHack Plus y su NetHack-- para produicir el SLASH. Larry Stewart-Zerba y Warwick Allison mejoraron el sistema de hechicería con un parche denominado Wizard Patch. Warwick Allison también fue quien adaptó NetHack para que fuese capaz de utilizar la interfaz gráfica multiplataforma Qt.

Warren Cheung combinó al SLASH con el Wizard Patch para producir Slash'EM, y con la ayuda de Kevin Hugo le sumó mas características. Kevin se uniría luego al Equipo de Desarrollo de NetHack e incorporó lo mejor de dichas ideas en el nuevo NetHack 3.3.

La actualización final de 3.2 fue el lanzamiento de corrección de errores 3.2.3, que se lanzó simultáneamente con la 3.3.0 en diciambre de 1999 para dar cierre al milenio (¡y de paso corregir al "bello bug durmiente" Y2K que residía en el código desde sus albores!).

El Equipo de Desarrollo de NetHack 3.3, que consistía en Michael Allison, Ken Arromdee, David Cohrs, Jessie Collet, Steve Creps, Kevin Darcy, Timo Hakulinen, Kevin Hugo, Steve Linhart, Ken Lorber, Dean Luick, Pat Rankin, Eric Smith, Mike Stephenson, Janet Walz, y Paul Winner, lanzaron la versión 3.3.1 en agosto de 2000.

Si bien para este entonces NetHack ya constituia un artefacto del pasado computacional humano, lo cierto es que la versión 3.3 ofreció muchas funcionalidades por vez primera. Fue la primer versión en separar el concepto de raza y de rol. A los elfos los cambiaron de clase a raza, y se incorporaron a ellas los enanos, gnomos y orcos, junto a la establecida raza humana. Los roles de monje y guardabosque se unieron a los arqueólogos, bárbaros, cavernículas, sanadores, caballeros, sacerdote, rufián, samurai, turistas, valquirias, y por supuesto, magos. Fue también la primera versión en permitir montar un corcel, y la primera en contar con un sitio web público que listaba los bugs descubiertos. Conforme la lista de bugs fue en aumento, la 3.3 demostró ser lo suficientemente estable como para permanecer activa más de año y medio.

NetHack 3.4

El Equipo de Desarrollo de NetHack 3.4 consistió inicialmente en Michael Allison, Ken Arromdee, David Cohrs, Jessie Collet, Kevin Hugo, Ken Lorber, Dean Luick, Pat Rankin, Mike Stephenson, Janet Walz, y Paul Winner, al cual se unió Warwick Allison justo antes de lanzar NetHack 3.4.0 en marzo de 2002.

Como en la versión 3.3, varias personas contribuyeron al juego como un todo, así como soportaron portes para diferentes plataforman en las que correría:

Pat Rankin mantuvo la 3.4 para el veterano hardware que representaba el VAX/VMS.

Michael Allison se encargó 3.4 para la declinante pero extendida plataforma MS-DOS. Paul Winner y Yitzhak Sapir le dieron apoyo.

Dean Luick, Mark Modrall, y Kevin Hugo mantuvieron y mejoraron el porte de NetHack 3.4 para las Macintosh.

Michael Allison, David Cohrs, Alex Kompel, Dion Nicolaas, y Yitzhak Sapir mantuvieron y mejoraron 3.4 para afrontar la plataforma Microsoft Windows sin problema alguno. Alex Kompel contribuyó con una nueva interfaz gráfica para dicho porte. También lo hizo para el porte de 3.4.1 para Windows CE, destinado a dispositivos portátiles.

En lo que hacía al OS/2 de IBM, Ron Van Iwaarden fue el único encargado de mantener NetHack lo largo de sus varias versiones. Desafortunadamente tal sistema cayó en horfandad, y la última máquina OS/2 de Ron dejó de funcionar a comienzos de 2006, con lo cual cesó su muy agradecida contribución de varios años para la apuesta de IBM a un sistema operativo multiusuario incompatible.

Janne Salmijarvi y Teemu Suikki mantuvieron y mejoraron el porte para el ya vetusto Commodore Amiga de 3.4 luego que Janne Salmijarvi lo resurgiera para 3.3.1.

Christian “Marvin” Bressler mantuvo 3.4 para la obsoleta Atari ST luego de resurgirlo desde la versión 3.3.1, convirtiéndola en un artefacto de retrocómputo tan valioso como el Amuleto titular del Juego.

Hiatus

El lanzamiento de NetHack 3.4.3 en diciembre de 2003 marcó el comienzo de un largo intervalo sin cambios. Esto se debió a la ya notable obsolescencia de muchas de las plataformas, pero sobre todo a proveer una versión sumamente estable que permitió ser disfrutada por la comunidad por más de una década.

El Equipo de Desarrollo de Nethack sólo continuó su trabajo en el juego tras bambalinas y lentamente. Durante el mismo período en que nuevas variantes emergieron en la comunidad. Notablmenete "sporkhack" de Derek S. Ray, "unnethack" de Patric Mueller, "nitrohack" y sus sucesores, originalmente de Daniel Thaler y luego por Alex Smith, y "Dynahack" de Tung Nguyen. Alguna de estas variantes continúan siendo desarrolladas, mantenidas y disfrutadas por la comunidad hasta nuestros días.

Fueron las semillas dejadas en la tierra tecnológica generacional, que - regadas por la impaciencia de disfrutar del cómputo - siempren hacen brotar software nuevo en las máquinas.

En septiembre de 2014, una de ellas floreció: una instantánea de interín del código fuente bajo desarrollo se filtró, publicada por terceros. Debido a que dicho código fuente representaba un trabajo en progreso y no había sido sometido al proceso de depuración requerido para su lanzamiento de fé, se decidió que los números de versión de tal instantánea de código se retirarían y nunca se utilizarían en lanzamiento oficial de NetHack alguno. A tal efecto se publicó un anuncio en el sitio web oficial del Equipo de Desarrollo de NetHack, indicando que nunca existiría unas versiones oficiales 3.4.4, 3.5, o 3.5.0.

NetHack 3.6

En enero de 2015 se comenzaron los preparativos para lanzar NetHack 3.6. Al comienzo del desarrollo que eventualmente daría con la versión 3.6.0 oficializada, el Equipo de Desarrollo de NetHack consistió en Warwick Allison, Michael Allison, Ken Arromdee, David Cohrs, Jessie Collet, Ken Lorber, Dean Luick, Pat Rankin, Mike Stephenson, Janet Walz, y Paul Winner. Fue para comienzos de 2015 - antes del lanzamiento de 3.6.0 - que los nuevos miembros Sean Hunt, Pasi Kallinen, y Derek S. Ray se unieron al Equipo de Desarrollo.

Cerca del final del ciclo de este dilatado tren de desarrollo, uno de los más significativos inspiradores de muchas de las características humorísticas y divertidas del NetHack, el autor Terry Pratchett, falleció. NetHack 3.6.0 fue presentado entonces como un tributo en su memoria.

3.6.0 fue lanzado en diciembre de 2015, y el trabajo de unificación fue realizado por el equipo de desarrollo desde el lanzamiento de 3.4.3 con algunos de los parches más requeridos por la comunidad de sus más devotos seguidores. Se corrigieron muchos bugs y cierta parte del código fue sometida a una lógica reestructuración para adecuarlo al estudio de la programación moderna.

El Equipo de Desarrollo de NetHack, así como Steve VanDevender y Kevin Smolkowski, se aseguraron que NetHack 3.6 continuara operando en distintas variantes de UNIX, dádole mantenimiento a la antigua interfaz gráfica de operativa remota X11.

Ken Lorber, Haoyang Wang, Pat Rankin, y Dean Luick mantuvieron el porte de NetHack 3.6 para el Mac OS X de Apple.

Michael Allison, David Cohrs, Bart House, Pasi Kallinen, Alex Kompel, Dion Nicolaas, Derek S. Ray y Yitzhak Sapir mantuvieron el porte de NetHack 3.6 para Microsoft Windows.

Pat Rankin intentó afrontar el porte de NetHack 3.6 para VMS, pero tuvo problemas por hacerlo de forma emulada motivado en la inexistencia de una base de hardwaare real a su alcance. Kevin Smolkowski lo ha actualizado y probado en la versión más reciente (OpenVMS 8.4) capaz de correr en arquitectura Alpha e Integriy ("Itanium", alias IA64) pero no en VAX.

Ray Chason resurgió el porte de MS-DOS para 3.6 como un ejercicio de añorado retrocómputo, y contribuyó con las actualizaciones necesarias para una comunidad de diversas multiarquitecturas y multigeneraciones de jugadores.

A finales de abril de 2018 el reverdecimiento de las mismas motivado en la facilidad de contar con el código, y múltiples variedades de sistemas operativos hizo que se reportaran varios centenares de bugs, los cuales pudieron ser resueltos a la vez que se agregaban algunas características que fieron con NetHack 3.6.1. El equipo de Desarrollo de NetHack al tiempo de este lanzamiento consistía en Warwick Allison, Michael Allison, Ken Arromdee, David Cohrs, Jessie Collet, Pasi Kallinen, Ken Lorber, Dean Luick, Patric Mueller, Pat Rankin, Derek S. Ray, Alex Smith, Mike Stephenson, Janet Walz, y Paul Winner.

Para comienzos de mayo de 2019, otros 320 correcciones de bugs y mejoras adoptaron el porte a la librería de ventanas curses, lo cual produjo la versión 3.6.2 estabilizada. Bart House, quien había contribuido al juego desde el lugar de portador de arquitectura por muchas décadas, se unió finalmennte al veteranísimo Equipo de Desarrollo de NetHack a finales del mes.

NetHack 3.6.3 apareció el 5 de diciembre de 2019 con 190 bugs resueltos de la antigua NetHack 3.6.2, pero no duró dos semanas: inmediatamente los jugadores encontraron un bug de seguridad que fue resuelto en el lanzamiento de NetHack 3.6.4 del 18 de diciembre de 2019. Trabajos en dicho sentido permearon en NetHack 3.6.5 del 27 de enero de 2020, y del NetHack 3.6.6 del 8 de marzo de 2020, apremiados por tales inconvenientes.

Una vez resueltos estos, se dio con NetHack 3.6.7, lanzada en febrero de 2023 con una corrección simple de seguridad y las últimas correcciones de bugs. Este representa la última versión de este largo juego en continuo desarrollo, con una notable comunidad de adeptos a las aventuras.