Frotz
Frotz | |
Тип | Интерпретаторы Z-машины |
---|---|
Разработчик(и) | Изначально Стефан Джокиш, портирование на Unix Гален Хазелвуд, текущий ментейнер основной ветки Дэвид Гриффит |
Операционные системы | Unix и ряд других за счёт портированных версий |
Написано на | C |
Читаемые форматы файлов | Игры для Z-машины (*.z?;*.zblorb;*.zlb;*.zip;*.dat) |
Дата первого выпуска | 1995 |
Последняя версия | 2.53 (относится к основной ветки Unix Frotz) |
Дата последней версии | 28 февраля 2021 |
Лицензия | GNU GPL v2 |
Сайт | frotz.sourceforge.net |
Изначально Frotz был написан и разрабатывался в 1995-1999 годах Стефаном Джокишом под операционную систему MS-DOS, но в 2000 году его код был портирован Галеном Хазелвудом на Unix. С 2002 года поддержкой Unix Frotz занимается Дэвид Гриффит. В частности, именно им была проделана работа по разделению слоя виртуальной машины и пользовательского интерфейса, что обеспечило возможность более лёгкого портирования Frotz на другие операционные системы и разработки на его основе производных продуктов.
Содержание
Особенности работы с русским языком
Технические особенности реализации Z-машины и языка Inform долгое время не позволяли обеспечить корректный ввод и вывод не ASCII символов. Для всех кириллических букв и сопутствующих символов не хватало ячеек памяти, а алгоритмы обработки вводимой строки имели ряд ошибок, проявлявшихся при попытке обойти это ограничение встроенными инструментами Inform через таблицу символов, внесение в которую позволяет сократить объём памяти, необходимый для хранения текстового символа.
Благодаря инициативе Андрея Гранкина в 2002-2003 годах и переработке некоторых алгоритмов обработки ввода, выполненной Дэвидом Киндером в Windows Frotz, были обеспечены условия для корректной работы с кириллическим текстом (впрочем, как и всем Unicode). Однако проблема работы с кириллицей осталась актуальна для всех предшествующих версий Frotz, а также некоторых параллельных версий для других систем, где соответствующие доработки выполнены не были.
Таким образом, далеко не все интерпретаторы семейства Frotz в принципе способны корректно работать с русским текстом. Проблемы проявляются в виде вывода текста русскоязычной игры знаками вопроса. Следует помнить, что на сегодняшний день данная проблема находится в области ответственности именно интерпретатора. То есть принципиально русскоязычные игры для Z-машины воспроизводимы, просто для этого могут потребоваться существенные усилия: от экспериментального подбора работоспособного интерпретатора до запуска игры в интерпретаторе на другой системе, где эти проблемы решены.
К сожалению, обозначенные проблемы работы движка Frotz с кириллическим текстом проявляются не только на старых версиях до 2003 года, но и на вполне актуальных интерпретаторах на его основе, например, на версии Frotz для iOS, так как на них соответствующие доработки для поддержки не ASCII символов и различных национальных однобайтовых кодировок выполнены не были.
Портированные версии и производные продукты
На сегодняшний день основная разработка интерпретатора как такового идёт в рамках Unix-версии Frotz, которая называется Unix Frotz или просто Frotz, но существует целый ряд производных продуктов, базирующихся на его движке.
Кроме того, существует большое количество других интерпретаторов, базирующихся на движке Frotz, для различных операционных систем и устройств. наиболее полный их перечень можно посмотреть в соответствующем разделе IF Archive.
Некоторые из производных продуктов являются мультиформатными интерпретаторами, просто используя ядро Frotz для реализации поддержки Z-машины. В том числе Frotz для iOS, несмотря на своё название, в действительности также поддерживает воспроизведение игр на Glulx и TADS.
Windows frotz что это
Windows Frotz is an interpreter that can play all the old Infocom text adventures. Infocom used a novel approach to write their games: they had a system that produced a data file for the adventure that was the same on every computer, and an interpreter for every computer that could run all the games (It was actually a bit more complicated than that, but that’s the basic idea).
During the late 1980s and early 1990s many people worked to decode Infocom’s format, producing several interpreters for the format (which is called Z-code, or the Z-Machine, with the Z coming from Zork, Infocom’s first game). Windows Frotz is the latest in this line of interpreters. During the early 1990s, Graham Nelson took the next step by writing a compiler for the format, called Inform. The result is that the modern text adventure community have written several hundred games in this format that can be played with this interpreter.
For ratings and descriptions of games you can play, search for Z-code games at IFDB.
Download and install Visual Studio 2019 Community edition from https://visualstudio.microsoft.com/. In the installer, under «Workloads», make sure that «Desktop development with C++» is selected, and under «Individual components» that «C++ MFC for latest build tools (x86 & x64)» is selected.
To be able to build the CHM help file, download and install Microsoft’s HTML Help Workshop. Note that this is a link to the version on the Internet Archive as the link to this on Microsoft’s site does not work at the moment.
Install git. I use the version of git that is part of Cygwin, a Linux-like environment for Windows, but Git for Windows can be used from a Windows command prompt.
Windows Frotz 1.22
Windows Frotz 1.22 was released on 12th February 2021.
Assets
Windows Frotz 1.21
Windows Frotz 1.21 was released on 5th August 2019.
Assets
Windows Frotz 1.20
Windows Frotz 1.20 was released on 19th October 2016.
Fixes for picture colors in Infocom’s V6 games, submitted by Stefan Jokisch, have been made. With these changes borders in Arthur and Shogun change colours as they did on the original interpreters, and the colours of an ornate initial in Zork Zero have been fixed.
Assets
Windows Frotz 1.19
Windows Frotz 1.19 was released on 25th May 2015.
Assets
Windows Frotz 1.18
Windows Frotz 1.18 was released on 3rd February 2015.
The Blorb resolution chunk (‘Reso’) is now supported, allowing graphics in V6 games to be scaled appropriately for the interpreter’s window size. For Infocom’s V6 games this scaling is done as a simple, ‘blocky’ rescale (producing a result that matches the original appearance of these games), but for other games this is done with a proper rescaling algorithm that produces smooth results.
The V6 scaling item in the options dialog has been removed: when running an Infocom V6 game the interpreter automatically resizes the window to the largest multiple of 320×200 that fits on the screen.
If the game calls the restore or save opcodes in the form that does not bring up a file dialog, the interpreter now takes care to remove any characters which would change the directory in which the file is written.
A case where the check_unicode opcode would report that a character could not be printed, when in fact it could, has been fixed.
The output_stream opcode did not correctly handle its width argument in V6: this has been corrected by a patch from David Griffith.
Assets
Windows Frotz 1.17
Windows Frotz 1.17 was released on 27th February 2011.
Fixed a long standing bug which led to incorrect Quetzal save files being produced when a Blorbed game file is loaded into the interpreter. The save files worked with previous versions of Windows Frotz as the bug was present in both the loading and saving logic, but such save files could not be loaded into other interpreters.
Unfortunately, fixing this bug means that loading old Windows Frotz saved files when running a Blorbed game is broken, as it is not possible to automatically detect old Windows Frotz saved files. To work around this, old saved files can be renamed to end with «.badsav», which causes the interpreter to load them with the old, incorrect logic. The game position can then be re-saved as a correct Quetzal save file.
The get_prop_len opcode now returns 0 when its argument is 0, as required by the Z-Machine Standard Version 1.1.
Transcript files are now written out encoded as UTF-8, allowing non-ASCII characters to be represented, rather than being replaced by a question mark.
Unicode characters now appear correctly in the scrollback dialog, provided that the dialog font supports them.
Corrected a problem which could result in the options dialog using the wrong font.
Ink: инструмент для создания текстовых квестов как из лучших воспоминаний детства
Наверное, текстовые квесты одни из самых простых видов игр. Хоть там и требуется принимать решения, в них нет стратегических задач, а выбор заранее предопределен. Тем не менее, простые не значит плохие. Возможность влиять на сюжет книги выглядит очень привлекательно. Читатели практически всегда вступают в диалог с книгами, особенно если они хорошо написаны, переживают за героев, ругают их за нелогичные поступки, спорят с автором о сюжете. Текстовые квесты позволяют чувствовать себя полноправным участником происходящего и влиять на читаемую историю, чего так долго не хватало поклонникам обычных книг.
В сравнении с историей литературы этот жанр совсем молодой, зародился в середине прошлого века в виде экспериментов, их даже пробовали использовать для геймификации образования. Расцвет жанра пришелся на 70-е годы. Поначалу интерактивность была довольно условной, с простым ветвлением; читатель всего лишь выбирал варианты развития сюжета в духе: «А что если. ». Тем не менее, некоторые серии были чрезвычайно популярны. Одна из них, под названием «Выбери себе приключение», издавалась почти 10 лет (с 1979 по 1988). Книги серии переводились на множество языков, включая и русский.
Следующей ступенью эволюции жанра были сольные ролевые игры, копирующие жанр «Подземелья и драконы», но без гейм-мастера и других участников. К некоторым даже прилагалось игровое поле с фишками, но чаще всего можно было обойтись листом бумаги, куда заносились характеристики персонажа, или вообще одной только книгой. Тем не менее, в сложных ситуациях читатель-игрок записывал ходы, если не удавалось решить какую-то задачу с первого раза. Небольшая «пасхалка» из КДПВ ссылается как раз на одну из таких книг.
Игра запущенная на DPD-10
Компьютер дал подобным играм второе рождение. Первый текстовый квест Colossal Cave Adventure был написан на фортране в 1975 году и работал на мейнфрейме PDP-10. Уже тогда рабочие компьютеры использовались как средство развлечения за счет начальства. Создатель игры, Уильям Краудер, был не только программистом, но и спелеологом, потому сюжет был о поиске сокровищ в пещере, у которой был реальный прототип — Мамонтова пещера в американском штате Кентукки. Она знаменита тем, что является самой длинной в мире (общая длина исследованных проходов больше 500 километров); есть где спрятать сокровища!
Уйльям очень ответственно подошел к разработке: локации соответствуют помещениям в настоящей пещере и описаны очень точно, а в игре Уильям использует реальный спелеологический жаргон. Домик с ручьем снаружи, другие детали, типа решеток, перегораживающих отдельные ходы пещеры, вырубленные ступени тоже существовали в реальности на тот момент, но некоторые были переделаны или снесены.
Одно из реальных мест в пещере, описываемое в игре.
Программа выступала в роли гейм-мастера, описывая окружение локации, куда попал игрок, с юмором комментируя его действия и храня список предметов, которые находятся в инвентаре. Текст, который писала программа, выводился большими буквами, действия игрока — маленькими. Игра относится к тому типу, в котором для управления требуется вводить короткие команды из двух-трех слов.
ВЫ СТОИТЕ В КОНЦЕ ДОРОГИ ПЕРЕД НЕБОЛЬШИМ КИРПИЧНЫМ ЗДАНИЕМ.
ВОКРУГ ВАС ЛЕС. НЕБОЛЬШОЙ РУЧЕЙ ВЫХОДИТ ИЗ ЗДАНИЯ И СПУСКАЕТСЯ В ОВРАГ.
ВЫ НАХОДИТЕСЬ В ДОЛИНЕ В ЛЕСНОЙ ДОЛИНЕ, РЯДОМ С РУЧЬЕМ, КОТОРЫЙ СТРУИТСЯ ПО КАМЕННОМУ ДНУ.
Формального сюжета и конкретной цели не существует. У игрока есть три жизни, которых ему должно хватить, чтобы набрать 350 очков, необходимых для выигрыша. Очки выдавались за исследования пещеры и найденные сокровища. Первоначально в игре было 66 локаций, количество которых увеличивалось с каждой следующей версией. Позже развитием игры занялся Дон Вудс, который тогда был аспирантом в Стэнфордском университете. Под его началом в следующей версии количество локаций расширилось до 140. Однако Дон никогда не был в Мамонтовой пещере, и добавленные им локации уже не совпадают с реальностью.
В 1977 году James Gillogly впервые портировал игру на другую систему, а именно на Unix. Что любопытно, этот порт до сих пор входит в состав некоторых дистрибутивов, а если его нет, то можно установить в составе репозитория bsdgames (или отдельно) и играть даже на VPS через SSH.
Так как Дон активно распространял исходный код своей версии, то это способствовало росту ее популярности и тому, что она портировалась на каждую новую платформу: Apple, Commodore и, конечно же, MS-DOS.
Версия для MS-DOS была уже с простейшей графикой, содержала 130 локаций, 15 видов сокровищ, 40 предметов для инвентаря и 12 задач, которые требовалось решить по мере прохождения.
В 1985 году Дэйв Платт выпустил свою версию игры, где надо было набрать уже 550 очков, но которая кардинально отличалась подходом к программированию таких игр. Он создал универсальный язык написания сценариев «A-code», который обрабатывался движком написанным на FORTRAN 77. Это позволило очень легко делать модификации игры и создавать другие текстовые приключения. Практически все современные игры создаются подобным образом, на специальном языке разметки, который интерпретируется движком, как универсальным, в который можно загружать самые разные игры, так и проприетарным, выдающим исполняемый файл, который можно продавать в онлайн-магазинах.
Приключение Colossal Cave Adventure было родоначальником жанра и надолго сформировало каноны подобных квестов, а так же очень сильно повлияло развитие ролевых игр, в том числе и многопользовательских. Жанр MUD создавался по образу и подобию CCA. Даже Дональд Кнут не обошел вниманием эту игру и написал небольшую книгу, посвященную анализу кода игры в обучающих целях.
CCA является настоящим долгожителем. Дон Вудс продолжал выпускать обновления вплоть до середины 90-х, а в 2017 году Эрик Реймонд взял версию игры Дона от 1995 года, отладил ее, чтобы она запускалась на современных компьютерах, и выложил код на своей странице. Существует порт игры на Андроид и переводы ее на русский язык. Поиграть в один из приведенных вариантов можно на сайте Русский Информ, платформе для создания подобных текстовых игр. Можно играть как онлайн, так и скачав файл для движка Windows Frotz.
CCA на Windows Frotz
Наверняка, поиграв в AAC, кто-то вдохновится на создание собственного текстового квеста, тем более, что они все еще очень популярны. Современные возможности компьютеров позволяют дополнять их яркой графикой и анимацией, музыкой и звуками окружения, создавая увлекательные и современные игры, но не выходя за границы жанра. Для подобного творчества существует множество инструментов. Я хочу познакомиться вас с одним из них. Его отличает то, что это не просто программа написанная для развлечения, а реальный инструмент, используемый коллективом разработчиков для создания красивых и популярных игр, высоко оцененных любителями жанра и хорошо продающихся на всех современных платформах.
В 2011 году пара разработчиков из Кембриджа занялась производством интерактивных текстовых квестов и придумала средство для упрощения своей работы — Inklewriter. Год спустя они представили его в виде сайта, который позиционировался как простое средство для обучения программированию и создания интерактивной литературы. Его даже использовали в школах и удостоили награды «Best Website for Teaching and Learning» от Американской ассоциации школьных библиотек. Спустя несколько лет разработчики были вынуждены закрыть его по причине нехватки времени на его поддержку, но открыли код своего инструмента для работы (позже они его перезапустили). Ink получил возможность интеграции с Unity, и с его помощью стало возможно с легкостью создавать интерактивные истории, сочетающие в себе не только текст с рисунками, но и музыку с анимацией. Он был взят на вооружение и другими крупными инди-студиями разработки игр, а сама Inklestudios выпустила несколько успешных игр для разных платформ: ссылка. Игры очень милые, другого слова не подобрать. Им удалось заполучить в команду талантливого художника Anastasia Wyatt, что замечательно рисует.
Хоть создатели не считают Ink языком программирования, а только средством для разметки, интерактивные скрипты умеют не только обрабатывать ветвления, но и работать с переменными, использовать логические и математические операции и даже простейшие функции. Повествование может включать несколько потоков, чтобы автор мог более полно охватить возможные действия игрока и последствия его выбора.
Проект Inkle состоит из двух частей: руководство по языку разметки ink; IDE для работы с ним — Inky. Начать писать интерактивную историю очень просто. В Inky два окна: слева текст сценария, справа его интерпретация
Начнем новый сценарий: File → New Project. Вставим в редактор следующий пример и сохраним в отдельную директорию: File → Save Project.
На приведенном фрагменте очень простая структура:
Картинка должна лежать там же, где файлы экспортированные для интернета. После внесения изменений экспортировать достаточно один файл: File → Export story.js only, остальные содержат шаблона, в который помещается история.
Написав историю, можно экспортировать ее в интернет: File → Export for web. В директории проекта появятся несколько файлов: HTML-страница; стилевое оформление в CSS; файл движка ink.js; наш сценарий 80d.js (не редактируйте его напрямую); main.js, где описывается поведение сценария. Если вы знаете CSS, то вам не составит труда отредактировать внешнее оформление истории.
Закончив оформление, историю можно выложить в интернет. Авторы Ink рекомендуют воспользоваться порталом itch.io. Это бесплатный портал с простой регистрацией. При создании проекта для Ink выберите «Kind of project» HTML, загрузите архив с файлами проекта и отметьте опцию «This file will be played in the browser». Можно посмотреть, что получилось: ruvds.itch.io/inky-test.
Если вам в свое время тоже хотелось дополнить текстовые квесты «Рейнджеров» или написать свой текстовый квест, то не стоит сдерживать свою фантазию — дерзайте вместе с Inky!
Windows frotz что это
Do these interpreters feature additional goodies like automap and stuff?
I seem to remember playing some old Zork games ages ago with a windows interpreter featuring this.
After quite a bit of experimenting I think I’ll stay with Gargoyle.
Still no automap, though.
Windows Frotz doesn’t have as many options but is still a robust interpreter and also fully supports all versions of Z-Machine, including the graphical Z6, as well as special cases like sound (used only in The Lurking Horror and Sherlock) and the unique display of Beyond Zork. Gargoyle can play Beyond Zork but has many troubles rendering it correctly, and so far it hasn’t been able to play sounds in Sherlock and The Lurking Horror — I read that some people think it should do it yet I haven’t read of anyone who confirmed Gargoyle can do it. But Gargoyle can still play sounds and display graphics of other formats.
Kind of ironic that you feel this way. There is nothing wrong with that preference of course, and as long as you can play the game the way you like, there is no problem, but it runs contrary to the idea that the fine folks at Infocom put behind the Z-Machine. Back then you had a lot of different systems incompatible with each other (just think of DOS, Amiga, Apple and Commodore to give you an idea, and that’s far from the complete list), and porting Zork I to each of those computers would have taken a lot of ressources. So they had the brilliant idea to write their games for the Z-Machine, a virtual computer, and create a specific interpreter for every system. It was a lot easier and less time-consuming because it meant they could release the same game file and only change the interpreter bundled with it according to the target system. And it still works today because interpreters are still written and developped for modern systems, from computers to phones and even the Kindle, and it also allows the use of some technical improvements like font rendering.
But what you are doing is basically running an emulator (DOSBox) to run another emulator (ZIP, Infocom’s own Z-Machine interpreter) that will run the game file. Again it runs contrary to the whole idea behind the Z-Machine but it works