Z-машина
Эта статья нуждается в дополнительных цитатах для проверки . ( декабрь 2009 г. ) |
Дизайнер | Инфоком |
---|---|
Биты | 16 |
Представлено | 1979 |
Версия | 1.1 (2014) |
Дизайн | ЦИСК |
Порядок байтов | Большой |
Открыть | Да |
Z -машина — это виртуальная машина , разработанная Джоэлом Бересом и Марком Бланком в 1979 году и используемая Infocom для своих текстовых приключенческих игр . Infocom скомпилировала игровой код в файлы, содержащие инструкции Z-машины (называемые файлами историй или файлами Z-кода), и поэтому могла перенести свои текстовые приключения на новую платформу, просто написав реализацию Z-машины для этой платформы. Учитывая большое количество несовместимых домашних компьютерных систем, использовавшихся в то время, это было важным преимуществом по сравнению с использованием собственного кода или разработкой компилятора для каждой системы.
История
[ редактировать ]Буква «Z» в слове Z-machine означает Zork , первую приключенческую игру Infocom. Файлы с Z-кодом обычно имеют имена, оканчивающиеся на .z1, .z2, .z3, .z4, .z5, .z6, .z7 или .z8, где число — это номер версии Z-машины, на которой находится файл. предназначен для запуска, как указано в первом байте файла истории. [ 1 ]
Однако это современная конвенция. Сама компания Infocom использовала расширения .dat (данные) и .zip (ZIP = программа-интерпретатор Z-машины), но последнее противоречило широкому использованию .zip для PKZIP-совместимых архивных файлов , начиная с 1990-х годов, после того как Activision закрыла Infocom. Компания «Инфоком» выпустила шесть версий Z-машины. Файлы, использующие версии 1 и 2, встречаются очень редко. Известно, что Infocom выпустила только два файла версии 1 и только два файла версии 2. Версия 3 охватывает большинство выпущенных Infocom игр. Более поздние версии имели больше возможностей, кульминацией которых стала некоторая графическая поддержка в версии 6.
Компилятор (называемый Zilch), который компания Infocom использовала для создания своих файлов историй, так и не был выпущен, хотя документация по языку используемому под названием ZIL , языку семейства Lisp , похожему на MDL , все еще существует, и есть замена с открытым исходным кодом "ZILF". [ 2 ] было написано. После того, как Mediagenic переместила Infocom в Калифорнию в 1989 году, Computer Gaming World заявила, что «ЗИЛ ... функционально мертв», и сообщила о слухах о «совершенно новом парсере, который, возможно, никогда не будет использоваться». [ 3 ] В мае 1993 года Грэм Нельсон выпустил первую версию своего компилятора Inform , который на выходе также генерирует файлы историй Z-машины, хотя исходный язык Inform сильно отличается от ZIL.
Inform стал популярным в сообществе интерактивной фантастики . Большая часть интерактивной художественной литературы представлена в виде файлов историй Z-машины. Спрос на возможность создания больших игровых файлов побудил Нельсона указать версии 7 и 8 Z-машины, хотя версия 7 используется редко. Из-за способа обработки адресов файл истории версии 3 может иметь длину до 128 КБ, файл истории версии 5 — до 256 КБ, а длина истории версии 8 — до 512 КБ. Хотя эти размеры могут показаться небольшими по сегодняшним вычислительным стандартам, для текстовых приключений они достаточно велики для сложных игр.
В 1990-х годах Грэм Нельсон разработал стандарт Z-Machine на основе детального изучения существующих файлов Infocom. Стандарт также включает расширения, используемые в его новых версиях, а также ссылки на формат ресурсов « Blorb », используемый Infocom, и формат файла сохранения « Quetzal ». [ 4 ] В 2006 году Нельсон расширил Z-machine до 32-битного формата Glulx для Inform 7. Фонд Interactive Fiction Technology Foundation , основанный в 2016 году, управляет всеми этими стандартами. [ 5 ]
ЗИЛ (язык реализации Zork)
[ редактировать ]ZIL основан на MDL от MIT. Вот определение медного фонаря Зорка I:
<OBJECT LANTERN
(LOC LIVING-ROOM)
(SYNONYM LAMP LANTERN LIGHT)
(ADJECTIVE BRASS)
(DESC "brass lantern")
(FLAGS TAKEBIT LIGHTBIT)
(ACTION LANTERN-F)
(FDESC "A battery-powered lantern is on the trophy case.")
(LDESC "There is a brass lantern (battery-powered) here.")
(SIZE 15)>
Более сложный пример, включающий бой вместе с его эквивалентом MDL Zork, представлен в блоге Эндрю Плоткина в 2019 году. Примечательно, что Z-машина не поддерживает сборку мусора , а в ZIL нет концепции системы списков Лиспа. [ 6 ]
Переводчики
[ редактировать ]Интерпретаторы файлов Z-кода доступны на самых разных платформах. На веб-сайте Inform перечислены ссылки на свободно доступные интерпретаторы для 15 настольных операционных систем (включая 8-битные микрокомпьютеры 1980-х годов, такие как Apple II , TRS-80 и ZX Spectrum , и группирующие «Unix» и «Windows» по одному) , 10 мобильных операционных систем (включая Palm OS и Game Boy ) и четыре платформы интерпретатора (Emacs, Java, JavaScript и Scratch). По словам Нельсона, это «возможно, самая портативная виртуальная машина из когда-либо созданных». [ 7 ]
Популярные переводчики включают Нитфола и Фротца. Nitfol использует Glk API и поддерживает версии Z-машины с 1 по 8, включая графическую Z-машину версии 6. Файлы сохранений хранятся в стандартном формате сохранения Quetzal . Двоичные файлы доступны для нескольких различных операционных систем , включая классическую Mac OS , Unix-подобные системы, DOS и Windows . [ 8 ]
Frotz был написан на языке C Стефаном Йокишем в 1995 году для DOS. Со временем он был портирован на другие платформы, такие как Unix-подобные системы. [ 9 ] РИСКИ , [ 10 ] и iOS . [ 11 ] Звуковые эффекты и графика поддерживались в разной степени. К 2002 году разработка застопорилась, и программу взял на себя Дэвид Гриффит. База кода была разделена между виртуальной машиной и частями пользовательского интерфейса таким образом, что виртуальная машина стала независимой от любого пользовательского интерфейса. Это позволило больше разнообразия в портировании Фротца. Один из незнакомых портов также является одним из самых простых: для обмена мгновенными сообщениями бот обернут вокруг версии Frotz с минимальной функциональностью ввода-вывода , создавая бота, с которым можно играть в большинство игр Z-машины, используя клиент обмена мгновенными сообщениями. [ 12 ]
Еще один популярный клиент для macOS и других Unix-подобных систем — Zoom. [ 13 ] Он поддерживает тот же формат сохранения Quetzal , но упаковка файловой структуры другая.
См. также
[ редактировать ]- Glulx – похож на Z-машину, но снимает несколько устаревших ограничений.
- Информировать - компьютерный язык, который может создавать программы Z-машины.
- SCUMM — сценариев создания Z утилита для . Maniac Mansion - machine от LucasArts , графическая система, похожая на
- TADS – как и Glulx, создан для устранения некоторых его ограничений.
- Серия Motorola 68000 — базовая архитектура, используемая для виртуальных машин в Magnetic Scrolls . приключенческих играх
Ссылки
[ редактировать ]- ^ «Документ по стандартам Z-машины» . inform-fiction.org . Проверено 26 марта 2018 г.
- ^ МакГрю, Джесси. «ЗИЛФ» . zilf.io. Проверено 22 ноября 2020 г.
- ^ «Внутри отрасли: переезд Infocom на западное побережье вызывает споры» . Мир компьютерных игр . № 63. Сентябрь 1989. с. 10.
- ^ «Информ-ZMachine-Стандарты» . inform-fiction.org . Проверено 26 марта 2018 г.
- ^ «Спецификации Glk, Glulx и Blorb» . Фонд технологий интерактивной фантастики. 16 ноября 2022 г.
- ^ Плоткин, Андрей (17 апреля 2019 г.). «Что вообще такое ЗИЛ?» . Зарф .
- ^ Нельсон, Грэм. «О переводчиках» . Информируйте сайт . Проверено 7 ноября 2009 г.
- ^ "if-archive/infocom/interpreters/nitfol" . Проверено 29 октября 2016 г.
- ^ «Файл README Frotz на Gitlab» . Проверено 19 февраля 2019 г.
- ^ «Домашняя страница ОС RISC Frotz» . 18 сентября 1999 г.
- ^ «Фротц в App Store» . Магазин приложений .
- ^ «Файл Frotz DUMB на Gitlab» . Проверено 19 февраля 2019 г.
- ^ «Логический сдвиг масштаба» . Проверено 29 октября 2016 г.
Внешние ссылки
[ редактировать ]- Документ стандартов Z-Machine
- Изучение ZIL на Wayback Machine (архивировано 7 августа 2010 г.) (PDF) - это руководство Infocom ZIL от 1989 г.
- Описание ZIP в Wayback Machine (архивировано 9 марта 2012 г.) (PDF) программы переводчика Z-Language (внутренний документ Infocom) от 1989 г.
- Переводчики
- «Как вписать большую программу в маленькую машину» описывает создание и проектирование Z-машины.