Z-machine (игровой движок)


Z-machine — виртуальная машина, разработанная Джоэлем Березом и Марком Бланком[англ.] в 1979 году и использовавшаяся компанией Infocom для текстовых приключенческих игр. С помощью специализированного компилятора исходный код игры компилировался в так называемые «файлы с историями» или «Z-code файлы», содержащие бинарные инструкции для Z-машины, что позволяло портировать игры на новую платформу, просто написав Z-machine для этой платформы. С большим количеством несовместимых домашних компьютерных систем в то время, это являлось важным преимуществом по сравнению с использованием нативного кода или разработкой компилятора для каждой системы отдельно.

Буква «Z» является первой буквой названия Zork, первой приключенческой игры, выпущенной компанией Infocom. Согласно современной конвенции, файлы историй обычно имеют расширения .Z1, .Z2, Z3, .Z4, Z5, Z6, .Z7, либо .Z8, где цифра-это номер версии Z-machine, для которой предназначен файл с историей. Также первый байт в файле с историей тоже обозначал версию[1], однако оригинальные файлы историй, созданные в Infocom, имели расширения .DAT (от англ. data, данные) и .ZIP (от англ. Z-machine Interpreter Program).

За всю историю разработки Infocom создала шесть версий Z-machine, наибольшее количество игры студии вышло для третьей версии. Более поздние версии имели больше возможностей, так например игры, использующие версию шесть, поддерживали графику.

Компилятор под названием Zilch, использовавшийся для создания файлов историй, никогда не публиковался, хотя была написана документация языка ZIL (Zork Implementation Language) под открытой лицензией[2]. После приобретения Infocom компанией Activision, журнал Computer Gaming World объявил, что «ZIL […] функционально мертв», и сообщил слухи о «совершенно новом парсере, который может никогда не будет использован»[3]. В мае 1993 года Грэм Нельсон выпустил первую версию компилятора для своего языка Inform, который генерирует файлы для Z-machine, даже несмотря на то, что язык Inform отличается от ZIL.

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

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