URQ (URQ)
URQ | |
---|---|
Класс языка | язык программирования |
Тип исполнения | интерпретируемый |
Появился в | 5 мая 2000 |
Автор | Тимофей Басанов a.k.a. RipOs |
Расширение файлов |
.qs1, .qs2, .qs3 (зашифрованные квесты), .qsz (архив, в который могут быть запакованы все ресурсы квеста, только для FireURQ), .qst. |
Основные реализации | RipSoft URQ, URQ_DOS, FireURQ, AkURQ, INSTEAD URQ module, OverUrK, BEST_URK, aurk, SURK |
Диалекты | каждая реализация вводит свой диалект языка |
URQ (Universal RipSoft Quest, по названию первой программы-интерпретатора, RipOs — никнейм Тимофея Басанова, автора первоначальной версии[1]) — это известная в рунете[2][3] платформа предназначенная в основном для создания небольших текстовых игр в жанре Interactive Fiction (IF)[4]. Представляет собой интерпретатор специализированного языка URQL.
История
[править | править код]Первая версия URQ (оригинальный RipSoft URQ) написана на Visual Basic. Вопреки распространённому мнению, URQ не был первой отечественной платформой для разработки текстовых квестов, ему предшествовала система OrcZero[5]. Тем не менее, URQ стал одной из первых подобных отечественных платформ,[2][6] впрочем его ориентированность на простые игры с «менюшным» вводом (когда пользователь фактически выбирает варианты действий) стала причиной несколько пренебрежительного к ней отношения у некоторых участников IF-сообщества[7].
Однако простота языка привлекла внимание создателей квестов. В период 2001—2004 гг. было создано около полутора сотен игр для этой платформы. Качество этих игр было весьма различным, часто — весьма низким. В числе прочих следует отметить такие разработки, как «Древний кинжал»[8] — квест в 2-х частях по мотивам произведений Дж. Р. Р. Толкиена, Дед-пердед, короткие «Приключения хомяка Семёна» в 3+ частях (от разных авторов)[9] (вместе с написанной позднее другим автором третьей частью) и незаконченный большой квест «Без права на надежду»[10] с использованием практически всех тогдашних мультимедийных возможностей Win URQ: музыки, картинок, и отличающийся хорошим литературным стилем.
RipOs вносил изменения и новые возможности в оригинальный интерпретатор. Последней стала версия 2.0 альфа 3, которая содержала интересные нововведения, но работала очень неустойчиво. Затем он внезапно прекратил работу над проектом (предположительно в связи с утратой исходного кода из-за разрушения дискового накопителя). Последняя, относительно устойчивая версия URQ 1.4. Она содержит множество расширенных возможностей: позволяет вставлять в квест картинки (в 6 разных форматах) и отслеживать клики мышкой по ним, использовать звуки и музыку (wav и mid), делать квесты, состоящие из нескольких файлов, и многое другое, включая ввод чисел и строк пользователем.
Впрочем, эталонной реализацией URQL считается написанный на языке Си консольный интерпретатор[11] URQ_DOS. Её автор — выпускник мехмата МГУ Виктор Корянов. Вот что он пишет о его создании:
Почти все здесь, наверное, знают как я пришел к Урке, но поскольку соответствующие посты и текстовые файлы имеют обыкновение теряться и закапываться :) …
Это был самый конец 2000 года, буквально несколько дней до праздника. Так получилось, что у меня в то время на «домашней» машине не было хоть сколько-нибудь нормального монитора, приходилось как-то жить на переделанной советской Электронике (модель уже не помню). Более или менее приемлемо этот агрегат работал только в текстовом монохромном режиме EGA, графический EGA теоретически был, но постоянно в нём находиться было трудно из-за проблем с частотой — быстро уставали глаза (теоретически был и VGA, но только для быстрого просмотра графики — что-то читать в нём было невозможно совсем). Жил я, в общем, полностью в мире текстового Доса — много читал с экрана в Дос Навигаторе, играл в Адом, программил в bc++ 3.1 … Естественно, иногда искал в Инете на университетской машине что-нибудь соответствующее и как-то раз по запросу «текстовые квесты» (или, может, «текстовые игры») нашел сайт Кащея (текстовыми играми интересуюсь давно, ещё с до-PСшных времен). Там я сразу обратил внимание на Древний кинжал, Урка Рипа не запустилась из-за традиционного для старых версий Windows отсутствия ВБ-библиотек, да даже если и запустилась бы, все равно я тогда грузил его только в случае совсем уж крайней необходимости (кстати, в 95-м нет штатной поддержки EGA). Самая первая версия Досурки была написана буквально в Новый Год за два дня.
Пётр Косых, создатель INSTEAD назвал URQ и QSP в числе предшественников своей программы, в которых его не устроило отсутствие объектной ориентированности[12]. В настоящее время сейчас для INSTEAD доступен URQ-модуль, представляющий собой интерпретатор URQL, написанный на Lua[13].
Основные конструкции языка 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 файлы и вывод графики.
Сообщество
[править | править код]Этот подраздел ещё не написан. |
См. также
[править | править код]Примечания
[править | править код]- ↑ ripsoft.narod.ru Архивная копия от 16 октября 2010 на Wayback Machine — первоначальный сайт URQ
- ↑ 1 2 RTADS: Russified Text Adventure Development System, About Russian community (англ.). Сайт 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 (а также близкой по идеологии российской платформы QSP) внесён в раздел Компьютерные игры : Приключения : Текстовые приключения Архивная копия от 4 марта 2016 на Wayback Machine на Open Directory Project
- ↑ Emperor. Пишем Interactive Fiction // Навигатор игрового мира. — 2003. — № 2.
- ↑ Движки - Текстовые игры на русском . Дата обращения: 24 августа 2011. Архивировано 31 января 2016 года.
- ↑ Валерий Аргунов. Interactive Fiction или Используй воображение… хабрахабр (19 августа 2009). — статья автора QSP. Дата обращения: 23 августа 2011. Архивировано 25 августа 2012 года.
- ↑ Константин Артемьев. Интерактивная литература или текстовый квест? // Домашний компьютер. — 2002. — № 6(72).
- ↑ Древний кинжал . Дата обращения: 24 августа 2011. Архивировано 26 декабря 2012 года.
- ↑ Похождения отважного хомяка Семена . Дата обращения: 24 августа 2011. Архивировано 20 июня 2012 года.
- ↑ Без права на надежду . Дата обращения: 24 августа 2011. Архивировано 26 декабря 2012 года.
- ↑ Скачать | URQ . — «URQ_DOS (Досурка) Виктора Корянова (священная урка!) Классический интерпретатор с консольным интерфейсом. <…> Долгое время оставался стандартом и считался самым стабильным.» Дата обращения: 24 августа 2011. Архивировано 25 августа 2012 года.
- ↑ Косых, Пётр Как все начиналось . Сайт INSTEAD (13 апреля 2009). — Статья для lingametech. Дата обращения: 21 августа 2011. Архивировано 25 августа 2012 года.
- ↑ URQ-модуль . INSTEAD wiki. Дата обращения: 21 августа 2011. Архивировано 25 августа 2012 года.
Ссылки
[править | править код]- Официальный сайт URQ-сообщества
- Евгений Бычков. Краткая история Уркистана // Электронный журнал IFPrint. — 15 марта 2013. Архивировано 29 марта 2014 года.
- Интервью c представителями «менюшного» сообщества, Дженни Уэйнест, 2007
- английский вариант в SPAG № 48, ежеквартальном электронном журнале, посвящённом всем аспектам Interactive Fiction
- Статья об URQ на русской IFWiki
- Статья об URQ на англоязычной IFWiki
Документация по языку
- (недоступная ссылка) Описание URQL для URQ_DOS версии 1.35 от 23.11.2006 года от Корвина. (недоступная ссылка) (.doc, 0.4 МБ)
- Справка по AkURQ от Корвина. Архивная копия от 5 декабря 2011 на Wayback Machine (.chm размером около 150 КБ)