Изменения

Перейти к навигации Перейти к поиску

Frotz

10 326 байт добавлено, 19:33, 21 июля 2018
Новая страница: «{{product info |название = |тип = Интерпретаторы Z-машины |разработчик = Изначально Разработчик:…»
{{product info
|название =
|тип = Интерпретаторы Z-машины
|разработчик = Изначально [[Разработчик::Джокиш, Стефан|Стефан Джокиш]], портирование на Unix [[Разработчик::Хазелвуд, Гален|Гален Хазелвуд]], текущий ментейнер основной ветки [[Разработчик::Гриффит, Дэвид|Дэвид Гриффит]]
|язык =
|система = Unix и ряд других за счёт портированных версий
|онлайн =
|написано на = [[C]]
|язык разработки =
|читаемый формат = Игры для Z-машины ([[.z?|*.z?]];[[.zblorb|*.zblorb]];[[.zlb|*.zlb]];[[.zip|*.zip]];[[.dat|*.dat]])
|создаваемый формат =
|первый выпуск = 1995
|последняя версия = 2.45 (относится к основной ветки Unix Frotz)
|дата последней версии = 02.06.2015
|состояние =
|лицензия = [https://gitlab.com/DavidGriffith/frotz/blob/master/COPYING GNU GPL v2]
|сайт = [http://frotz.sourceforge.net/ frotz.sourceforge.net]
}}

Frotz - это семейство [[:Категория:Интерпретаторы Z-машины|интерпретаторов игр, написанных под Z-машину]], соответствующих стандарту 1.0 спецификации [[Нельсон, Грэхем|Грэхема Нельсона]]. Frotz поддерживает в том числе и малораспространённый формат 6 версии [[Z-машина|Z-машины]]. Его название происходит от [[Заклинание|заклинания]] освещения из серии игр [[Enchanter]] от [[Infocom]]. Слово "frotz" на специфическом сленге Массачусетского технологического института, чьими выпускниками были основатели [[Infocom]], также означало "играть с" (англ. game with) (то есть по-русски это звучало бы примерно как "фродзить"), что, вероятно, и послужило прародителем для соответствующего [[Заклинание|заклинания]].

В конце 1980-х - начале 1990-х годов многие энтузиасты работали над тем, чтобы расшифровать формат [[Infocomp]], разработав в этот период несколько интерпретаторов [[Z-машина|Z-машины (Z-code)]]. Frotz не был первым из них, а скорей наоборот одним из последних, опираясь во многом на наработки кодовой базы [[Хауэлл, Марк|Марка Хауэлла]]. В итоге, он стал наиболее распространённым [[:Категория:Интерпретаторы Z-машины|интерпретатором Z-машины]], приобретя статус эталонного.

Изначально Frotz был написан и разрабатывался в 1995-1999 годах [[Джокиш, Стефан|Стефаном Джокишом]] под операционную систему MS-DOS, но в 2000 году его код был портирован [[Хазелвуд, Гален|Галеном Хазелвудом]] на Unix. С 2002 года поддержкой Unix Frotz занимается [[Гриффит, Дэвид|Дэвид Гриффит]]. В частности, именно им была проделана работа по разделению слоя виртуальной машины и пользовательского интерфейса, что обеспечило возможность более лёгкого портирования Frotz на другие операционные системы и разработки на его основе производных продуктов.

== Особенности работы с русским языком ==
Технические особенности реализации [[Z-машина|Z-машины]] и языка [[Inform]] долгое время не позволяли обеспечить корректный ввод и вывод не ASCII символов. Для всех кириллических букв и сопутствующих символов не хватало ячеек памяти, а алгоритмы обработки вводимой строки имели ряд ошибок, проявлявшихся при попытке обойти это ограничение встроенными инструментами [[Inform]] через таблицу символов, внесение в которую позволяет сократить объём памяти, необходимый для хранения текстового символа.

Благодаря инициативе [[Гранкин, Андрей|Андрея Гранкина]] в 2002-2003 годах и переработке некоторых алгоритмов обработки ввода, выполненной [[Киндер, Дэвид|Дэвидом Киндером]] в [[Windows Frotz]], были обеспечены условия для корректной работы с кириллическим текстом (впрочем, как и всем Unicode). Однако проблема работы с кириллицей осталась актуальна для всех предшествующих версий Frotz, а также некоторых параллельных версий для других систем, где соответствующие доработки выполнены не были.

Таким образом, далеко не все интерпретаторы семейства Frotz в принципе способны корректно работать с русским текстом. Проблемы проявляются в виде вывода текста русскоязычной игры знаками вопроса. Следует помнить, что на сегодняшний день данная проблема находится в области ответственности именно [[Интерпретатор|интерпретатора]]. То есть принципиально русскоязычные игры для [[Z-машина|Z-машины воспроизводимы]], просто для этого могут потребоваться существенные усилия: от экспериментального подбора работоспособного интерпретатора до запуска игры в интерпретаторе на другой системе, где эти проблемы решены.

К сожалению, обозначенные проблемы работы движка Frotz с кириллическим текстом проявляются не только на старых версиях до 2003 года, но и на вполне актуальных интерпретаторах на его основе, например, на версии [https://itunes.apple.com/us/app/frotz/id287653015 Frotz для iOS], так как на них соответствующие доработки для поддержки не ASCII символов и различных национальных однобайтовых кодировок выполнены не были.

== Портированные версии и производные продукты ==
На сегодняшний день основная разработка интерпретатора как такового идёт в рамках Unix-версии Frotz, которая называется Unix Frotz или просто Frotz, но существует целый ряд производных продуктов, базирующихся на его движке.

Самый известный порт Frotz - это [[Windows Frotz]], разрабатываемый [[Киндер, Дэвид|Дэвидом Киндером]] под системы Windows. Он также примечателен тем, что в нём решена проблема ввода и вывода не ASCII символов, а значит [[интерпретатор]] пригоден для воспроизведения русскоязычных игр для [[Z-машина|Z-машины]].

Кроме того, существует большое количество других интерпретаторов, базирующихся на движке Frotz, для различных операционных систем и устройств. наиболее полный их перечень можно посмотреть в [https://www.ifarchive.org/indexes/if-archiveXinfocomXinterpretersXfrotz.html соответствующем разделе IF Archive].

Некоторые из производных продуктов являются мультиформатными [[Интерпретатор|интерпретаторами]], просто используя ядро Frotz для реализации поддержки Z-машины. В том числе [https://itunes.apple.com/us/app/frotz/id287653015 Frotz для iOS], несмотря на своё название, в действительности также поддерживает воспроизведение игр на [[Glulx]] и [[TADS]].

== Ссылки ==
* [http://frotz.sourceforge.net/ Официальный сайт Frotz]
* [https://gitlab.com/DavidGriffith/frotz Репозиторий с исходным кодом]

== См. также ==
* [[:Категория:Игры на RInform|Игры на RInform]]
* [[:Категория:Игры на Inform|Игры на Inform]

Навигация