Cómo hacer cosas con Glulx InformEn sus pantallas gracias a la letra GlkGlulx e Inform Glulx

Glulx e Inform Glulx

Hay, como se ha dicho en los apartados previos, muchas máquinas virtuales diseñadas para ACs. Algunas de ellas - la máquina virtual TADS y la máquina virtual Hugo, por ejemplo - pueden hacer cosas que la máquina Z no puede. Pueden manejar juegos grandes (más de 512k), por ejemplo, y hacer que muestren dibujos o que toquen sonidos, es mucho más simple que lograr lo mismo en la máquina Z. Sin embargo, para usar una de ellas, tienes que aprenderte el lenguaje asociado: TADS o Hugo. Muchos programadores Infrm han invertido mucho tiempo y energía para aprender Inform, y preferirían no tener que empezar a aprender un nuevo lenguaje desde cero. Glulx fue diseñado para resolver este problema. Glulx es una máquina virtual de 32 bits nota2.html cuyos compiladores están diseñados para tomar código fuente Inform y convertirlo en código máquina Glulx. Así que los programadores Inform pueden liberarse de las limitaciones de la máquina Z, y aprovecharse de la nuevas capacidades de la máquina Glulx, sin tener que aprender un lenguaje nuevo. Al menos en su mayor parte. Recordarás de la sección sobre Glk que había una excepción notable a la regla de que el proceso de datos y la entrada/salida son cosas separadas en la programación de ACs. La excepción ocurre cuando los programadores insertan opcodes en sus programas. Un opcode es una instrucción que se salta algunos de los pasos habituales en el proceso de programación. Imagina este proceso como una torre de robots, cada uno sobre los hombros de otro. Cada robot, sólo habla con el que tiene debajo. Así, un robot de la parte alta, le dice al robot que tiene debajo "Eh, imprime esta frase". Y este robot le dice al siguiente robot de debajo (el robot de E/S), "Vale, imprime la letra A en esta posición de la pantalla, en este color, y después imprime la letra B en esta otra posición, en este color..." Y ese robot lo traduce en "Pon puntos blancos aqui, y aqui, y aqui, y aqui..." Al final, verás unos puntitos blancos en tu pantalla, que parecen formar letras, que forman palabras que lees como parte de una historia. Pero ¿y si no quieres dejar a los robots la decisión de dónde deben ir las letras y qué aspecto deben tener? ¿y si quieres quitar de enmedio uno de los robots y hablar directamente con el robot de E/S y decirle "Vale, quiero la letra Q, en negrita en la posición (1,5) de la pantalla, y en color verde brillante"? Aquí es donde aparecen los opcodes. Normalmente, si tu juego está en Inform, tu escribirás todas tus instrucciones en Inform, y después dejarás al compilador que las convierta en código máquina. Pero a veces, cuando quieres un control más preciso - como cuando estás tratando de personalizar tu línea de estado, o si quieres algunos efectos especiales, como letras bailando en la pantalla de presentación- necesitas ponerlo en opcodes. Si estás compilando para la máquina Z, estos opcodes estarán escritos en ensamblador de la máquina Z, y tendrán un aspecto como @set_colour 2 4; (que significa "imprime a partir de ahora con texto negro sobre fondo verde") o @read_char 1 8 dummy i; (que significa "Espera hasta que se haya pulsado una tecla, o hasta que hayan transcurrido 8 décimas de segundo, lo que ocurra antes"). Los opcodes del ensamblador-Z están explicados en el "Inform Designer's Manual" y durante mucho tiempo se les consideró simplemente otra parte de Inform. Sin embargo, la llegada de Glulx cambió las cosas. Mira, el compilador clásico de Inform sabía cómo convertir el código fuente Inform en código máquina-Z y como cambiar los opcodes del ensamblador-Z en código máquina-Z. Pero mientras que el compilador de Glulx Inform sabe convertir el código fuente Inform en código máquina-Glulx, en cambio el ensamblador-Z le suena a chino. El compilador de Inform Glulx necesita que los opcodes estén escritos para Glk (en ensamblador de la máquina Glulx, en realidad). La librería estándar InformATE (la versión 6/7) incluye opcodes en ensamblador-Z, así que no compilará con Inform Glulx: necesitarás usar la librería InformATE biplataforma (versión 6/10), que está diseñada para que pueda usarse con juegos para la máquina Glulx o para la máquina Z (incluye opcodes para ambas, y elige unos u otros según cuál sea la máquina elegida como destino). Esto quiere decir que todos los truquitos que los autores de Inform habían aprendido relacionados con opcodes de máquina-Z, son inútiles para crear juegos Glulx. Si quieren que su juego compile para Glulx, necesitarán aprender todo un nuevo sistema para especificar el estilo del texto, crear efectos especiales, mostrar imágenes, tocar música, etc. Y de esto trata el capítulo dos.
Cómo hacer cosas con Glulx InformEn sus pantallas gracias a la letra GlkGlulx e Inform Glulx