El compilador y la librería Inform 6

Esta entrada muestra los pasos a seguir para generar un ejecutable con el sistema Inform 6. Tal y como vimos en la entrada anterior, necesitamos disponer de los dos componentes que constituyen el sistema para escribir obras en I6: compilador y librería software.

> Compilador

El compilador será el encargado de generar ejecutables de la obra a partir de los ficheros de código fuente que escribamos. La última versión del compilador es la 6.34, publicada el 25 de mayo de 2020. Se puede descargar gratuitamente desde su repositorio oficial. Para utilizarla es necesario disponer de un fichero ejecutable, que se puede descargar desde el propio repositorio oficial para usuarios Windows o bien desde el if-archive para usuarios Mac.

En sistemas Linux será necesario generar el ejecutable nosotros mismos a partir del código fuente. Para hacerlo basta con descargar todo el código del repositorio y disponer de un compilador de lenguaje C, como cc. Una vez descargado el código de la versión 6.34 en un directorio local, abrimos una terminal sobre este directorio y ejecutamos:

$ cc -o inform *.c

Para asegurarnos que estamos compilando la versión adecuada del compilador, lo más sencillo probablemente sea utilizar la herramienta de control de versiones git (también gratuita). De esta manera, para descargar el repositorio, colocarnos en la versión 6.34 y compilar el código bastaría con la siguiente secuencia de comandos:

$ git clone https://github.com/DavidKinder/Inform6.git
$ cd Inform6
$ git checkout v6.34
$ cc -o inform *.c

> Librería software

La librería software es la encargada de procesar la entrada de texto del usuario, registrar el estado del modelo de mundo en que se desarrolla la obra y dar respuestas por defecto para los diferentes comandos interpretados por el sistema. Por razones de compatibilidad con los módulos de idioma en español, se recomienda utilizar la versión 6/11 de la librería, ya sea en su distribución oficial, o en la distribución de Ricardo Pérez que incluye algunas correcciones de bugs menores.

> Esqueleto básico

Una vez disponemos de los 2 requisitos para crear obras en Inform 6, podemos empezar a escribir nuestra ficción interactiva. En el repositorio del tutorial hay un esqueleto básico, con definiciones para una única localidad "Sala de espera" y un único objeto comestible "Caramelo".

Sin necesidad de implementar ningún otro comportamiento, al compilar la obra podemos comprobar cómo la librería Inform genera por nosotros toda la infraestructura para comprender un amplio conjunto de comandos (de momento en inglés), mensajes por defecto (en inglés) para estas acciones y reglas básicas que rigen el modelo de mundo (la sala de espera es una localidad que puede contener objetos; el usuario controla su propio objeto jugador que se encuentra dentro de la localidad; el caramelo se puede pasar al inventario del jugador, devolver de nuevo a la localidad o comer, etc).

Para generar el ejecutable basta con especificar al compilador el directorio en que se encuentran las librerías, y el fichero de código fuente de la obra:

$ inform +include_path=libs -G rayuela21.inf rayuela21.ulx

La opción -G indica al compilador que debe generar el ejecutable para la máquina virtual Glulx.

Para simplificar el proceso tanto en Linux como en Windows, he escrito un pequeño script que lanza la compilación y que, además, utiliza una la herramienta game2js, con la que convertimos el ejecutable Glulx a un fichero JavaScript, de manera que pueda ser ejecutado con el intérprete web Quixe.

Dejo a continuación enlaces al (poco) código desarrollado como parte de esta primera parte del tutorial, junto con los ficheros con el intérprete Quixe que permite ejecutar la obra online:

Próximamente veremos cómo podemos utilizar los módulos de idioma para traducir al español tanto los comandos que puede introducir el usuario como los mensajes por defecto de la librería.

Comentarios

  1. Me entran ganas de desempolvar mi pequeño linux y darle caña en los ratos esos en los que no estoy trabajando. Gracias por compartir.

    ResponderEliminar
    Respuestas
    1. He preparado ese script para Linux para agilizar compilación, pero puedo preparar uno para Windows si te parece útil. El resto de contenidos del tutorial creo que se pueden aplicar sobre cualquier plataforma sin ningún otro cambio. :)

      Eliminar
    2. Script de Windows; compila la obra para la máquina virtual Glulx y convierte el fichero resultante en un fichero JavaScript interpretable por Quixe:

      https://github.com/jomali/rayuela-2021/blob/main/src/compila.bat

      Eliminar

Publicar un comentario