Interested Article - URQ
- 2021-06-23
- 1
URQ (Universal RipSoft Quest, по названию первой программы-интерпретатора, RipOs — никнейм Тимофея Басанова, автора первоначальной версии ) — это известная в рунете платформа предназначенная в основном для создания небольших текстовых игр в жанре Interactive Fiction ( IF ) . Представляет собой интерпретатор специализированного языка URQL.
История
Первая версия URQ (оригинальный RipSoft URQ) написана на Visual Basic . Вопреки распространённому мнению, URQ не был первой отечественной платформой для разработки текстовых квестов , ему предшествовала система OrcZero . Тем не менее, URQ стал одной из первых подобных отечественных платформ, впрочем его ориентированность на простые игры с «менюшным» вводом (когда пользователь фактически выбирает варианты действий) стала причиной несколько пренебрежительного к ней отношения у некоторых участников IF-сообщества .
Однако простота языка привлекла внимание создателей квестов . В период 2001—2004 гг. было создано около полутора сотен игр для этой платформы. Качество этих игр было весьма различным, часто — весьма низким. В числе прочих следует отметить такие разработки, как «Древний кинжал» — квест в 2-х частях по мотивам произведений Дж. Р. Р. Толкиена , Дед-пердед, короткие «Приключения хомяка Семёна» в 3+ частях (от разных авторов) (вместе с написанной позднее другим автором третьей частью) и незаконченный большой квест «Без права на надежду» с использованием практически всех тогдашних мультимедийных возможностей Win URQ: музыки, картинок, и отличающийся хорошим литературным стилем.
RipOs вносил изменения и новые возможности в оригинальный интерпретатор. Последней стала версия 2.0 альфа 3, которая содержала интересные нововведения, но работала очень неустойчиво. Затем он внезапно прекратил работу над проектом (предположительно в связи с утратой исходного кода из-за разрушения дискового накопителя ). Последняя, относительно устойчивая версия URQ 1.4. Она содержит множество расширенных возможностей: позволяет вставлять в квест картинки (в 6 разных форматах) и отслеживать клики мышкой по ним, использовать звуки и музыку (wav и mid), делать квесты, состоящие из нескольких файлов, и многое другое, включая ввод чисел и строк пользователем.
Впрочем, эталонной реализацией URQL считается написанный на языке Си консольный интерпретатор URQ_DOS. Её автор — выпускник мехмата МГУ Виктор Корянов. Вот что он пишет о его создании:
Почти все здесь, наверное, знают как я пришел к Урке, но поскольку соответствующие посты и текстовые файлы имеют обыкновение теряться и закапываться :) …
Это был самый конец 2000 года, буквально несколько дней до праздника. Так получилось, что у меня в то время на «домашней» машине не было хоть сколько-нибудь нормального монитора, приходилось как-то жить на переделанной советской Электронике (модель уже не помню). Более или менее приемлемо этот агрегат работал только в текстовом монохромном режиме EGA , графический EGA теоретически был, но постоянно в нём находиться было трудно из-за проблем с частотой — быстро уставали глаза (теоретически был и VGA , но только для быстрого просмотра графики — что-то читать в нём было невозможно совсем). Жил я, в общем, полностью в мире текстового Доса — много читал с экрана в Дос Навигаторе , играл в Адом , программил в bc++ 3.1 … Естественно, иногда искал в Инете на университетской машине что-нибудь соответствующее и как-то раз по запросу «текстовые квесты» (или, может, «текстовые игры») нашел сайт Кащея (текстовыми играми интересуюсь давно, ещё с до-PСшных времен). Там я сразу обратил внимание на Древний кинжал, Урка Рипа не запустилась из-за традиционного для старых версий Windows отсутствия ВБ -библиотек, да даже если и запустилась бы, все равно я тогда грузил его только в случае совсем уж крайней необходимости (кстати, в 95-м нет штатной поддержки EGA). Самая первая версия Досурки была написана буквально в Новый Год за два дня.
Пётр Косых, создатель INSTEAD назвал URQ и в числе предшественников своей программы, в которых его не устроило отсутствие объектной ориентированности . В настоящее время сейчас для INSTEAD доступен URQ-модуль, представляющий собой интерпретатор URQL, написанный на Lua .
Основные конструкции языка URQL
Разделителем операторов является символ конца строки или амперсанд & .
Каждая локация игры в исходном тексте должна иметь метку . Имя метки предваряется двоеточием (без пробела ). Переходы между локациями осуществляются путём перемещения на указанную метку с помощью операторов btn (имеющий формат btn имя локации , надпись на кнопке ) и goto .
Интерпретатор начинает работу с первой метки, после неё он последовательно выполняет операторы URQ, пока не встретит end — оператор останова. После этого он выводит на экран все встреченные ранее кнопки и приостанавливает работу, ожидая команды пользователя.
Операторы p и pln выводят текст.
inv+ и inv- — помещает или удаляет предмет в инвентарь . Можно использовать с указанием количества (например, для денег в кармане у персонажа). Специальные метки вида :use_<предмет> и :use_<предмет>_<действие> указывают на описания действий (по умолчанию — « осмотреть предмет ») по отношению к предмету.
Условный оператор if <условие> then … позволяет, в числе прочего, проверять наличие и/или количество чего-либо в инвентаре.
Локацию можно использовать как подпрограмму , осуществив переход на неё с помощью оператора proc .
Специальная локация :Сommon выполняется перед указанной в операторе btn при нажатии по кнопке.
Комментарии в URQL начинаются с точки с запятой и продолжаются до конца строки . Допустимы также комментарии в стиле языка Си , расположенные между /* и */ , в том числе многострочные.
Разные интерпретаторы URQ реализуют различные диалекты URQL, различающиеся, главным образом, мультимедийными возможностями.
В процессе выполнения игры возможна динамическая генерация фрагментов кода, что позволяет самомодификацию программ . Это даёт возможность существенного расширения возможностей языка. Так самомодификация часто используется для работы с массивами , не предусмотренными в URQL.
Известные реализации
URQ_DOS; AkURQ (2 основных версии); RipSoft URQ; FireURQ. Все реализации в той или иной степени не совместимы между собой. Приходиться подбирать на каком интерпретаторе пойдёт конкретный квест. URQ_DOS - не выводит картинки и музыку - чисто текст. AkURQ и RipSoft URQ - поддерживают *.mid файлы и вывод графики.
Сообщество
См. также
Примечания
- от 16 октября 2010 на Wayback Machine — первоначальный сайт URQ
- ↑ (англ.) . Сайт RTADS . — «It is the advanced CYOA system, easy to learn and develop, the oldest and the most popular development system in Russian IF.» Дата обращения: 21 августа 2011. 25 августа 2012 года.
- Официальный сайт URQ (а также близкой по идеологии российской платформы ) внесён в раздел от 4 марта 2016 на Wayback Machine на Open Directory Project
- Emperor. // Навигатор игрового мира . — 2003. — № 2 .
- . Дата обращения: 24 августа 2011. 31 января 2016 года.
- Валерий Аргунов. хабрахабр (19 августа 2009). — статья автора . Дата обращения: 23 августа 2011. 25 августа 2012 года.
- Константин Артемьев. // Домашний компьютер . — 2002. — № 6(72) .
- . Дата обращения: 24 августа 2011. 26 декабря 2012 года.
- . Дата обращения: 24 августа 2011. 20 июня 2012 года.
- . Дата обращения: 24 августа 2011. 26 декабря 2012 года.
- . — «URQ_DOS (Досурка) Виктора Корянова (священная урка!) Классический интерпретатор с консольным интерфейсом. <…> Долгое время оставался стандартом и считался самым стабильным.» Дата обращения: 24 августа 2011. 25 августа 2012 года.
- Косых, Пётр . Сайт INSTEAD (13 апреля 2009). — Статья для lingametech. Дата обращения: 21 августа 2011. 25 августа 2012 года.
- . INSTEAD wiki. Дата обращения: 21 августа 2011. 25 августа 2012 года.
Ссылки
- Евгений Бычков. // Электронный журнал IFPrint. — 15 марта 2013. 29 марта 2014 года.
-
, Дженни Уэйнест, 2007
- в SPAG № 48, ежеквартальном электронном журнале , посвящённом всем аспектам Interactive Fiction
- Документация по языку
- (недоступная ссылка) ( .doc , 0.4 МБ)
- от 5 декабря 2011 на Wayback Machine (.chm размером около 150 КБ)
- 2021-06-23
- 1