Como se hizo...

Yo y Khurdian

POR: Jorge Casares

Francamente, no sé por dónde empezar. Pero pienso que quizás para poner las cosas en contexto deba retroceder unos años antes de la creación de Khurdian, la primera aventura amateur española que incluía gráficos VGA 256 colores. Que ni siquiera yo sabía que fuera la primera en incluirlos, dado que no estaba al tanto de lo que había o no en el mercado de videojuegos de aventuras. Simplemente, como un aficionado más a la programación que era yo, había empezado a hacer cositas en el PC y ya había averiguado cómo imprimir en la pantalla esos gráficos de colores. Así que, en un intento de hacer algo completamente acabado, surgió esta aventura.

Para empezar, y retrocediendo algunos años, mi afición a la programación me vino viendo por primera vez un Spectrum en casa de mi primo, el cual posteriormente me dejó leer las primeras revistas de Microhobby que había visto y cuyos artículos de programación me iniciaron en ese fascinante mundillo de poder crear tus propias cosas en el ordenador.

Dado que en aquella época era importante que los juegos estuvieran hechos en código máquina para que fueran fluidos en el Spectrum, empecé a investigar la programación del Z80 con algunos artículos que leí en Microhobby, y sobre todo, gracias a que mi primo que me dio muchas microfichas en las cuales salían instrucciones en ensamblador.

Yo no tenía dinero para comprarme libros, así que tiraba de algunas revistas Microhobby que compraba de vez en cuando, y de lo que me dio mi primo.

Tras varias pruebas y errores, conseguí hacer algunos programas pequeños en ensamblador del Z80.

 Con el tiempo conocí por primera vez la que fue mi primera aventura conversacional, Marie Celeste, una aventura inglesa publicada por Atlantis Software que compré en el mercadillo.

Carátula de Marie Celeste (ZX Spectrum 48k)

Me atrajo la portada con el barco pirata y me dije, vamos a comprarla. No sabía que ese juego era una aventura conversacional hasta que vi por primera vez La Aventura Original de AD, pero me gustó por su temática náutica y quise hacer algo parecido más adelante. (Hubo algunas pruebas con el PAWS, pero ninguna prosperó y algunas cortas se perdieron) Años más tarde, ya teniendo PC en casa y sabiendo código máquina del Z80, me adentré en la programación del 8086.

Documentos originales de la creación de khurdian

Me había comprado un libro para aprenderlo, concretamente Programación en ensamblador de Miguel Angel Rodríguez-Roselló.

Pero aparte de ese libro, no tenía otro material, y no tenía dinero para comprar más. Este dato es importante porque recuerdo que algunas cosas que programé, como algunas situaciones que en la aventura debían suceder al azar, las hice sin saber bien lo que hacía.

Efectivamente, Khurdian fue desarrollado íntegramente en ensamblador del 8086 y no en Basic, como había leído por ahí. Respecto a la importancia de tener poca información, se notó en la aventura, eso creo. Uno de los problemas a los que me enfrenté era cómo simular el azar para decidir una acción, y lo hice leyendo un puerto del PC que constantemente daba valores diferentes. No sabía cuál era la función que tenía ese puerto en el PC.

Simplemente, una tarde me puse a probar, a leer diferentes puertos, uno a uno, hasta dar con uno que me diera aleatoriedad.

Sé de buena tinta que a cierta gente al cambiar de pantalla le hacía un efecto extraño de colores. En mi ordenador no pasaba. Lo cual me hace suponer que es por cosas similares a lo que hice, como la función del azar en otras partes del programa, o algo de la tarjeta gráfica que desconocía, o a saber, quizás un duende juguetón…

Por aquella época me había leído El Hobbit y estaba muy influenciado por la historia y el entorno que la rodeaba.

Yo quería hacer una aventura que iba de la lucha entre dos magos, con posibilidad de hacer algunos hechizos, que hubiera día y noche y que el tiempo diera juego a ciertas situaciones, pero lo que me encontré fue un camino muy duro por los múltiples problemas que me surgían programando en ensamblador, como hacer la interfaz, impresión de gráficos, el sistema de tiempo, etc.

Debido a todos esos problemas de programación a los que me iba enfrentando cada día, y a que la historia en general la tenía en la cabeza, en algún momento, tras pasar un buen tiempo arreglando fallos, llegué a un punto donde no tenía claro qué es lo que quería en la aventura. No recordaba la historia que tenía en mente. Estaba un poco harto de los múltiples fallos que iban apareciendo. Me había olvidado de la idea inicial, y además ya tenía ganas de acabarla.

Era realmente mi primer programa complejo en ensamblador, así que simplemente, para no complicarme la vida, decidí cambiar la historia e inspirarme directamente del libro de El señor de los anillos, y no tener que pensar mucho.

En cuanto al nombre, creo recordar que estuve buscando nombres extraños, y este me sonó bien sin saber qué significaba, así que me lo tomé prestado. El desarrollo fue realizado con algunas paradas en el tiempo. No recuerdo exactamente cuánto tiempo me llevó, pero diría que año y pico.

A nivel interno, de programación, me basé mucho en el parser PAWS. Me inspiré en el listado de comandos que tenía ese parser para hacer como unas macros con directivas de ensamblador que los simularan. Las metía secuencialmente en una matriz o array al principio del programa, y realmente lo que es el programa en sí, lo que hacía es ir leyendo constantemente esa tabla y ejecutar la acción en consecuencia.

Esa tabla con esas macros era la forma en que programé el juego en un lenguaje más humano, una vez hecho el engine en código máquina que las procesaba o interpretaba. En vez de teclear instrucciones en código máquina para procesar las acciones del jugador, comparar si está en una localidad, etc., escribía una entrada en esa tabla que hacía exactamente eso. Me es difícil explicarlo porque perdí el código fuente, pero así lo hice más o menos.

Los gráficos los hice con una copia que tenía de Deluxe Paint. Dado que tenía cierta soltura dibujando a lápiz y papel, más o menos me las arreglé para hacer algo con el programa, aunque hacerlo con el mouse era bastante complicado. Y bueno, no me siento muy orgulloso del juego, con un guion que podría haber sido otro y más cuidado, pero sí el hecho de haberlo terminado.

Empezar las cosas es muy fácil, pero acabarlas es otro cantar. En mi caso recuerdo que cuando se publicó por primera vez la primera noticia sobre mi aventura en el CAAD salté de alegría simplemente por verla ahí. Y en cierto modo, pese a todas las dificultades, el hecho de verla mencionada me obligó a continuar el desarrollo hasta terminarla. Creo que, en otro contexto, lo hubiera abandonado en el cajón.

Y bueno, esto es todo.

Actualmente, estoy desarrollando una nueva aventura que espero poder acabar. En todo caso, ya estoy curado de arreglar fallos. No obstante, sigo teniendo problemas en desarrollar un guion que me acabe de gustar, pero la parte técnica está solucionada debido a que hoy en día lo encuentras todo por internet, y eso es un lujo que antes apenas había (en cuanto a información). Estará acabada cuando suba la marea, arrr.

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
Botón volver arriba