Entrevistamos a Menyiques, el creador de DAS BOOT: Operation Black Typhoon y Scriba
Hoy entrevistamos a Menyiques, un desarrollador que trabaja con ZX Spectrum y otras máquinas clásicas, y que nos ha traído proyectos tan interesantes como su último lanzamiento, DAS BOOT: Operation Black Typhoon, además de otros juegos como ZX Battle City y Apollo XI.
Pero la cosa no queda ahí. También ha desarrollado Scriba, una herramienta diseñada para crear aventuras conversacionales y adaptarlas a diferentes plataformas. Un proyecto que demuestra su pasión por la programación y el desarrollo de videojuegos.
En esta entrevista charlamos con él para conocer cómo fueron sus comienzos, cómo desarrolla sus juegos y qué hay detrás de Scriba. ¡Vamos allá!
1. Cuando presentaste ZX Battle City, comentaste que suponía cumplir un deseo que llevabas más de 35 años esperando. ¿Qué ocurrió para que aquel deseo se convirtiera finalmente en una realidad?
Pues básicamente, descubrir el compilador de José Boriel. Mi historia con el Spectrum de chaval duró cuatro años: del 83, cuando me lo compraron mis padres, al 87, cuando mi tío me regaló un PCW. Desde entonces no lo volví a tocar hasta que, más o menos en la pandemia, descubrí que había un grupo de frikis muy bien organizados que mantenían viva la escena. Así llegué a Boriel, hice unas pruebas y vi que era justo lo que me faltaba: juegos a una velocidad decente sin tener que pelearme con el ensamblador.
2. Todo comenzó con el compilador de Boriel. ¿Recuerdas el momento en que pasaste de trastear con el Spectrum a pensar: «Voy a hacer mi propio videojuego»?
Al descubrir Boriel empecé a hacer prototipos, y uno de ellos era un “homenaje” al Battle CIty de Game Boy: un mapa de tiles de 2×2 con un tanque muy primitivo dando vueltas. Lo subí al grupo de Telegram como curiosidad y la gente me animó a terminarlo. En mi cabeza iba a tener todas las pantallas y power-ups del original, pero enseguida me metí en un lío de máscaras, redibujados de pantalla y mapas de colisiones… y quedó como quedó. Hoy lo haría de otra manera, claro.
3. ¿Tenías conocimientos de programación o tuviste que aprender sobre la marcha? ¿Recuerdas algún obstáculo que en aquel momento te pareciera insuperable?
Aprendí solo, con el propio Spectrum. El mío era de contrabando, traído de Portugal, y el manual venía en inglés, así que de paso aprendí inglés, porque en mi época en el instituto se daba francés. Ahí empezó un camino que ya no he soltado: acabé haciendo la carrera de Informática y ha sido mi profesión desde entonces. ¿El obstáculo insuperable? El muro entre el BASIC, que funcionaba pero era lentísimo, y el ensamblador, con el que, por más horas que le echara, no pasaba de cuatro rutinas para pintar la pantalla.
4. A lo largo de tu trayectoria no te has limitado a crear videojuegos, sino que también has desarrollado Scriba, tu propia herramienta para crear aventuras conversacionales. ¿En qué momento surgió la idea y qué te llevó a pensar que necesitabas construir una herramienta propia?
Todos hemos jugado al Hobbit, La Aventura Original y, más tarde, a Monkey Island o a Leisure Suit Larry. Entre todo lo que había tocado no había ninguna aventura de texto, y me parecía una forma tan buena como un libro, o mejor, de meter al jugador en una historia. Eso, y que animar sprites no es lo mío. Lo de hacerme mi propia herramienta vino al pelearme con las que ya existían.
5. Al comenzar a desarrollar Scriba, ¿cómo empezaste a darle forma? ¿Tenías claro desde el principio cómo querías que funcionara o fuiste descubriéndolo mientras lo desarrollabas?
Mis primeros intentos fueron con el PAWS. Hice no sé cuántas veces el tutorial del parque y la parada de autobús, y siempre acababa pensando lo mismo: tiene que haber una forma más fácil de hacer esto. Porque, al final, una aventura conversacional es una base de datos con localizaciones, objetos, verbos y condacts (las reglas que dicen qué pasa cuando el jugador hace algo). Como programador, veía que todo eso encajaba perfectamente en BASIC, que es un lenguaje que conocemos muchos. Y de ahí salió Scriba.
6. Scriba combina BASIC con código máquina Z80 y permite llevar una misma aventura a diferentes sistemas. ¿Lo creaste desde el principio como una herramienta multiplataforma o esa idea fue surgiendo a medida que avanzaba el proyecto?
Qué va. Al principio solo quería hacer mi aventura, y para Spectrum 48K. Pero coincidió con mis primeros pasos con Claude y vi que era facilísimo compilar la base de datos del juego para cualquier máquina con Z80. Lo gordo está en comprimir textos y pantallas; la máquina que lo ejecuta es casi lo de menos. Y aquí lo de Claude es brutal: yo de MSX no sabía absolutamente nada, y me hizo el compilador en menos de una hora. Ahora mismo Scriba compila para Spectrum 48Kb, 128Kb y Next, Amstrad CPC 6128, PCW 8256, MSX2 y Windows.
7. Crear una herramienta con la que otros puedan desarrollar sus propios juegos abre un mundo de posibilidades. ¿Qué te resulta más satisfactorio: terminar una aventura propia o pensar que alguien puede utilizar Scriba para crear una aventura que nunca se te habría ocurrido a ti?
Cuando termino un juego acabo saturado y normalmente me pongo con otra cosa, así que la satisfacción de acabar Das Boot ya está más que amortizada. Lo que me pica la curiosidad ahora es ver qué es capaz de hacer la gente con Scriba.
8. A medida que Scriba ha ido creciendo, ¿se ha convertido en una herramienta diferente de la que imaginabas cuando empezaste a desarrollarla? ¿Hay alguna función que hoy consideres imprescindible y que no estuviera en tus planes iniciales?
Scriba lo diseñé desde el principio pensando en lo que a mí me hubiera gustado encontrar en un editor de aventuras:
• Un editor gráfico de mapas.
• Un comprobador de errores.
• Condacts en BASIC, con AND, OR y NOT en las condiciones.
• Poder filtrar el código por objeto, localización o variable (por ejemplo, ver de un vistazo todos los trozos donde aparece la linterna).
• Un intérprete dentro del propio editor para probar el juego paso a paso, con partidas guardadas al instante para no empezar siempre desde el principio y viendo en pantalla el valor de las variables.
Luego fueron llegando cosas que no estaban en el plan, pero surgen naturalmente. Entre ellas, un conversor de imágenes para cada plataforma, funciones y procedimientos, efectos de sonido AY y un conversor de MIDI a AY, y pantallas que se cargan desde el código sin estar ligadas a una localización. También guardar y cargar partida, exportar los textos para traducirlos, y caracteres en portugués, catalán y francés.
Lo que me sigue rondando es que, incluso así, el BASIC intimida a quien quiere hacer una aventura y no ha programado nunca. Me gustaría acercar Scriba a todo el mundo, pero todavía no he dado con una interfaz sencilla, tipo point and click, que sustituya al picar código de toda la vida.
9. Cuando desarrollas para plataformas tan distintas como Spectrum, Amstrad CPC, MSX2 o PCW, ¿cómo organizas el código para que una misma aventura funcione en todas ellas? ¿Qué parte puedes compartir y qué tienes que adaptar a cada máquina?
Un juego de Scriba es, en el fondo, un fichero de texto (YAML) más un par de carpetas con sonidos e imágenes, y ese mismo paquete se compila para cada plataforma. Intento que el YAML sirva para todas, aunque hay comandos que no existen en todas las máquinas, como INK, PAPER, FLASH o BEEP. Lo que sí es específico de cada máquina es el compilador. Cuando añado una función nueva, es Claude quien se encarga de programarla en cada uno.
10. DAS BOOT: Operation Black Typhoon es tu último juego publicado. ¿Cómo nació la idea? ¿Tenías clara desde el principio la experiencia que querías ofrecer al jugador o el concepto fue cambiando durante el desarrollo?
Das Boot es, en realidad, la semilla de Scriba. Una aventura de submarinos en la Segunda Guerra Mundial, con la máquina Enigma de por medio, llevaba años en mi cabeza, y la idea ha ido creciendo a la par que la herramienta. Cada vez que quería hacer algo que Scriba no soportaba, ampliaba Scriba.
11. En Apollo 11 te adentraste en una temática muy diferente a la de otros proyectos tuyos. ¿Qué te llevó a desarrollar este juego y qué fue lo que más te interesó de recrear una misión espacial en un sistema clásico?
Apollo XI nació como un mini proyecto paralelo para desconectar de Das Boot y de ZX Golf. La llegada a la Luna me fascina: me he tragado todo lo que hay, documentales, películas, series, experiencias de realidad virtual… y pensé que sería bonito revivirlo desde un Spectrum. Es más una experiencia para sumergirse que un reto.
12. Cuando inicias un nuevo proyecto, ¿qué haces primero? ¿Empiezas a programar para comprobar si funciona, preparas el diseño sobre el papel o experimentas hasta encontrar el camino? ¿Ha cambiado tu forma de trabajar con los años?
Casi nunca empiezo de cero: parto de semillas de proyectos anteriores, hayan visto la luz o no. Descarto muchos porque no llegan a buen puerto, pero se quedan ahí como pruebas de concepto. A veces rescato uno y le añado eso que he aprendido hace poco y que le faltaba para funcionar como yo quería. Mi forma de trabajar no ha cambiado con los años; ha cambiado con la IA. Ahora todo es muchísimo más rápido y posible. Ya no destacas por la dificultad técnica: tienes que poner algo de tu personalidad.
13. ¿Qué te resulta más difícil al desarrollar un juego: conseguir que la idea funcione técnicamente, encontrar la forma de que sea divertido o decidir cuándo está terminado y dejar de añadir cosas?
Sin duda, que sea divertido. Lo técnico me divierte a mí, pero que yo me lo pase bien programando una idea no significa que salga un juego divertido. Que enganche al jugador es lo realmente difícil. A veces hay que meter dinámicas nuevas para darle alicientes, o ayudas para que no sea tan duro, y luego están los menús, las pruebas, el ajuste de dificultad… Aquí los testers son clave, porque te dan ideas que ni se te habían pasado por la cabeza para que el juego no insulte al jugador. Aprovecho para dar las gracias a todo el que ha testeado alguno de mis juegos por su ayuda, desinteresada e impagable.
14. ¿Hay alguna idea o proyecto que hayas tenido que dejar aparcado y al que todavía te gustaría volver? ¿Qué te gustaría hacer con él si tuvieras la oportunidad de retomarlo?
Pues ahora mismo, ninguno. Estoy liado con un ScummVM para el Next y no tengo ni idea de qué vendrá después. Eso sí, como siempre, tendrá que ser algo que no haya hecho antes y con lo que aprenda cosas nuevas.
15. Si hoy pudieras volver al momento en que empezaste con ZX Battle City, sabiendo todo lo que has acabado construyendo con Scriba y tus otros proyectos, ¿qué te habría gustado saber entonces?
Ahora sé muchísimo más del compilador de Boriel y del hardware del Spectrum, así que lo reescribiría todo desde cero. Los tanques tendrían máscara, todo iría mucho más rápido y aprovecharía los 128K para meter más mapas y más tipos de enemigos.
Pero, contestando de verdad a la pregunta, no cambiaría nada de este segundo viaje con el Spectrum que empecé en 2020. En cada momento hago lo mejor que puedo con lo que sé y, como no tengo presiones, voy a mi ritmo, disfrutando del camino. Si no, no merecería la pena.
16. ¿Cómo ha cambiado tu forma de desarrollar desde que empezaste a trabajar con IA? ¿Qué partes del proceso sigues prefiriendo resolver por tu cuenta y cuáles delegas en estas herramientas?
Delego en la IA todo lo que me ahorra trabajo y me da el resultado que quiero. Tardo tiempo en detallar lo que quiero y cómo quiero que lo haga, y luego refino los resultados una y otra vez. Hay cosas como el retocado de píxeles que no hace nada bien (aún, claro) y sigo haciendo a mano.
17. Comentabas que te gustaría que Scriba pudiera utilizarse sin necesidad de escribir código. ¿Cómo imaginas esa interfaz ideal y crees que la IA podría ayudarte a hacerla realidad?
He mirado interfaces tipo piezas de puzle (como Scratch) pero sigue habiendo FOR, NEXT, IF, etc… así que, a mi parecer, añade una capa de complejidad innecesaria al Basic en texto de toda la vida. Aún no he dado con la tecla, la verdad.
Dónde seguir a Menyiques
Puedes descubrir sus juegos y seguir sus próximos proyectos a través de sus perfiles:
- Itch.io: https://menyiques.itch.io/
- X (Twitter): https://x.com/setaseta