Два интерпретатора Z-машины получили поддержку RInform

В целом, поездка удалась. Поля действительно были широкими и золотыми, хоть и обезображены заборами да сельскохозяйственной техникой. Горы были головокружительной высоты. И насколько бы ни была столица изуродована приземистыми кирпичными зданиями и безликими бетонными громадинами, везде можно было обнаружить проблески её исторического очарования. […] Почти в каждом переулке скрывались балконы с отделкой в железные сады, причудливую мозаику; дерево или цветочную террасу, кем-то выращиваемых.
(Э. Плоткин «Spider and Web», пер. Всеволода Зубарева)


Z-машина — это виртуальная машина, которая использовалась в играх Infocom. Формат Z-файлов очень компактен и его можно переносить между различными архитектурами компьютеров. Файлы Z-машины стандартизированы и используют однобайтовую кодировку текста; изначально это была Западноевропейская Латиница, но переводы игр выбирали другие кодировки. Русский Inform, переведённый Денисом Гаевым, был написан для русской кодировки Windows-1251.

Frotz — это заклинание света в играх серии Enchanter. Так же называется один из первых альтернативных интерпретаторов Z-машины: первый релиз (DOS Frotz) вышел в 1995м. Он написан на чистом Си, поэтому его было относительно легко портировать на другие настольные системы, а также мобильные телефоны и КПК, при этом каждый порт мог добавлять свои особенности и баги. Сейчас большая часть портов уже заброшена, но ветка с поддержкой DOS, Unix и Mac всё ещё жива. В ней «живут» несколько отдельных интерфейсов с общим кодом: консольный dumbfrotz, псевдографический (ncurses) frotz и графический (SDL) sfrotz.

В начале этого года Дэвид Гриффит, поддерживающий официальный Unix Frotz, успешно провёл кампанию на Kickstarter, чтобы нанять программиста, который починил проигрывание аудио. Это привлекло внимание других людей, и сейчас идёт активное переписывание кода. А между делом разработчики обратили внимание на старые баги.

После долгого переписывания и тестирования, основной интерпретатор frotz на ncurses теперь поддерживает игры RInform и может запускаться в Unicode-терминалах. Сейчас идёт работа над обновлением dumbfrotz и sfrotz. Из них особенно важен dumbfrotz, потому что он лучше всего связывается с системами озвучки экрана и программируемыми системами (т.е. на его основе есть готовые боты и MUDы). DOS Frotz не получит фикс, потому что не поддерживает Unicode.

История второго интерпретатора Viola намного короче: он есть. Это не самый старый и не очень популярный интерпретатор для Windows, Mac и Linux, написанный на Python с библиотеками SDL. В своей нише его полностью затмевает, например, более быстрый и красивый Gargoyle. Но у самого Gargoyle нет ни разработчиков, ни поддержки: последний официальный билд под Windows вышел 4 года назад, поэтому наличие альтернатив всё ещё важно. И теперь у русскоязычных игроков есть ещё одна программа, которую, может быть, кто-нибудь захочет улучшить.

Z-машина хорошо стандартизирована и для неё до сих пор пишут игры. К слову, также интересно наблюдать за разработкой альтернативных компиляторов. Сейчас активны два проекта: движение по возрождению ZIL, которое хочет вернуть язык из 80х, и новый язык Dialog, который использует идеи Inform и Prolog с современных позиций.

Ты покидаешь переулок с дверью и направляешься посмотреть, что ещё можно найти в этом прекрасном городе.

Нет комментариев