Nota sobre la presente ediciónContenidosContenidosIntroducción

Introducción

Me construí una torre de cobre
Con cuatro salidas y ninguna entrada
Pero mío fue el poder, mía la gloria...

Louis MacNeice (1907-1963), Flight of the Heart

Inform es un lenguaje para programar aventuras conversacionales (también llamadas aventuras de texto). Originalmente Inform fue creado para desarrollar juegos en inglés. InformATE es la adaptación de Inform para español (Inform Ahora Totalmente en Español). Este es el manual para aprender a programar usando este lenguaje. En gran parte, este manual es una traducción libre del "Designer's Manual", escrito por Graham Nelson, y que era la documentación original de Inform. Pero existen partes completamente nuevas, que mencionan características específicas de InformATE que no estaban en Inform (después de todo, Español e Inglés son lenguajes bastante diferentes y esto afecta a la forma de programar los juegos).

(Esp) Los párrafos con una bandera española en el margen y fondo amarillo, como este, describen características únicas de InformATE que no estaban en el Inform original, o información especialmente interesante para el programador español.

Infocom fue una compañía que en los años 80 creó gran cantidad de juegos de texto (en España no es muy conocida, pues ninguno fue traducido). Esta compañía inventó un formato especial para almacenar los juegos (que ellos llamaron "story file", y también se conoce como "código Z", debido a que "Zork" fue el primer juego que lo utilizó). La ventaja de este formato es que el mismo juego puede jugarse en muchos ordenadores diferentes. La labor del compilador Inform es convertir una descripción (texto) de cómo ha de ser el juego en un story file. De este modo el resultado podrá jugarse en cualquier máquina y cualquier modelo.

InformATE es un montón de software que no necesitas escribir (porque ya te lo damos escrito) que maneja los asuntos más difíciles de la programación de conversacionales en español usando Inform. Todo este software pasará a formar parte también de tu juego, y lo llamaremos indistintamente InformATE o "la librería". La librería tiene dos ingredientes muy importantes: el parser, que es un programa que traduce el español corriente (como el de la frase "abre el arcón con la llave de hierro") a una forma que sea más fácil de manejar por el juego. El otro ingrediente es una enorme masa de reglas que determinan lo que ha de ocurrir ante los verbos más corrientes usados en este tipo de juegos. El autor de juegos recibe todo esto ya pre-programado y lo único que necesita hacer es proporcionar la descripción de qué cosas hay en el mundo del juego y programar los casos excepcionales que se salgan de las reglas ya previstas en la librería.

La librería tiene una gran riqueza de detalles. El parser reconoce más de 80 verbos y su vocabulario total es de más de 300 palabras, antes incluso de que hayas creado ninguna habitación ni objeto. Además es programable y muy flexible. Puede manejar órdenes ambiguas y generar preguntas para aclararse si le es necesario ("¿A cuál te refieres exactamente...?"), puede manejar plurales para referirse a varios objetos a la vez, conversación con otros personajes, pronombres y la posibilidad de que el jugador se convierta en otro en medio del juego. Puede configurarse para otros idiomas (ya dijimos que originalmente el parser sólo comprendía inglés, pero ahora con InformATE ya "habla" español). El autor podrá crear mundos que se ajusten al modelo usado por la librería, y es un modelo muy genérico que "comprende" los tipos de objetos más corrientes en los juegos, es decir: habitaciones, cosas que se pueden coger y dejar, vehículos, objetos duplicados, recipientes donde se pueden meter y sacar cosas, puertas, cosas encima de otras cosas, luz y oscuridad, cosas que se pueden encender y apagar, abrir, cerrar y echar el cerrojo a las cosas, buscar información en libros, entrar dentro de cosas, mantener la puntuación, etc.

Lo mismo que Inform son dos cosas separadas (el compilador Inform y la librería InformATE), este manual también tiene dos partes diferenciadas: la que explica el lenguaje y la que explica la librería. En esta versión española hemos cambiado el orden de exposición, empezando por la librería. En realidad es más riguroso empezar por el lenguaje (puesto que en este lenguaje está escrita la librería). Sin embargo, empezar directamente a explicar la sintaxis del lenguaje puede ser muy aburrido para los no-programadores. De modo que empezamos por la librería, para mostrar cómo se programaría un juego con ella, y dejamos la descripción del lenguaje para los apéndices que el lector puede consultar cuando se sienta con fuerzas para ello (o cuando tenga una duda concreta acerca de la sintaxis).

(!) Los párrafos marcados como este, contienen digresiones que se alejan un poco de lo que se estaba tratando en el texto. Muchas veces son aclaraciones detalladas de conceptos, que no obstante podrían confundir o aburrir al lector principiante. Se invita a los principiantes a que lean el manual saltándose estos párrafos. En una segunda lectura es probable que los encuentren mucho más interesantes.

(!)(!) Si el párrafo tiene marca doble, su contenido es especialmente técnico o complicado.

Los listados de ejemplo se muestran escritos con tipo de letra proporcional (o courier) y con un marco. A veces en estos ejemplos se omiten partes aburridas o ya conocidas, sustituyéndolas por un simple "..."

(?) EJERCICIO   Finalmente, los párrafos marcados como éste contienen un ejercicio y un link a su solución. He de reconocer que la mayoría de las veces estos ejercicios son casi imposibles de resolver para un principiante. No obstante puede serte muy útil pensar un ratito sobre ellos y después mirar la solución. En muchos casos el ejercicio es injusto porque la solución usa un "truco" que todavía no podías conocer. Aún así, estos trucos pueden resultarte muy útiles para tu propio juego. En realidad, más que ejercicios se trata en bastantes casos de otra forma de presentar ejemplos, sin sobrecargar demasiado el texto principal.

  • Nota sobre la presente edición

  • Zak McKraken - spinf@geocities.com

    Nota sobre la presente ediciónContenidosContenidosIntroducción