stringtranslate.com

máquina Z

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 la máquina Z (llamados archivos de historia o archivos de código Z) y, por lo tanto, pudo trasladar sus aventuras de texto a una nueva plataforma simplemente escribiendo una implementación de la máquina Z para esa plataforma. Con la gran cantidad de sistemas informáticos domésticos incompatibles que se utilizaban en ese momento, esto era 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á previsto que se ejecute, según lo indicado en el primer byte del archivo de historia. [1]

Sin embargo, ésta es una convención moderna. El propio Infocom utilizó extensiones de .dat (Datos) y .zip (ZIP = Z-machine Interpreter Program), pero este último chocó con el uso generalizado de .zip para archivos 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 utilizan las versiones 1 y 2 son muy raros. Se sabe que Infocom ha publicado sólo dos archivos de la versión 1 y sólo 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 ha sido publicado, aunque todavía existe documentación del lenguaje usado llamado ZIL , un lenguaje de la familia Lisp similar a MDL , y un reemplazo de código abierto "ZILF" [ 2] ha sido escrito. Después de que Mediagenic trasladó Infocom a California en 1989, Computer Gaming World declaró que "ZIL... está funcionalmente muerto" e informó rumores sobre un "analizador completamente nuevo que tal vez nunca se utilice". [3] En mayo de 1993, Graham Nelson lanzó la primera versión de su compilador Inform , que también genera archivos de historias de la máquina Z como salida, aunque el lenguaje fuente de Inform es bastante diferente de ZIL.

Informar se ha vuelto popular en la comunidad de ficción interactiva . Una gran proporción de la ficción interactiva se presenta en forma de archivos de historias de máquinas Z. 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, un archivo de historia de la versión 5 puede tener una longitud de hasta 256 KB y un 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 sólo 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 Infocom existentes. El estándar también incluye extensiones utilizadas por sus versiones más recientes, así como enlaces al formato de recursos " Blorb " utilizado por Infocom y un formato de archivo guardado " Quetzal ". [4] 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. [5]

ZIL (lenguaje de implementación Zork)

El ZIL se basa en MDL del MIT. Aquí está la definición de la linterna de latón de Zork I:

<OBJETO LINTERNA ( LOC SALÓN ) ( SINÓNIMO LÁMPARA LINTERNA LUZ ) ( ADJETIVO LATÓN ) ( DESC "linterna de latón " ) ( BANDERAS TAKEBIT LIGHTBIT ) ( ACTION LANTERN -F ) ( FDESC "Una linterna que funciona con pilas está en la vitrina de trofeos ." ) ( LDESC "Aquí hay una linterna de latón (que funciona con pilas)." ) ( 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 admite la recolección de basura y ZIL no tiene ningún concepto del sistema de listas de Lisp. [6]

Intérpretes

Una implementación de Frotz ejecutándose en un iPhone , reproduciendo la versión MIT de Zork .

Los intérpretes para archivos de código Z están disponibles en una amplia variedad de plataformas. El sitio web Inform enumera enlaces a intérpretes disponibles gratuitamente para 15 sistemas operativos de escritorio (incluidos microcomputadores de 8 bits de la década de 1980, como Apple II , TRS-80 y ZX Spectrum , y agrupa "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". [7]

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

Frotz fue escrito en C por Stefan Jokisch en 1995 para DOS. Con el tiempo fue portado a otras plataformas, como sistemas tipo Unix , [9] RISC OS , [10] e iOS . [11] 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. La base del código se dividió entre la máquina virtual y las partes de la interfaz de usuario de tal manera que la máquina virtual se volvió independiente de cualquier interfaz de usuario. Esto permitió más variedad en la portabilidad de Frotz. Uno de los ports más 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 se puede jugar a la mayoría de los juegos de máquinas Z usando un cliente de mensajería instantánea. [12]

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

Ver también

Referencias

  1. ^ "El documento de estándares de Z-Machine". informar-ficción.org . Consultado el 26 de marzo de 2018 .
  2. ^ McGrew, Jesse. "Zilf". zilf.io. ​Consultado el 22 de noviembre de 2020 .
  3. ^ "Dentro de la industria: el movimiento de Infocom en la costa oeste genera controversia". Mundo de los juegos de computadora . No. 63. Septiembre de 1989. p. 10.
  4. ^ "Informar - ZMachine - Estándares". informar-ficción.org . Consultado el 26 de marzo de 2018 .
  5. ^ "Especificaciones de Glk, Glulx y Blorb". Fundación de Tecnología de Ficción Interactiva. 16 de noviembre de 2022.
  6. ^ Plotkin, Andrew (17 de abril de 2019). "¿Qué es ZIL de todos modos?". Zarf .
  7. ^ Nelson, Graham. "Acerca de los intérpretes". Informar sitio web . Consultado el 7 de noviembre de 2009 .
  8. ^ "if-archive/infocom/interpreters/nitfol" . Consultado el 29 de octubre de 2016 .
  9. ^ "Archivo README de Frotz en Gitlab" . Consultado el 19 de febrero de 2019 .
  10. ^ "La página de inicio de RISC OS Frotz". 18 de septiembre de 1999.
  11. ^ "Frotz en la App Store". Tienda de aplicaciones .
  12. ^ "Archivo Frotz DUMB en Gitlab" . Consultado el 19 de febrero de 2019 .
  13. ^ "Zoom de desplazamiento lógico" . Consultado el 29 de octubre de 2016 .

enlaces externos