Como se hizo...Informes

Cómo se hizo… Innsmouth

Por Bitfans @Bit_fans

No existen demasiadas aventuras de texto, y en general videojuegos, basados en los relatos de H. P. Lovecraft. O al menos no tantos, si los comparamos con el elevado número de cuentos de este escritor norteamericano, considerado actualmente uno de los maestros de la literatura de terror y el creador del llamado «terror cósmico».

Innsmouth, publicado por Bitfans (@Bit_fans) en abril de este año, surgió de los abismos para sumarse a esa escasa lista de videojuegos. Veamos cómo se forjó todo…

El comienzo: cómo emerge un juego desde lo más profundo

Mientras finalizaba un par de proyectos vinculados al mundo del videojuego, casi a mediados de septiembre de 2023, decidí relajarme una temporada y leer algunos relatos que tenía pendientes. Como suele ser habitual en muchas personas, las temporadas de descanso terminan siendo finalmente épocas en las que se recopilan y surgen ideas para nuevos proyectos y creaciones, ya sean videojuegos o cualquier otro producto.

Yo tenía en mente leer una serie de historias que me habían recomendado de H. P. Lovecraft, al cual, por increíble que parezca, solo había leído puntualmente, por lo que no conocía muchas de sus obras. Así, terminé leyendo La sombra sobre Innsmouth, un relato fantástico y relativamente corto, pero cargado de intensidad y profundidad, nunca mejor dicho.

Tras sólo unos días de lectura, no pude evitar pensar en una adaptación a una aventura de texto, ya que tenía prácticamente todos los ingredientes necesarios para ello (sorprendentemente, esto no ocurre con la mayoría de los relatos de Lovecraft, los cuales no suelen ser fácilmente adaptables a otros medios y quizás ese sea el motivo por lo que no abundan demasiados videojuegos basados en sus textos). De forma que, tras unos días de lectura y casi dos semanas dudando de si embarcarme o no tan pronto en el desarrollo de otro juego, comencé a escribir Innsmouth a finales de septiembre de 2023.

Un juego de 8 bits: una historia de mitos y horrores

El ZX Spectrum es mi máquina preferida de 8 bits. Por tanto, suelo desarrollar mis juegos para esta plataforma. Supongo que en parte por nostalgia, como muchos otros, y en parte por el reto que supone tantas limitaciones en el hardware.

Para rizar el rizo, con Innsmouth decidí además que la aventura debería correr en el Spectrum clásico de 48K…

No recuerdo bien los motivos que me llevaron a tomar esta decisión, pero posiblemente fuera porque Donum, mi anterior aventura, fue escrita para el Spectrum 128K, y probablemente quisiera que este nuevo juego lo disfrutara prácticamente cualquier propietario de un Spectrum, tuviera 128K o 48K. Sinceramente, meter Innsmouth en 48K es lo más parecido que he hecho a calzarle el zapato de Cenicienta a una de sus hermanastras. Al final entró, pero no quisiera estar en la piel de Cenicienta…

«Bienvenido a Innsmouth, la antigua ciudad de decadencia y desolación de la que muchos no quieren oír hablar»

Lo primero que hice fue releer varias veces más la historia original de Lovecraft, esta vez en inglés, analizando en detalle los puntos principales de la misma, el desarrollo, los giros, la acción, los personajes, los lugares, etc. y creándome mi propio esquema o mapa de Innsmouth. Mapa que mejoré más tarde y que vi imprescindible incluir en el juego como material adicional.

En esta aventura no existe el tiempo, así que el jugador no está obligado a terminar cada uno de sus capítulos en un tiempo límite. Esto es así porque mi objetivo nunca fue estresar al jugador, como sí lo era en Donum. A cambio, existe un número limitado de movimientos, por lo que disponemos de todo el tiempo que necesitemos, pero de un número limitado de acciones. Es decisión del jugador cómo y en qué consumirlas. Esto, en parte, viene definido por la propia historia de Lovecraft, que cambia su ritmo a medida que avanza (pausada al comienzo y más rápida al final), pero en todo momento somos conscientes de que la visita del protagonista a esta desierta ciudad es algo circunstancial y temporal.

Por otra parte, para acercar esta aventura de texto a videojuegos más comunes (quiero decir, a otros géneros más extendidos), decidí incluir un medidor de energía, de manera que el protagonista puede perder energía, o recuperarla, en función de determinadas acciones y decisiones durante el juego; algunas previsibles y otras no tanto, pero todas dentro de la línea argumental.

Por último, incluí también una línea (marcador) para mostrar en cada localidad las salidas disponibles. Mi intención no fue otra que evitar tener que añadir al texto principal la típica frase de «Salidas disponibles», que siempre se me antojó pesada a la vez que imprescindible. Así, todo el texto que aparece en pantalla es de la propia historia o situación actual. De hecho, gran parte del mismo (en torno al 80%) está extraído directamente del propio relato de Lovecraft. Obviamente, como homenaje y reconocimiento a su magnífica obra, y por supuesto para disfrute y gozo del lector, conozca o no la historia original.

Por último, añadir que también tuve largas conversaciones, y muy fructíferas, con alguna IA que sabía bastante más que yo de toda la obra literaria de Lovecraft (¿quién no consultaría con un amigo experto en el tema?). Como consecuencia, muchos de los textos propios que incluí en la aventura, y que por tanto no están en el relato original, tienen en parte el estilo literario de Lovecraft, sus adjetivos y verbos más usados, incluso en ocasiones la estructura de sus frases. En ningún caso traté de copiar los resultados que me ofrecía la IA, lo cual consideraría de una pereza abismal, sino de dialogar con ella, exponerle mis textos para que me sugiriera posibles cambios.

Fue después decisión mía incorporar o no esos cambios a mis textos. Creo que esto ayudó a elevar la calidad general de la aventura. Cuando se normalice el uso de la IA para todos los procesos creativos, algo que ocurrirá tarde o temprano, veremos cómo se reducen los tiempos de producción (algo que puede considerarse nimio desde el punto de vista creativo) a la vez que aumenta la calidad de las obras (y esto sí que es verdaderamente importante).

El motor: robusto y manipulado, como el de un viejo autobús

Innsmouth no está escrito usando un parser comercial, como pueden ser los conocidos PAWS o DAAD, sino una versión modificada del motor de Donum (ver CAAD Nº 58), al que por cierto nunca le puse nombre. Este motor es de desarrollo propio, y fue programado usando una mezcla de ensamblador (ASM) y BASIC compilado (Boriel ZX BASIC; Boriel para los amigos). Sería erróneo pensar que esta versión modificada del motor es una evolución del de Donum, pues se trata más bien de una adaptación. Algo que fue necesario porque, aunque Innsmouth continúa siendo una aventura de texto, cambia bastante respecto a Donum en su concepto y sus mecánicas, siendo más parecida a las aventuras de texto «clásicas» en cuanto a desarrollo y funcionalidad. Gran parte de esta adaptación fue necesaria para poder incluir un vocabulario más amplio, que reconociera más acciones, y llevar a cabo las mil piruetas inevitables para poder encajar el motor original, desarrollado para el Spectrum 128K, en solo 48K (recordad aquello del zapato de Cenicienta). Aun así, tuve que dividir el juego en dos partes. Toda una blasfemia, como diría Lovecraft.

Resumiendo, el motor de Innsmouth está programado en Boriel con algunas partes en ASM (Boriel acepta esta mezcla, maravillosa y visualmente espantosa, permitiendo incrustar ASM en prácticamente cualquier parte de su código). Algunas rutinas en ASM fueron también ensambladas por separado usando PASMO. Todo se programó de manera bastante rudimentaria (¿no es el ZX Spectrum una máquina retro?). Nada de frameworks modernos, depuradores, Git o código en la nube. Se usó Notepad++ para el código y varios archivos por lotes (.bat) para compilar y/o ensamblar.

Como cabe esperar, escribir una aventura de texto con un motor propio tiene sus ventajas y sus inconvenientes. La parte buena es que no tiene restricciones, más allá de las propias de la máquina, en cuanto a qué se puede hacer o mostrar, qué aspecto visual va a tener la aventura o cómo se va a cargar y ejecutar. La parte negativa es que el juego no se puede portar a otros sistemas o plataformas (me refiero al resto de máquinas de 8 y 16 bits), como sí podría hacerse en caso de usar un parser como DAAD, por ejemplo.

Apartado gráfico: verde, cian y gris

La definición del apartado gráfico, y con esto no solo me refiero a las imágenes del juego, sino también a la elección de los colores, el estilo de los gráficos y la propia definición de la interfaz, me ocupó prácticamente un mes. Durante este tiempo solo recuerdo realizar esquemas y borradores antes de pintar un solo píxel. Los gráficos que aparecen en pantalla, algunos basados en imágenes reales y otros basados en los generados por IA, están directamente dibujados a mano en ZX Paintbrush o, según el caso, tratados en Adobe Photoshop y posteriormente retocados a mano, también usando ZX Paintbrush.

Cabe destacar que, si bien el número de imágenes a pantalla completa que hay es escaso (a causa de la poca memoria del Spectrum), sí existe un número considerable de objetos que podemos manipular durante la aventura, y que por tanto podemos ver en el inventario con sus respectivos iconos, a semejanza de las aventuras gráficas que aparecieron con posteridad a las de texto.

Apartado sonoro: lluvia y saltos de agua, pero casi siempre en silencio

Bueno, Innsmouth es un juego desarrollado para el Spectrum 48K, y como tal, sus limitaciones sonoras son más que evidentes y conocidas desde siempre por los jugadores y los desarrolladores. Al no poseer un chip de sonido propio, se limita a emitir sonidos por un simple speaker, que es controlado en todo momento por el microprocesador Z80.

Es cierto que muchos juegos, incluso ya en los años 80, hacen gala de todo tipo de piruetas de programación para convertir al speaker en toda una orquesta. Pero, mientras que la música que yo necesitaba para este juego era una banda sonora de fondo, con cambios leves, lenta y pausada, cualquier música desarrollada para el speaker conlleva una serie de cambios continuos a gran velocidad que no la hacen válida para esta aventura. Peor aún, Innsmouth necesitaba una música de calidad in-game (o sea, que se oyera durante todo el juego), y esto sí era ya pedirle demasiado al pequeño speaker. Siendo así, opté por incluir música externa, de ambientación, y opino que muy adecuada por estar precisamente inspirada en esta historia de Lovecraft. La misma que además estuve oyendo mientras desarrollaba la aventura. Su autor es un joven alemán con el apodo de Wicked, al que contacté en su momento y pareció encantado de que su música sirviera para un videojuego. Puede escucharse en YouTube.

Más allá de esto, el juego se limita a emitir algunos sonidos en momentos puntuales, como por ejemplo, cuando ganamos o perdemos energía.

Testeando una ciudad que huele a pescado

En Innsmouth prácticamente repite el mismo elenco de testers que tan buenos resultados me dieron en Donum: Dwalin, Carlos Perezgrin y Mr. Rancio. Colaborando también esta vez Marukpa. Cada uno de ellos tiene su propia manera de testear, algo que a mí me ayudó mucho para poder contrastar las distintas partes del juego. Su labor no tiene precio, y su importancia es posiblemente mayor de la que ellos mismos imaginan (creo). Por su entrega, buen hacer, experiencia en videojuegos y cien cosas más, tengo que darles miles de gracias.

Y ya fuera del testing, no quiero terminar este artículo sin nombrar la fantástica ayuda prestada por el amigo Boriel, José Rodríguez, siempre disponible para las complejas preguntas sobre su compilador; a SFH, por los programas externos que desarrolló y que me ayudaron a automatizar la compresión de los textos de la aventura y a su posterior manipulación dentro del juego; y a Haplo, por sus continuas revisiones de los textos en inglés, que finalmente quedaron perfectos gracias a él, y al propio Lovecraft.

Innsmouth se presentó en un directo de YouTube el 21 de abril de 2024, en el canal de El Spectrumero Javi Ortiz. El juego está disponible en https://bitfans.itch.io/Innsmouth, en inglés y en español. Existe una versión de pago y una versión gratuita de demostración.

Pueden seguirse otros proyectos de Bitfans a través de X/Twitter en https://twitter.com/Bit_fans

 

 

Tranquilino Rodriguez

Nació viejo hace ya más de medio siglo. Desde entonces solo ha podido ir cuesta abajo y sin frenos. Prueba de ello es que dedica parte de su tiempo a dirigir y presentar un pódcast en Twitch llamado Increíble Pero Incierto. Como es un animal sediento de éxito y fortuna, está tratando de ofrecer a las masas su visión del clásico de Aventuras AD #LaAventuraCasiOriginal, una aventura de texto que, sin duda, le reportará pingues beneficios. Mastodon

Publicaciones relacionadas

0 0 votos
Valoración del artículo
Subscribirse
Notificame

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

0 Comentarios
Viejos
Nuevos Más votados
Comentarios en línea
Ver todos los comentarios
Mira también
Cerrar
Botón volver arriba