Z-machine — це віртуальна машина, яку розробили Джоель Берез і у 1979 році і використовується компанією для текстових пригодницьких ігор. Інфоком компілювали код гри у файли, які містять інструкції для Z-машини (вони називалися «Файли з історіями» () або «Z-код файли»), що дозволяло перенести ігри на нову платформу, просто написавши Z-machine для цієї платформи. За великої кількості несумісних домашніх комп'ютерних систем в той час, це було важливою перевагою в порівнянні з використанням нативного коду або розробкою компіляторів для кожної системи окремо.
Історія Літера «Z» є першою буквою назви Zork, першої пригодницької гри, випущеної компанією Інфоком. Z-кад файли зазвичай мають назви, що закінчуються на .Z1, .Z2, Z3, .Z4, Z5, Z6, .Z7, або .Z8, де цифра — це номер версії Z-machine, для якої призначений з історією. Перший байт у файлі з історією теж позначав версію.
Однак це сучасна домовленість. Сам Інфоком використовував розширення .DAT (від , дані) і .zip (від ), але останнє розширення стало широко застосовуватися архіваторами починаючи з 1990-х років, після того, як Activision закрив Інфоком. Інфоком випустили шість версій Z-machine. Файли для версій 1 і 2 є дуже рідкісними. Всього дві гри для 1 і дві для версії 2. Версія 3 охоплює більшість випущених ігор. Більш пізні версії мали більше можливостей, наприклад ігри, що використовують версію шість, підтримували графіку.
Компілятор (називався Zilch), який Інфоком використовували для того, щоб створити файл з розповіддю, ніколи не був випущений, хоча була написана документація мови (ZIL) під відкритою ліцензією . Після того, як Mediagenic перевів Інфоком у Каліфорнію в 1989 році, журнал Computer Gaming World заявив, що « ZIL … функціонально мертвий», і повідомив чутки про «абсолютно новий парсер, який можливо ніколи не буде використаний». У травні 1993 року, Грем Нельсон випустив першу версію компілятора для своєї мови Inform, який генерує файли для Z-machine, навіть незважаючи на те, що мова Inform відрізняється від ZIL.
Inform став популярним у сфері інтерактивної літератури. Більша частина інтерактивної фантастики була у файлах для Z-machine. Попит на можливість створення великих ігрових файлів підштовхнув Нельсона на створення специфікації сьомої і восьмої версій Z-machine, хоча версія 7 використовується рідко. Через різні способів адресації Story file для версії 3 може бути об'ємом до 128 КБ, версія 5 підтримує до 256 КБ, а на версії 8 файл може бути розміром 512 КБ. Хоча ці розміри можуть здатися незначними за нинішніми стандартами обчислювальної техніки, для текстових пригод вони достатньо великі для розробки хитромудрих ігор.
У 1990-х роках, Нельсон розробив стандарт Z-machine на основі детального аналізу наявних Інфоком-файлів.
Інтерпретатори
Інтерпретатори для Z-code файлів доступні на різних платформах. На сайті Інформу наведено посилання на інтерпретатори для 15 настільних операційних систем (зокрема 8-розрядних мікроеом з 1980-х років, таких, як Apple II, ТР-80, і Спектрум, а також для UNIX і Windows), 10 мобільних операційних систем (включно з Palm OS і Game boy), і для трьох кросплатформених інтерпретаторів (Emacs, Java і JavaScript). За словами Нельсона, це «можливо, найпортативніша віртуальна машина, з будь-коли створених».
Популярними є інтерпретаторами Nitfol і Frotz. Nitfol використовує API, і підтримує версії з 1 по 8, зокрема й версію 6 c графікою. Файли збережень зберігаються у форматі Quetzal. Двійкові файли доступні для декількох різних операційних систем, зокрема й для Macintosh, Linux, DOS і Windows.
Ще один популярний клієнт для Mac (OS Х) — це Zoom. Він підтримує той же формат Quetzal, але структура файлу інша.
Frotz був написаний мовою Сі Стефаном Джокишем (Stefan Jokisch) у 1995 році для DOS. З часом був портований на інші платформи, такі як Unix, RISC ОС, MACK ОС і IOS. Звукові ефекти і графіка підтримувалися тою чи іншою мірою. До 2002 року, розвиток зайшов у глухий кут і програму взяв на доопрацювання Девід Гріффіт. Код віртуальної машини та користувача інтерфейсу був розділений таким чином, щоб віртуальна машина стала незалежною від будь-якого користувацького інтерфейсу. Це дало можливість створювати більше варіацій для портування Frotz. Одна з найбільш дивних адаптацій також була однією з найпростіших: бот для обміну миттєвими повідомленнями обгорнутий навколо Frotz з мінімальною можливістю вводу-виводу, з яким можна грати в ігри для Z-machine через клієнт обміну миттєвими повідомленнями.
Див. також
Glulx — проект, схожий на Z-machine, але знімає ряд властивих їй обмежень. Розроблено Ендрю Плоткіним у 1999 році. З того часу було випущено низку нових версій, що включають, зокрема, підтримку UNICODE. На відміну від 16-бітної Z-machine, працює з 32-бітним адресним простором. Inform — мова програмування, якою можна створювати програми для Z-machine. — (Script Creation Utility for Maniac Mansion by LucasArts), графічна система, схожа на Z-machine. TADS — як Glulx, спрямований на вирішення деяких з його обмежень.
Примітки
Посилання
The Z-Machine standards document Learning ZIL (PDF) — посібник з Infocom ZIL, 1989 Description of ZIP (PDF) Інтерпретатор мови Z (внутрішній документ Infocom), 1989 Interpreters How to Fit a Large Program Into a Small Machine опис створення і дизайну Z-machine