Z-machine (ігровий рушій)
Розробка | Infocom |
---|---|
Розрядність | 16 |
Поява | 1979 |
Версія | 1.1 (2014) |
Тип архітектури | CISC |
Порядок байтів | big-endian |
Відкритий дизайн | Так |
Z-machine — це віртуальна машина, яку розробили Джоель Берез і Марк Бланк[en] у 1979 році і використовується компанією Інфоком[ru] для текстових пригодницьких ігор. Інфоком компілювали код гри у файли, які містять інструкції для Z-машини (вони називалися «Файли з історіями» (англ. story files) або «Z-код файли»), що дозволяло перенести ігри на нову платформу, просто написавши Z-machine для цієї платформи. За великої кількості несумісних домашніх комп'ютерних систем в той час, це було важливою перевагою в порівнянні з використанням нативного коду або розробкою компіляторів для кожної системи окремо.
Літера «Z» є першою буквою назви Zork, першої пригодницької гри, випущеної компанією Інфоком. Z-кад файли зазвичай мають назви, що закінчуються на .Z1, .Z2, Z3, .Z4, Z5, Z6, .Z7, або .Z8, де цифра — це номер версії Z-machine, для якої призначений файл з історією. Перший байт у файлі з історією теж позначав версію.[1]
Однак це сучасна домовленість. Сам Інфоком використовував розширення .DAT (від англ. data, дані) і .zip (від англ. Z-machine Interpreter Program), але останнє розширення стало широко застосовуватися архіваторами починаючи з 1990-х років, після того, як Activision закрив Інфоком. Інфоком випустили шість версій Z-machine. Файли для версій 1 і 2 є дуже рідкісними. Всього дві гри для 1 і дві для версії 2. Версія 3 охоплює більшість випущених ігор. Більш пізні версії мали більше можливостей, наприклад ігри, що використовують версію шість, підтримували графіку.
Компілятор (називався Zilch), який Інфоком використовували для того, щоб створити файл з розповіддю, ніколи не був випущений, хоча була написана документація мови (ZIL) під відкритою ліцензією[2] . Після того, як Mediagenic перевів Інфоком у Каліфорнію в 1989 році, журнал Computer Gaming World заявив, що « ZIL … функціонально мертвий», і повідомив чутки про «абсолютно новий парсер, який можливо ніколи не буде використаний».[3] У травні 1993 року, Грем Нельсон випустив першу версію компілятора для своєї мови Inform, який генерує файли для Z-machine, навіть незважаючи на те, що мова Inform відрізняється від ZIL.
Inform став популярним у сфері інтерактивної літератури. Більша частина інтерактивної фантастики була у файлах для Z-machine. Попит на можливість створення великих ігрових файлів підштовхнув Нельсона на створення специфікації сьомої і восьмої версій Z-machine, хоча версія 7 використовується рідко. Через різні способів адресації Story file для версії 3 може бути об'ємом до 128 КБ, версія 5 підтримує до 256 КБ, а на версії 8 файл може бути розміром 512 КБ. Хоча ці розміри можуть здатися незначними за нинішніми стандартами обчислювальної техніки, для текстових пригод вони достатньо великі для розробки хитромудрих ігор.
У 1990-х роках, Нельсон розробив стандарт Z-machine[4] на основі детального аналізу наявних Інфоком-файлів.
Інтерпретатори для Z-code файлів доступні на різних платформах. На сайті Інформу наведено посилання на інтерпретатори для 15 настільних операційних систем (зокрема 8-розрядних мікроеом з 1980-х років, таких, як Apple II, ТР-80, і Спектрум, а також для UNIX і Windows), 10 мобільних операційних систем (включно з Palm OS і Game boy), і для трьох кросплатформених інтерпретаторів (Emacs, Java і JavaScript). За словами Нельсона, це «можливо, найпортативніша віртуальна машина, з будь-коли створених»[5].
Популярними є інтерпретаторами Nitfol і Frotz. Nitfol використовує Glk[en] API, і підтримує версії з 1 по 8, зокрема й версію 6 c графікою. Файли збережень зберігаються у форматі Quetzal[en]. Двійкові файли доступні для декількох різних операційних систем, зокрема й для Macintosh, Linux, DOS і Windows.[6]
Ще один популярний клієнт для Mac (OS Х) — це Zoom. Він підтримує той же формат Quetzal, але структура файлу інша.[7]
Frotz був написаний мовою Сі Стефаном Джокишем (Stefan Jokisch) у 1995 році для DOS. З часом був портований на інші платформи, такі як Unix, RISC ОС, MACK ОС і IOS.[8] Звукові ефекти і графіка підтримувалися тою чи іншою мірою. До 2002 року, розвиток зайшов у глухий кут і програму взяв на доопрацювання Девід Гріффіт. Код віртуальної машини та користувача інтерфейсу був розділений таким чином, щоб віртуальна машина стала незалежною від будь-якого користувацького інтерфейсу. Це дало можливість створювати більше варіацій для портування Frotz. Одна з найбільш дивних адаптацій також була однією з найпростіших: бот для обміну миттєвими повідомленнями обгорнутий навколо Frotz з мінімальною можливістю вводу-виводу, з яким можна грати в ігри для Z-machine через клієнт обміну миттєвими повідомленнями.[9]
- Glulx — проект, схожий на Z-machine, але знімає ряд властивих їй обмежень. Розроблено Ендрю Плоткіним у 1999 році. З того часу було випущено низку нових версій, що включають, зокрема, підтримку UNICODE. На відміну від 16-бітної Z-machine, працює з 32-бітним адресним простором.
- Inform — мова програмування, якою можна створювати програми для Z-machine.
- SCUMM[ru] — (Script Creation Utility for Maniac Mansion by LucasArts), графічна система, схожа на Z-machine.
- TADS[en] — як Glulx, спрямований на вирішення деяких з його обмежень.
- ↑ The Z-Machine Standards Document. inform-fiction.org. Архів оригіналу за 1 лютого 2018. Процитовано 26 березня 2018.
- ↑ McGrew, Jesse. ZILF. Bitbucket. Архів оригіналу за 28 листопада 2021. Процитовано 12 серпня 2019.
- ↑ Inside the Industry: Infocom's West Coast Move Stirs Controversy, Computer Gaming World, September 1989, с. 10
- ↑ Inform - ZMachine - Standards. inform-fiction.org. Архів оригіналу за 18 березня 2018. Процитовано 26 березня 2018.
- ↑ Nelson, Graham. About Interpreters. Inform website. Архів оригіналу за 3 грудня 2009. Процитовано 7 листопада 2009.
- ↑ if-archive/infocom/interpreters/nitfol. Процитовано 29 жовтня 2016.
- ↑ Logical Shift Zoom. Архів оригіналу за 9 серпня 2019. Процитовано 29 жовтня 2016.
- ↑ Frotz README file on Github. Архів оригіналу за 19 листопада 2018. Процитовано 29 жовтня 2016.
- ↑ Frotz DUMB file on Github. Архів оригіналу за 27 березня 2018. Процитовано 29 жовтня 2016.
- The Z-Machine standards document [Архівовано 12 серпня 2019 у Wayback Machine.]
- Learning ZIL (PDF) — посібник з Infocom ZIL, 1989
- Description of ZIP (PDF) Інтерпретатор мови Z (внутрішній документ Infocom), 1989
- Interpreters
- How to Fit a Large Program Into a Small Machine [Архівовано 28 липня 2019 у Wayback Machine.] опис створення і дизайну Z-machine