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].
Разделителем операторов является символ конца строки или амперсанд &.
Каждая локация игры в исходном тексте должна иметь метку. Имя метки предваряется двоеточием (без пробела). Переходы между локациями осуществляются путём перемещения на указанную метку с помощью операторов 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 файлы и вывод графики.
Этот подраздел ещё не написан. |
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .