Z-machine (motor de joc)

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 21 decembrie 2021; verificările necesită 3 modificări .
mașină Z
Dezvoltator infocom
Adâncime de biți 16
Prezentat 1979
Versiuni 1.1 (2014)
Arhitectură CISC
Ordinea octetilor Mare
deschis? da

Z-machine  este o mașină virtuală dezvoltată de Joel Berez și Mark Blank 1979 și folosită de Infocom pentru jocuri de aventură text . Cu ajutorul unui compilator specializat, codul sursă al jocului a fost compilat în așa-numitele „fișiere de poveste” sau „fișiere Z-code”, conținând instrucțiuni binare pentru mașina Z, ceea ce a făcut posibilă portarea jocurilor pe o nouă platformă. pur și simplu scriind o mașină Z pentru această platformă. Cu un număr mare de sisteme computerizate de acasă incompatibile la acea vreme, acesta era un avantaj important față de utilizarea codului nativ sau dezvoltarea unui compilator pentru fiecare sistem separat.

Istorie

Litera „Z” este prima literă a numelui Zork , primul joc de aventură lansat de Infocom. Conform convențiilor moderne, fișierele istorice au de obicei extensiile .Z1, .Z2, Z3, .Z4, Z5, Z6, .Z7 sau .Z8, unde numărul este numărul versiunii mașinii Z pentru care fișierul istoric. este destinat. De asemenea, primul octet din fișierul istoric a notat și versiunea [1] , cu toate acestea, fișierele istorice originale create de Infocom aveau extensiile .DAT (din engleză  data , data) și .ZIP (din engleză  Z-machine Interpreter Program ) .

În istoria dezvoltării, Infocom a creat șase versiuni ale Z-machine, cu cel mai mare număr de jocuri lansate de studio pentru a treia versiune. Versiunile ulterioare aveau mai multe caracteristici, cum ar fi jocurile care foloseau versiunea șase care accepta grafica.

Compilatorul numit Zilch folosit pentru a crea fișierele istorice nu a fost niciodată publicat, deși documentația ZIL (Zork Implementation Language) a fost scrisă sub o licență deschisă [ 2] . După achiziționarea Infocom de către Activision , Computer Gaming World a anunțat că „ZIL […] este mort funcțional” și a raportat zvonuri despre un „parser complet nou, care nu poate fi folosit niciodată” [3] . În mai 1993, Graham Nelson a lansat prima versiune a unui compilator pentru limbajul său Inform , care generează fișiere pentru Z-machine, chiar dacă limbajul Inform este diferit de ZIL.

Inform a devenit popular în domeniul literaturii interactive . O mare parte din ficțiunea interactivă se afla în fișierele pentru Z-machine. Cererea pentru capacitatea de a crea fișiere mari de joc l-a determinat pe Nelson să creeze o specificație pentru versiunile a șaptea și a opta ale mașinii Z, deși versiunea 7 a fost folosită rar. Datorită adreselor diferite ale fișierelor, fișierele istorice ale versiunii 3 pot avea până la 128 KB, versiunea 5 acceptă până la 256 KB, iar versiunea 8 poate avea o dimensiune de până la 512 KB. În timp ce aceste dimensiuni pot părea mici după standardele de calcul actuale, pentru aventurile bazate pe text sunt suficient de mari pentru a dezvolta jocuri complicate.

În anii 1990, Nelson a dezvoltat standardul Z-machine [4] bazat pe o analiză detaliată a fișierelor Infocom existente.

Interpreți

Interpreții pentru fișierele Z-code sunt disponibili pe diverse platforme. Site-ul web Inform oferă legături către interpreți pentru 15 sisteme de operare (inclusiv microcalculatoare pe 8 biți din anii 1980, cum ar fi Apple II , TP-80 și ZX Spectrum , precum și pentru Unix și Windows), 10 sisteme de operare mobile (inclusiv Palm OS și Game Boy ), și pentru trei interpreți multi-platformă ( Emacs , Java și JavaScript ). Potrivit lui Nelson, este „poate cea mai portabilă mașină virtuală creată vreodată” [5] .

Interpreții populari sunt Nitfol și Frotz. Nitfol folosește API -ul Glk și acceptă versiunile de la 1 la 8, inclusiv versiunea 6 cu grafică. fișierele de salvare sunt stocate în format Quetzal. Binarele sunt disponibile pentru mai multe sisteme de operare diferite , inclusiv macOS , Linux , DOS și Windows . [6]

Un alt client popular pentru macOS este Zoom. Acceptă același format Quetzal, dar structura fișierului este diferită. [7]

Frotz a fost scris în C de Stefan Jokisch în 1995 pentru DOS. A fost portat de-a lungul timpului pe alte platforme, cum ar fi Unix , RISC OS , macOS și iOS . [8] Efectele de sunet și grafica au fost acceptate în diferite grade. Până în 2002, dezvoltarea sa blocat, iar programul a fost preluat de David Griffith. Codul pentru mașina virtuală și interfața cu utilizatorul a fost separat, astfel încât mașina virtuală devine independentă de orice interfață cu utilizatorul. Acest lucru a făcut posibilă crearea mai multor variații pentru portarea Frotz. Una dintre cele mai ciudate adaptări a fost, de asemenea, una dintre cele mai simple: un bot de mesagerie instantanee înconjurat de Frotz cu capacitate minimă de I/O , cu care puteți juca jocuri Z-machine printr-un client de mesagerie instantanee. [9]

Vezi și

Note

  1. Documentul privind standardele Z-Machine . inform-fiction.org . Preluat la 26 martie 2018. Arhivat din original la 1 februarie 2018.
  2. McGrew, Jesse ZILF (link indisponibil) . Bitbucket . Preluat la 10 noiembrie 2018. Arhivat din original la 28 noiembrie 2021. 
  3. Inside the Industry: Infocom's West Coast Move Stirs Controversy, Computer Gaming World : 10 septembrie 1989 
  4. Inform-ZMachine-Standarde . inform-fiction.org . Preluat la 26 martie 2018. Arhivat din original la 18 martie 2018.
  5. Nelson, Graham Despre interpreți . Informați site-ul . Consultat la 7 noiembrie 2009. Arhivat din original pe 3 decembrie 2009.
  6. if-archive/infocom/interpreters/nitfol . Preluat: 29 octombrie 2016.
  7. Schimbare logică Zoom . Preluat la 29 octombrie 2016. Arhivat din original la 9 august 2019.
  8. Fișierul Frotz README pe Github . Preluat: 29 octombrie 2016.
  9. Fișierul Frotz DUMB pe Github . Preluat la 29 octombrie 2016. Arhivat din original la 27 martie 2018.

Link -uri