El DAAD

En el último podcast del Carrascosa (@XCarrascosa),  se comentaba el recientemente aparecido CAAD 52. En un momento dado, y ante la vista de la portada, Xavi comenta: “Mapa y solución de Rudolphine Rur, una aventura antigua, que creo que se ha portado a otros sistemas con la aplicación esta que existe en Amiga creo”. WTF? Juanjo (Muñoz) puntualizó: ”la aplicación es el DAAD, que permite la conversión de aventuras a diferentes formatos a partir de un mismo código fuente.” Esto me hizo pensar que no todo el mundo tiene tan claro que es el DAAD ahora mismo, qué posibilidades tiene, ni cómo puede pasarse una antigua aventura de PAWS o Superglús a DAAD…

¿Qué es el DAAD? El DAAD es el parser utilizado por Aventuras AD para hacer sus aventuras. ¿Qué es un parser o sistema de autoría? Un “motor” de creación de aventuras conversacionales, que puede conjugar un lenguaje de programación especializado con un conjunto de aplicaciones que facilitan la creación de aventuras. ¿Qué es Aventuras AD? Fue la única empresa profesional que se dedicó entre finales de los años 80 y principios de los años 90 a la publicación de aventuras conversacionales en España. Pero si no sabes qué es Aventuras AD, posiblemente no estés leyendo esto.

Resumiendo, allá por el año 88 o 89, Andrés Samudio, a la postre director y guionista principal de Aventuras AD, contactó con Tim Gilberts, dueño de Gilsoft, la empresa que había comercializado el PAWS para comprarle una versión de su nuevo parser SWAN. Y por dos millones de pelas de la época, se trajo no solo el parser bajo el brazo, sino también al grandote inglés, para que personalizara el parser según las necesidades de Aventuras AD y para que enseñara su manejo al resto de equipo.

Como bien es sabido, Aventuras AD produjo seis aventuras con su parser, y a medida que las hacía, el parser fue evolucionando, al menos mientras Tim Gilberts permaneció en el equipo (todo esto lo cuenta muy bien Juanjo Muñoz en su libro “AD: Una aventura contada desde dentro”). Aventuras AD no resistió la crisis de los ordenadores de 8 bits, ni la llegada de las aventuras gráficas, y la compañía, y su parser desaparecieron, no sin antes llegar a ofrecer como premio del famoso concurso de aventuras, organizado por MicroHobby y Aventuras AD, una versión “capada” del parser (sin el editor gráfico y solo con el intérprete de MSDOS).

Algunos de los ganadores del concurso pronto vieron que las funcionalidades del DAAD podían ser emuladas o incluso mejoradas fácilmente, y surgieron los primeros parsers para MSDOS de principios de los noventa, como SINTAC de JSJ o CAECHO? de JAPS (aunque este último abandonaba el estilo PAWS/DAAD). Con el tiempo otros creadores de parser desarrollaron otros parsers tipo PAWS, como el NMP, Superglús o ngPAWS de Carlos Sánchez, Uto.

Cada uno de estos parsers, superando con mucho las capacidades del DAAD, podían generar juegos para el sistema, digamos “imperante” en su época: PC MSDOS en el caso de SINTAC, CAECHO? o NMP, multiplataforma (Windows, Linux, MAC) mediante máquinas virtuales en el caso de Inform o Superglús y finalmente aventuras directamente ejecutables en entornos web, como en el caso de ngPAWS, Fi-js  y algunos más.

Sin embargo, con el auge de aquello que llamamos comúnmente “retro”, algunos aficionados volvieron a sentir la necesidad de crear aventuras para estos sistemas y el panorama era muy distinto según la plataforma de su elección. En Spectrum seguía disponible el viejo PAWS en español (traído a España también por Aventuras AD) y se produjeron sagas míticas como “Los extraordinarios casos del Doctor Van Halen” de Josep Coletas , pero por ejemplo en Amstrad o Commodore apenas existían otras opciones más que usar las versiones inglesas de PAWS, GAC o The Quill, o incluso arrancarse con motores propios (este es el caso de, por ejemplo, “El Paciente 106” de ESP Soft)…

Hasta que en 2014, de forma ciertamente inesperada el DAAD se recuperó. Pedro Fernández, aka Rockersuke Moroboshi, aka ZonaFi explica de forma magistral (y muy amena) en su blog como se recuperó el DAAD y se consiguió el permiso de Andrés Samudio para su liberación y disfrute por parte de la comunidad.

A partir de los disquetes olvidados en el altillo de Samudio, un puñado de pioneros preservó, organizó y documentó el conjunto de herramientas que permiten la creación de una aventura en DAAD. Hay que tener en cuenta que el DAAD no es, como comentaron algunos de los ganadores del concurso de aventuras, un “super-PAWS”, en el sentido que no es un sistema integrado de creación de aventuras, sino un conjunto de compiladores, intérpretes y herramientas. Resumiendo mucho estas se componen de: un fichero fuente editable mediante un editor de texto, un compilador en modo comando que crea, a partir del código fuente, una base de datos ejecutable por cada uno de los interpretes existentes. Y esta es la fortaleza y la magia del DAAD, Tim Gilberts se curró interpretes para 8 máquinas diferentes: Spectrum, Amstrad, Amstrad PCW, Commodore, MSX, PC MSDOS, Atari ST y Amiga.

Pronto, aparecieron las primeras “nuevas” aventuras realizadas en DAAD: “En busca del parser perdido” de Rockersuke, “El Misterio de la isla de Tökland” o “Cero Absoluto” de ESP Soft, “Elf” de Javy Fernández… Paralelamente, la comunidad alrededor del recién recuperado parser DAAD se agrupó en un canal de Telegram, primero llamado @RetroDAAD y posteriormente @Retroaventuras… y organizó talleres de DAAD en quedadas y eventos retro. Además se empezó a pensar en formas de expandir el DAAD, como permitir la carga de imágenes bitmap desde disco en los ordenadores de 8 bits, lo que llevó a la creación de la extensión Maluva de Uto.

Hasta entonces el DAAD solo permitía gráficos vectoriales en los ordenadores de 8 bits, y gráficos bitmap en los ordenadores de 16 bits y el Amstrad PCW. Para ello existían varias herramientas, principalmente DG para Spectrum y DGM para Atari St. El DG de Spectrum incluía un editor de gráficos vectoriales al estilo del viejo PAWS, y permitía crear una “base de datos” gráfica que se combinaba con la “base de datos” textual para ejecutar nuestra aventura. Esto limitaba enormemente la memoria disponible para la aventura, ya que, tomando como base el Spectrum, con una memoria RAM de 48 Kb, DAAD necesita 2 Kb aproximadamente para el juego de caracteres y 16 Kb aproximadamente para el intérprete, con lo que tan solo quedan unos 30 Kb a repartir entre las bases de datos de texto y de gráficos… En cambio en ordenadores de 16 bits y el Amstrad PCW los gráficos pueden ser cargados “al vuelo” desde disco, con lo que la base de datos textual puede alcanzar aproximadamente unos 65 Kb.

Este comportamiento se emuló con Maluva. Los gráficos “bitmap” pueden cargarse desde disco “a demanda”, y por tanto no ocupan RAM, permitiendo así, aventuras más largas, y teóricamente, más vistosas (aunque hay gráficos vectoriales que son una maravilla).

Poco a poco ilustres del CAAD probaron con DAAD y así, ya en 2019 aparecieron obras como “La casa al otro lado de la tormenta” de Depresiv o “ZHL” de Kambre (ver esta entrada en este mismo blog). Y la extensión Maluva siguió creciendo. En DAAD, como en PAWS (y como después en SINTAC), los mensajes se escriben en una tabla (la tabla de mensajes) de tal forma que si al examinar una mesa queremos que aparezca: “Una desvencijada mesa llena de papeles y útiles de escritura.”, debemos añadir este mensaje a la tabla de mensajes, y luego referenciarlo desde el código fuente con un MESSAGE [nº mensaje]. Esto puede ser realmente fastidioso y pesado. Además, el viejo compilador de Tim Gilberts funciona, como hemos comentado, en MSDOS, y en ordenadores modernos no existía otra alternativa más que usar DOSBOX o similar. Escribir una aventura en estas condiciones podía resultar realmente heroico. Por suerte Uto siguió manos a la obra y acabó publicando un nuevo compilador de DAAD, que permitía el uso de sentencias tales como MESSAGE “Una desvencijada mesa llena de papeles y útiles de escritura.” y ejecutar el compilador desde la consola de comandos de Windows modernos, sin necesidad de usar DOSBOX. Simplificando mucho, el nuevo compilador DRC (DAAD Reborn Compiler) transformaba un nuevo formato de código fuente en la base de datos “entendible” por los viejos intérpretes, y convertía la tarea de programar en DAAD en algo menos arduo.

Sería justo mencionar también la contribución de Stefan Vogt y su papel en volver a implicar a Tim Gilberts en la recuperación de los intérpretes ingleses o la creación de un nuevo intérprete para MSX2 por parte de Natalia PC (lo que permite hacer uso de las asombrosas capacidades gráficas de este estándar) o el futuro intérprete en Phyton de Morgul, el paquete DAAD Ready que automatiza la creación de los soportes para los diferentes sistemas…

En definitiva, desde su recuperación el DAAD ha sufrido una evolución que permite ahora usarlo de forma cómoda, además de disponer de una documentación y tutoriales que permiten iniciarse en él de forma relativamente rápida. Así, todos aquellos interesados en crear aventuras para sistemas retro, pueden considerarlo como una de las alternativas más completas, a la espera de ver cómo evolucionan otras alternativas, como por ejemplo PunyInform.

En mi caso, como comentaba al principio, he usado el DAAD para portar una vieja aventura programada en 2005 en Superglús: «Las Aventuras de Rudolphine Rur«. El proceso dista mucho de ser un “proceso automático”, ya que si bien tanto Superglús como DAAD están ambos basados en el lenguaje de condactos de PAWS y comparten muchos elementos, es inevitable un proceso de adaptación.

En mi caso, y partiendo de la librería de inicio de DAAD, fui copiando y pegando cachos de código desde Superglús, y a partir de ahí todo era cuestión de revisar y cambiar lo que no funcionaba. Sin el DRC esto hubiera sido sino imposible, sí mucho más difícil. Ahora podíamos sustituir los WRITE “lo que sea” de Superglús por MESSAGE “lo que sea” de DAAD. Adaptar el vocabulario, revisar los procesos, buscar alternativa para algunos condactos no existentes en DAAD… El proceso siguió su curso de forma lenta, pero inesperadamente segura.

También había que lidiar con las limitaciones de memoria. En mi caso la primera decisión fue dividir la aventura en dos partes. Con ello conseguí “meter” todo el texto de la versión Superglús en las versiones de 16 bits, aunque me quedé cerca del límite teórico de 65 Kb y sobretodo sufrí con las limitaciones en el número de mensajes: a saber 255 mensajes de usuario, los que sobren hasta 255 en mensajes del sistema, y las localidades que sobren hasta un máximo de 255. Otra cuestión eran las versiones para 8 bits. Aun contando con la ventaja que Maluva nos permitía cargar los gráficos desde disco, el límite de 30 Kb seguía ahí (todavía no habían aparecido los XMESSAGES). Recortar desde 56 y 58 Kb que ocupaban más o menos ambas partes en PC a 30 Kb para que pudieran ejecutarse en Spectrum o Amstrad fue una dura prueba… Ahora entendía la ingrata tarea de Juanjo en AD. Descripciones enteras desaparecieron, mientras que otras fueron necesariamente mutiladas, pero finalmente se consiguió… ¡La aventura era jugable en 8 bits! Y entonces Uto publicó los XMESSAGES…

Los XMESSAGES es una capacidad de Maluva que permite almacenar los mensajes de texto en disco, y recuperarse “al vuelo”. Así, desaparecen de un plumazo las limitaciones de memoria y número de mensajes (y, teóricamente pueden realizarse en un Spectrum aventuras incluso más grandes que en un Amiga o Atari St, ya que en estos últimos no existe una extensión Maluva y las aventuras siguen teniendo un número de mensajes máximo). Eso sí, su uso se restringe, en la práctica, al uso conjunto con extensiones hardware modernas como el DIVMMC o M4, ya que cargar al vuelo un mensaje desde un disquete es irremediablemente demasiado lento.

Por esta razón Rudolphine en DAAD está disponible en tantas versiones para, por ejemplo, Spectrum o Amstrad: una versión cinta sin gráficos y con textos recortados (que se cargan por completo en RAM), una versión en disco con gráficos (que cargan bajo demanda desde el disco) pero con textos recortados cargados en la RAM y una versión DIVMMC, M4, etc., donde tanto los gráficos como la mayoría de los textos son cargados bajo demanda desde la SD. Como son dispositivos tan rápidos, la carga de estos XMESSAGES no sufre demora.

La verdad es que aunque en su momento pudo parecer un fastidio que los XMESSAGES aparecieran justo después de terminar el proceso de recorte de textos, ahora estoy contento. Esto me ha permitido publicar versiones que no necesitan de hardware extra (cintas, floppies) y, sinceramente, no sé si habría pasado por ello si hubiera sabido desde el principio que existía la posibilidad de publicar para SD con XMESSAGES.

La parte final, el proceso de betatesting (en mi caso sin betatester), la revisión de los textos (¡gracias de nuevo Ángel!), la transformación de los gráficos para las distintas versiones, la creación de los diferentes soportes, el diseño de manuales y carátulas, el proceso de duplicación de las versiones físicas, etc, etc, es otra aventura que quizá cuente en otra ocasión.

En todo caso… si tenéis una historia que contar y queréis, fruto de la nostalgia, publicarla en sistemas retro, DAAD es hoy un sistema lo suficientemente maduro para que sea altamente recomendable… y si, como yo, tienes una vieja aventura en PAWS o Superglús y la quieres portar a otro sistema, también.

Comentarios

  1. Gabriel García Márquez

    Hola, me parece una maravilla que en los años 20 aun se mantenga este estilo de hacer juegos. Me encanta y me parece insuperable a nivel creativo.

    Bravo!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *