Z-машина - Z-machine

Z-машина
ДизайнерИнфоком
Биты16
Введено1979
Версия1.1 (2014)
ДизайнCISC
Порядок байтовБольшой
Открытьда

В Z-машина это виртуальная машина который был разработан Джоэлем Березом и Марк Бланк в 1979 году и использовался Инфоком для своего текстовые приключенческие игры. Компания Infocom скомпилировала игровой код в файлы, содержащие инструкции Z-машины (называемые файлами историй или файлами Z-кода), и поэтому могла перенести свои текстовые приключения на новую платформу, просто написав реализацию Z-машины для этой платформы. В то время, когда использовалось большое количество несовместимых домашних компьютерных систем, это было важным преимуществом перед использованием собственного кода или разработки компилятора для каждой системы.

История

Буква Z на Z-machine означает Зорк, Первая приключенческая игра Инфокома. Файлы с Z-кодом обычно имеют имена, оканчивающиеся на .z1, .z2, .z3, .z4, .z5, .z6, .z7 или .z8, где номер - это номер версии Z-машины, на которой находится файл. предназначен для запуска, как указано в первом байт файла истории.[1]

Однако это современное соглашение. Сам Infocom использовал расширения .dat (Data) и .zip (ZIP = Z-machine Interpreter Program), но последнее противоречило широко распространенному использованию .zip для PKZIP-совместимые архивные файлы начиная с 1990-х годов, после Activision закрыто Инфоком. "Инфоком" выпустил шесть версий Z-машины. Файлы, использующие версии 1 и 2, очень редки. Известно, что только два файла версии 1 были выпущены Infocom и только два файла версии 2. Версия 3 охватывает большинство выпущенных Infocom игр. В более поздних версиях было больше возможностей, кульминацией которых стала поддержка графики в версии 6.

В компилятор (называемый Zilch), который Infocom использовал для создания своих файлов историй, никогда не выпускался, хотя документация язык использовал (ЗИЛ, а Лисп -семейный язык похож на Лей ) все еще существует, и замена с открытым исходным кодом[2] была написана. После Медиагенный переехал Infocom в Калифорнию в 1989 году, Компьютерный игровой мир заявил, что «ЗИЛ ... функционально мертв», и сообщил о слухах о «совершенно новом парсере, который, возможно, никогда не будет использоваться».[3] В мае 1993 г. Грэм Нельсон выпустила первую версию своего Сообщить компилятор, который также генерирует файлы истории Z-машины в качестве своего вывода, хотя исходный язык Inform сильно отличается от ZIL.

Информ стал популярен в интерактивная фантастика сообщество. Большая часть интерактивной художественной литературы представлена ​​в виде файлов рассказов Z-машины. Спрос на возможность создавать файлы игр большего размера побудил Нельсона указать версии 7 и 8 Z-машины, хотя версия 7 используется редко. Из-за способа обработки адресов файл истории версии 3 может иметь длину до 128 КБ, история версии 5 может иметь длину до 256 КБ, а история версии 8 может иметь длину до 512 КБ. Хотя эти размеры могут показаться небольшими по сегодняшним компьютерным стандартам, для текстовых приключений они достаточно велики для сложных игр.

В 1990-х годах Нельсон разработал стандарт Z-Machine.[4] на основе подробных исследований существующих файлов Infocom.

Переводчики

Реализация Frotz, работающая на iPhone, играя Зорк I.

Переводчики для файлов Z-кода доступны на самых разных платформах. На веб-сайте Inform перечислены ссылки на свободно распространяемые интерпретаторы для 15 настольных операционных систем (включая 8-битные микрокомпьютеры 1980-х годов, такие как Яблоко II, TRS-80, и ZX Spectrum и объединяя "Unix" и "Windows" по одной), 10 мобильных операционных систем (включая Palm OS и Геймбой ) и четыре платформы интерпретаторов (Emacs, Java, JavaScript и Scratch). По словам Нельсона, это «возможно, самая портативная виртуальная машина из когда-либо созданных».[5]

Среди популярных переводчиков - Нитфол и Фротц. Nitfol использует Glk API, и поддерживает версии с 1 по 8 Z-машины, включая графическую Z-машину версии 6. Файлы сохранения хранятся в стандартном Кетцаль сохранить формат. Двоичный файлы доступны для нескольких разных операционные системы, в том числе классическая Mac OS, Unix-подобный системы, ДОС, и Windows.[6]

Frotz был написан на C Стефаном Йокишем в 1995 году для DOS. Со временем он был перенесен на другие платформы, такие как Unix-подобный системы,[7] ОС RISC,[8] и iOS.[9] Звуковые эффекты и графика поддерживались в разной степени. К 2002 году разработка застопорилась, и программу подхватил Дэвид Гриффит. Кодовая база была разделена между виртуальная машина и пользовательский интерфейс части таким образом, чтобы виртуальная машина стала независимой от любого пользовательского интерфейса. Это дало возможность разнообразить портирование Frotz. Один из незнакомых портов также один из самых простых: мгновенное сообщение бот заключен в версию Frotz с минимальным IO функциональность создания бота, с которым можно играть в большинство игр Z-machine с помощью клиента обмена мгновенными сообщениями.[10]

Еще один популярный клиент для macOS и другие Unix-подобный системы Zoom. Он поддерживает то же Кетцаль save-format, но упаковка файловой структуры отличается.[11]

Смотрите также

  • Glulx - Похож на Z-machine, но снимает несколько устаревших ограничений
  • Сообщить - Компьютерный язык, который может создавать программы Z-машины
  • SCUMMSскрипт Cреакция Uспособность для Mаньяк MAnsion к LucasArts, графическая система похожа на Z-machine
  • ТАДС - Как и Glulx, сделано для устранения некоторых его ограничений
  • Motorola 68000 серии - Базовая архитектура, используемая для виртуальных машин в Магнитные свитки 'приключенческие игры

Рекомендации

  1. ^ "Документ стандартов Z-Machine". inform-fiction.org. Получено 26 марта 2018.
  2. ^ МакГрю, Джесси. «ЗИЛФ». zilf.io. Получено 22 ноября 2020.
  3. ^ «Внутри отрасли: движение Infocom на западном побережье вызывает споры», Компьютерный игровой мир, п. 10 сентября 1989 г.
  4. ^ «Информ - ZMachine - Стандарты». inform-fiction.org. Получено 26 марта 2018.
  5. ^ Нельсон, Грэм. «О переводчиках». Информ сайт. Получено 2009-11-07.
  6. ^ "если-архив / инфоком / переводчики / нитфол". Получено 2016-10-29.
  7. ^ "Файл Frotz README на Gitlab". Получено 2019-02-19.
  8. ^ "Домашняя страница RISC OS Frotz". 1999-09-18.
  9. ^ "Frotz в App Store". Магазин приложений.
  10. ^ "Файл Frotz DUMB на Gitlab". Получено 2019-02-19.
  11. ^ «Масштаб с логическим сдвигом». Получено 2016-10-29.

внешняя ссылка