Introducción
Cuando me planteé el proyecto de traducir The Hobbit al español, no quise realizar simplemente una traducción más o menos acertada del juego, quería, por poner un símil, realizar una falsificación del juego original. El falsificador intenta reproducir hasta el último detalle de la obra, de modo que el observador no pueda distinguirla de la original. El objetivo era disfrutar de la obra original, con todos sus defectos y virtudes, y en mi propio idioma.
Esa ha sido la intención desde el primer momento, falsificar la jugabilidad y la mecánica del juego original, y de paso acabar con muchos de los mitos que rodean a este juego.
Para lograr esto, se requirió muchas horas de juego, realizar un mapeado exacto del mismo, estudiar el comportamiento de los todos los PSIs, y descubrir y resolver todos los puzles existentes.
También fue necesario un gran trabajo de ingeniería inversa para averiguar las propiedades de los objetos (su peso, solidez y tamaño), sus localidades iniciales, incluida la de los PSIs, los mensajes del sistema y todos los textos existentes e incluso la numeración original de todas las localidades. Una gran ayuda fue disponer del desensamblado del código fuente en Z80 realizado por Chris Wild y Sean Irvine (http://opensourcezx.untergrund.net/files/hobbit/hobbit.txt). Esto me permitió averiguar muchos de los mecanismos internos del juego.
La traducción
Una vez realizado el mapa, y teniendo toda la información necesaria para crear los objetos y los PSIs, tocaba la traducción de las descripciones de las localidades.
Lo primero fue comprobar que las descripciones originales coincidían con los párrafos exactos de la edición inglesa del libro, tal como Veronika había indicado en más de una entrevista. Así que la traducción, en su mayor parte, consistió en buscar esos mismos párrafos en la versión del libro en español y sustituirlos. No fue fácil, para lograrlo tuve que releerme muchas veces el libro y esto requirió mucho tiempo, pero valió la pena, porque la falsificación estaba tomando forma y pareciéndose mucho al original.
Ahora podía empezar a disfrutar de esta aventura en nuestro idioma.
La influencia de Aventuras AD
Como he comentado, el objetivo era hacer una imitación, lo más perfecta posible, de la jugabilidad y la mecánica del juego, pero no de la interfaz del mismo.
El juego original en este aspecto no me gustaba y pensé que podría mejorarlo si hacía que se pareciese a los juegos publicados por Aventuras AD. Al igual que ocurría en estas aventuras, yo quería que junto con la descripción de una localidad se mostrase también su imagen y una descripción breve de la misma.
En el Hobbit original, primero se muestra la imagen y la descripción breve de la localidad y luego la pantalla cambia a solo texto para mostrar la descripción y sitúa el prompt en una ventanita aparte, para que el usuario pueda introducir las órdenes.
El espejo donde me miraba era La Aventura Original, Jabato y en última instancia, The Curse of Rabenstein de Stefan Vogt (@8bit_era), que quizás fue la que más me influenció. Así que, era lógico que me decantase por utilizar el parser DAAD para la realización de la aventura.
Las herramientas
Teniendo en cuenta que este es un proyecto retro, orientado a máquinas de 8 y 16 bits, los parsers que disponía para codificar la aventura eran limitados. La elección de DAAD Ready fue obvia, pues ejecutando un simple fichero .BAT, nos crea directamente una imagen del disquete para el ordenador que hayamos elegido previamente, sin tenernos que preocupar de temas técnicos sobre qué ficheros hay que meter en los disquetes para tal o cual plataforma, ni de tener que buscar utilidades para hacerlo, ponerles las cabeceras necesarias, etc.
Cierto que previamente tonteé con algunos parsers como The Quill, pero no estaba en español y las limitaciones del mismo no permitían abordar semejante proyecto. Me acerque a PAW, en la plataforma Spectrum, pero seguía siendo demasiado limitado para llevar a cabo una reprogramación desde cero. Además, no había versiones para las máquinas de 16 bits Commodore Amiga y Atari ST.
Para este último se había publicado un parser llamado STAC, que no era otro que la versión para Atari ST del famoso The Graphic Adventure Creator (GAC) de Sean Ellis y publicado por Incentive Software Ltd.
De este parserhabía versiones para las principales máquinas de 8 bits, y además se habían publicado varios juegos comerciales realizados con ella, pero seguía siendo una herramienta muy limitada, y su versión para 16 bits prácticamente no aportaba nada nuevo con respecto a la de 8 bits.
DAAD Ready me llevó a descubrir EAAD (Editor de Aventuras AD), un IDE también realizado por Uto, expresamente diseñado para DAAD. En aquel momento, aun le faltaba mucho para ser una herramienta completa, pero, aun así, la prefería antes que herramientas como VSCode. Por suerte, un usuario del grupo de Telegram de RetroAventuras (@RetroAventuras), Ximocon, retomó el código original de EAAD y lo modifico mejorando muchas de sus funciones e integrándola en DAAD Ready, haciendo del editor una herramienta magnifica para programar aventuras. EAAD aún sigue en desarrollo y mejorando aún más, en espera de la su versión definitiva.
Para el mapeado utilicé Trizbort. Aunque en encontré varios mapas del juego, no todos coincidían y además estaban basados en la versión 1.1, que como pude comprobar, variaba levemente con la 1.2. Así que, lancé el emulador Vice de C64 y cargué el juego, tocaba darse una vuelta por las tierras salvajes.
A base de grabarme una y otra vez, logré visitar y documentar todas las localidades del juego, sus conexiones, localidades oscuras, localidades trampa, etc.
A cada localidad su gráfico
Los gráficos se realizaron partiendo de la captura de los originales. Según la máquina objetivo, seguía un proceso u otro. Por ejemplo, para C64
trataba la captura en PPaint en un Commodore Amiga 1200, cargando la paleta de 16 colores del C64 y reordenando los colores. Luego, con una utilidad llamada Pixcen, convertía el formato PGN a formato ART, legible por DAAD Ready. Esto dejaba el archivo listo para cargar en el DAAD.
Para las demás máquinas seguí las recomendaciones del manual de DAAD Ready.
Aunque me hubiera gustado que las versiones de 16 bits hubieran tenido sus propios gráficos mejorados, soy un pésimo grafista, así que me conformé con adaptar los gráficos del juego original de 8 bits.
Con las descripciones, las imágenes y todas las localidades debidamente conexionadas e implementadas en DAAD, ya podía darme una vuelta por la Tierra Media y visitar todos los rincones del juego. Ahora empezaba lo bueno, implementar los puzles y lo mejor, los malditos PSIs.
Los PSIs
Los PSIs en el juego tienen comportamientos diferentes según su personalidad y según el grupo al que pertenecen. Descubrí tres grupos por su comportamiento:
- Los PSIs buenos, que te ayudan en la aventura: Gandalf, Thorin, Elrond y Bardo. Son tus amigos, pero no dudarán en matarte si les atacas.
- Los PSIs neutrales, que pueden capturarte pero no te atacarán nunca: el elfo del bosque y el mayordomo del rey.
- Y luego están los malotes: los dos trolls, los seis trasgos, el wargo y el dragón.
Estudiar el comportamiento de cada uno de los PSIs no fue fácil. El mejor método que utilicé, aparte de estudiar los códigos fuente que andaban por internet, fue cargar el juego en un emulador, localizar el anillo, colocármelo (esto te hace invisible a los PSIs) y así poder estudiar el comportamiento del PSI, grabándome continuamente.
De este modo, descubrí que los trasgos tienen una ruta predeterminada a través de las cuevas de las Montañas Nubladas, que siempre es la misma, a no ser que fuerces a que la abandonen, atacándolos o cogiéndolos y llevándotelos a otro lugar (sí, puedes coger en brazos a los trasgos y al wargo). Entonces sus movimientos se vuelven impredecibles y vagan por cualquier parte, hasta que encuentran otra vez su camino y vuelven a retomar su ruta.
Algo curioso en los PSIs es que pueden cogerse entre ellos, dependiendo de su peso, porque no todos pesan igual. Por ejemplo, Gandalf puede coger a Thorin, pero Thorin no puede coger a Gandalf. Elrond puede coger a Bardo, pero Bardo no a Thorin. Una locura en lo que respecta al consumo de memoria, dada la cantidad de PSIs existentes.
Luego me encontré con el caso de las comidas. Es sabido que la comida entregada por Elrond en Rivendel otorga más fuerza y resistencia al jugador, hasta un límite. Si el jugador toma más de seis comidas, muere. A los PSIs les pasa lo mismo, pero no a todos igual; por ejemplo, Gandalf muere si toma dos comidas, Thorin tres, y Elrond puede aguantar siete comidas.
Hay infinidad de anécdotas que podría contar sobre el comportamiento de los PSIs, pero el artículo se haría interminable y además prefiero que las descubran ustedes.
La codificación
Codificar todo esto intentando ahorrar el máximo de memoria posible fue abrumador. Estaba obligado, después de implementar un algoritmo, a intentar optimizarlo lo máximo posible. Nada nuevo bajo los 8 bits.
Lo bueno es que DAAD es un lenguaje que te permite, con inventiva, implementar casi cualquier algoritmo, pudiéndose recrear el juego original y el comportamiento de los PSIs, casi al 100%.
Empecé trabajando por defecto con la versión de Spectrum Next, porque compilaba y cargaba muy rápido. Luego comprobaba los resultados en C64, MSX1, ZX Spectrum 128K, Amiga y Atari ST.
Cuando tenía aproximadamente el 75% del juego finalizado, las versiones de Spectrum empezaron a petar por falta de memoria. MSX aguantó un poco más, pero al final también cayó. Para poder seguir con C64 tuve que hacer un fork separado de las versiones de 16 bits, más optimizado y en la que hacía más uso de la lectura de disco gracias a la extensión Maluva incluida en DAAD Ready.
Al final conseguí por lo menos que entrara en C64. Eso sí, se me ha quedado clavada la espina de no poder haber sacado las versiones restantes de 8 bits: ZX Spectrum, MSX y Amstrad CPC. Pero la última palabra no está dicha, y algunos compañeros del canal Retro Aventuras han tomado la batuta del proyecto y ya tienen una versión de PC para Windows operativa, y es posible que en breve la veamos publicada. Quizás con algo de esfuerzo podamos ver más versiones en otras máquinas.
Programar una aventura como esta ha resultado ser un camino largo y lleno de obstáculos, pero ha sido muy satisfactorio, he disfrutado muchísimo del proceso, y verla publicada es un sueño cumplido.
Y ahora podéis disfrutarlo.
https://srhead.itch.io/el-hobbit
Fdo. Antonio J. Santos @ajsantosv