Z-macchina - Z-machine

Z-macchina
progettista Infocom
bit 16
Introdotto 1979
Versione 1.1 (2014)
Design CISC
endianità Grande
Aperto

La Z-machine è una macchina virtuale sviluppata da Joel Berez e Marc Blank nel 1979 e utilizzata da Infocom per i suoi giochi di avventura testuali . Infocom ha compilato il codice del gioco in file contenenti istruzioni Z-machine (chiamati file di storia o file Z-code) e potrebbe quindi trasferire le sue avventure di testo su una nuova piattaforma semplicemente scrivendo un'implementazione della Z-machine per quella piattaforma. Con il gran numero di sistemi di computer domestici incompatibili in uso all'epoca, questo era un vantaggio importante rispetto all'utilizzo del codice nativo o allo sviluppo di un compilatore per ciascun sistema.

Storia

La "Z" di Z-machine sta per Zork , il primo gioco di avventura di Infocom. I file Z-code di solito hanno nomi che terminano con .z1, .z2, .z3, .z4, .z5, .z6, .z7 o .z8, dove il numero è il numero di versione della macchina Z su cui il file è destinato ad essere eseguito, come indicato dal primo byte del file della storia.

Questa è una convenzione moderna, tuttavia. La stessa Infocom utilizzava le estensioni .dat (Data) e .zip (ZIP = Z-machine Interpreter Program), ma quest'ultima si scontrò con l'uso diffuso di .zip per i file di archivio compatibili con PKZIP a partire dagli anni '90, dopo che Activision chiuse Infocom. Infocom ha prodotto sei versioni della Z-machine. I file che utilizzano le versioni 1 e 2 sono molto rari. È noto che solo due file della versione 1 sono stati rilasciati da Infocom e solo due della versione 2. La versione 3 copre la maggior parte dei giochi rilasciati da Infocom. Le versioni successive avevano più funzionalità, culminando in un supporto grafico nella versione 6.

Il compilatore (chiamato Zilch) utilizzato da Infocom per produrre i suoi file di storia non è mai stato rilasciato, sebbene esista ancora la documentazione del linguaggio utilizzato ( ZIL , un linguaggio della famiglia Lisp simile a MDL ) ed è stato scritto un sostituto open source. Dopo che Mediagenic ha trasferito Infocom in California nel 1989, Computer Gaming World ha dichiarato che "ZIL ... è funzionalmente morto" e ha riportato voci su un "parser completamente nuovo che potrebbe non essere mai utilizzato". Nel maggio 1993, Graham Nelson ha rilasciato la prima versione del suo compilatore Inform , che genera anche file di storia della macchina Z come output, anche se il linguaggio sorgente di Inform è abbastanza diverso da ZIL.

Inform è diventato popolare nella comunità della fiction interattiva . Una gran parte della narrativa interattiva è sotto forma di file di storie di Z-machine. La richiesta della capacità di creare file di gioco più grandi ha portato Nelson a specificare le versioni 7 e 8 della Z-machine, sebbene la versione 7 sia usata raramente. A causa del modo in cui vengono gestiti gli indirizzi, un file di storia della versione 3 può avere una lunghezza massima di 128 KB, una storia della versione 5 può avere una lunghezza massima di 256 KB e una storia della versione 8 può avere una lunghezza massima di 512 KB. Sebbene queste dimensioni possano sembrare piccole per gli standard informatici odierni, per le avventure di solo testo, sono abbastanza grandi per i giochi elaborati.

Durante gli anni '90, Nelson ha elaborato uno standard Z-Machine basato su studi dettagliati dei file Infocom esistenti.

interpreti

Un'implementazione di Frotz in esecuzione su un iPhone , giocando Zork I .

Gli interpreti per i file Z-code sono disponibili su un'ampia varietà di piattaforme. Il sito Web Inform elenca i collegamenti a interpreti disponibili gratuitamente per 15 sistemi operativi desktop (inclusi microcomputer a 8 bit degli anni '80 come Apple II , TRS-80 e ZX Spectrum e raggruppando "Unix" e "Windows" come uno ciascuno) , 10 sistemi operativi mobili (inclusi Palm OS e Game Boy ) e quattro piattaforme di interpreti (Emacs, Java, JavaScript e Scratch). Secondo Nelson, è "forse la macchina virtuale più portatile mai creata".

Interpreti popolari includono Nitfol e Frotz. Nitfol utilizza l' API Glk e supporta le versioni da 1 a 8 della Z-machine, inclusa la Z-machine grafica versione 6. I file di salvataggio sono archiviati nel formato di salvataggio standard di Quetzal . I file binari sono disponibili per diversi sistemi operativi , inclusi il classico Mac OS , sistemi simili a Unix , DOS e Windows .

Frotz è stato scritto in C da Stefan Jokisch nel 1995 per DOS. Nel tempo è stato portato su altre piattaforme, come sistemi simili a Unix , RISC OS e iOS . Gli effetti sonori e la grafica sono stati supportati a vari livelli. Nel 2002, lo sviluppo si fermò e il programma fu ripreso da David Griffith. La base di codice è stata suddivisa tra le parti della macchina virtuale e dell'interfaccia utente in modo tale che la macchina virtuale diventasse indipendente da qualsiasi interfaccia utente. Ciò ha permesso una maggiore varietà nel porting di Frotz. Una delle porte più strane è anche una delle più semplici: un bot di messaggistica istantanea è avvolto attorno a una versione di Frotz con la funzionalità IO minima creando un bot con cui è possibile giocare alla maggior parte dei giochi Z-machine utilizzando un client di messaggistica istantanea.

Un altro client popolare per macOS e altri sistemi simili a Unix è Zoom. Supporta lo stesso formato di salvataggio Quetzal , ma la confezione della struttura del file è diversa.

Guarda anche

  • Glulx – Simile alla Z-machine, ma allevia diverse limitazioni legacy
  • Informare : un linguaggio per computer in grado di produrre programmi per macchine Z
  • SCUMM - S cripta C reation U Pu per M aniac M Ansion da LucasArts , un sistema grafico simile a Z-machine
  • TADS – Come Glulx, creato per affrontare alcuni dei suoi limiti
  • Motorola 68000 series – L'architettura di base utilizzata per le macchine virtuali nei giochi di avventura di Magnetic Scrolls

Riferimenti

link esterno