Máquina Z

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

La máquina Z es una máquina virtual desarrollada por Joel Berez y Marc Blank en 1979 y utilizada por Infocom para sus juegos de aventuras de texto. Infocom compiló el código del juego en archivos que contenían instrucciones de máquina Z (llamados archivos de historia o archivos de código Z) y, por lo tanto, podría trasladar sus aventuras de texto a una nueva plataforma simplemente escribiendo una implementación de máquina Z para esa plataforma. Con la gran cantidad de sistemas informáticos domésticos incompatibles en uso en ese momento, esta fue una ventaja importante sobre el uso de código nativo o el desarrollo de un compilador para cada sistema.

Historia

La "Z" de Z-machine significa Zork, el primer juego de aventuras de Infocom. Los archivos de código Z generalmente tienen nombres que terminan en.z1,.z2,.z3,.z4,.z5,.z6,.z7 o.z8, donde el número es el número de versión de la máquina Z en la que se encuentra el archivo. está destinado a ser ejecutado, como lo indica el primer byte del archivo de la historia.

Sin embargo, esta es una convención moderna. Infocom mismo usó extensiones de.dat (Data) y.zip (ZIP = Programa de interpretación de máquina Z), pero este último chocó con el uso generalizado de.zip para archivos de almacenamiento compatibles con PKZIP a partir de la década de 1990, después de que Activision cerrara Infocom. Infocom produjo seis versiones de la máquina Z. Los archivos que usan las versiones 1 y 2 son muy raros. Se sabe que Infocom solo lanzó dos archivos de la versión 1 y solo dos de la versión 2. La versión 3 cubre la mayoría de los juegos lanzados por Infocom. Las versiones posteriores tenían más capacidades, culminando con cierto soporte gráfico en la versión 6.

El compilador (llamado Zilch) que Infocom usó para producir sus archivos de historias nunca se ha publicado, aunque la documentación del lenguaje utilizado (ZIL, un lenguaje de la familia Lisp similar a MDL) todavía existe, y un reemplazo de código abierto "ZILF" ha sido escrito. Después de que Mediagenic trasladara Infocom a California en 1989, Computer Gaming World declaró que "ZIL... está funcionalmente muerto", y reportó rumores de un "parser completamente nuevo que podría nunca ser usado". En mayo de 1993, Graham Nelson lanzó la primera versión de su compilador Inform, que también genera archivos de historias de máquinas Z como salida, aunque el lenguaje de origen de Inform es bastante diferente de ZIL.

Inform se ha vuelto popular en la comunidad de ficción interactiva. Una gran proporción de la ficción interactiva se encuentra en forma de archivos de historias de Z-machine. La demanda de la capacidad de crear archivos de juegos más grandes llevó a Nelson a especificar las versiones 7 y 8 de la máquina Z, aunque la versión 7 rara vez se usa. Debido a la forma en que se manejan las direcciones, un archivo de historia de la versión 3 puede tener una longitud de hasta 128 KB, una historia de la versión 5 puede tener una longitud de hasta 256 KB y una historia de la versión 8 puede tener una longitud de hasta 512 KB. Aunque estos tamaños pueden parecer pequeños según los estándares informáticos actuales, para aventuras de solo texto, son lo suficientemente grandes para juegos elaborados.

Durante la década de 1990, Graham Nelson elaboró un estándar Z-Machine basado en estudios detallados de los archivos de Infocom existentes. El estándar también incluye extensiones utilizadas por sus versiones más nuevas, así como enlaces a la página "Blorb" formato de recurso utilizado por Infocom, y un "Quetzal" formato de archivo guardado. En 2006, Nelson amplió Z-machine al formato Glulx de 32 bits para Inform 7. La Interactive Fiction Technology Foundation, fundada en 2016, gestiona todos estos estándares.

ZIL (lenguaje de implementación de Zork)

El ZIL se basa en MDL del MIT. Así es como se ve la definición de la linterna de bronce de Zork I:

■OBJECT LANTERN ()LOC LIVING-ROOM) ()SYNONYM LAMP LANTERN LUZ) ()ADJECTIVE BRASS) ()DESC "Linterna de cerebro") ()FLAGS TAKEBIT LIGHTBIT) ()ACCIÓN LANTERN-F) ()FDESC "Una linterna con batería está en el caso del trofeo".) ()LDESC "Hay una linterna de latón (poder de la batería) aquí.") ()TAMAÑO 15)

Un ejemplo más complejo que involucra combate, junto con su equivalente MDL Zork, se presenta en una publicación de blog de 2019 de Andrew Plotkin. En particular, la máquina Z no tiene soporte para la recolección de basura y ZIL no tiene concepto del sistema de listas de Lisp.

Intérpretes

Una implementación de Frotz corriendo en un iPhone, jugando Zork I.

Los intérpretes de archivos de código Z están disponibles en una amplia variedad de plataformas. El sitio web de Inform enumera enlaces a intérpretes disponibles gratuitamente para 15 sistemas operativos de escritorio (incluidas microcomputadoras de 8 bits de la década de 1980, como Apple II, TRS-80 y ZX Spectrum, y agrupando "Unix" y "Windows" como uno cada uno), 10 sistemas operativos móviles (incluidos Palm OS y Game Boy) y cuatro plataformas de interpretación (Emacs, Java, JavaScript y Scratch). Según Nelson, es "posiblemente la máquina virtual más portátil jamás creada".

Los intérpretes populares incluyen Nitfol y Frotz. Nitfol utiliza la API de Glk y es compatible con las versiones 1 a 8 de la máquina Z, incluida la versión 6 de la máquina Z gráfica. Los archivos de guardado se almacenan en el formato de guardado estándar de Quetzal. Los archivos binarios están disponibles para varios sistemas operativos diferentes, incluido el sistema operativo Mac clásico, los sistemas similares a Unix, DOS y Windows.

Frotz fue escrito en C por Stefan Jokisch en 1995 para DOS. Con el tiempo, se trasladó a otras plataformas, como sistemas similares a Unix, RISC OS e iOS. Los efectos de sonido y los gráficos fueron compatibles en diversos grados. En 2002, el desarrollo se estancó y David Griffith retomó el programa. El código base se dividió entre partes de la máquina virtual y la interfaz de usuario de tal manera que la máquina virtual se volvió independiente de cualquier interfaz de usuario. Esto permitió una mayor variedad en la adaptación de Frotz. Uno de los puertos extraños es también uno de los más simples: un bot de mensajería instantánea se envuelve alrededor de una versión de Frotz con la funcionalidad mínima de E/S creando un bot con el que uno puede jugar la mayoría de los juegos de Z-machine usando un cliente de mensajería instantánea.

Otro cliente popular para macOS y otros sistemas similares a Unix es Zoom. Admite el mismo formato de guardado de Quetzal, pero el empaquetado de la estructura de archivos es diferente.

Contenido relacionado

Codificación Golomb

La codificación Golomb es un método de compresión de datos sin pérdidas que utiliza una familia de códigos de compresión de datos inventados por Solomon...

Ramanathan V. Guha

Ramanathan V. Guha es el creador de estándares web ampliamente utilizados como RSS, RDF y Schema.org. También es responsable de productos como Google Custom...

Quine (informática)

Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save