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 imaginación 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 pudiese controlarse estos
personajes en forma de letras móviles. Realmente debía aportarse la
ensoñación, pero una vez aceptado esta forma expresiva, es posible
desplegar una historia en la pantalla, y con ella, jugar. 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.