Илья пишет:
цитата: |
Скажи не коротко...а то тут в этой ветке было высказывание, что QSP для серьезных игр. |
|
Так, говорю более подробно:
Сравнение URQ и QSP на современном этапе (декабрь 2006 года).
Любой язык программирования несет в себе груз своих первоначальных концепций. Многие из этих концепций основаны на давно устаревших реальностях и не соответствуют современным требованиям. Например строки в С заканчиваются символом 0, и этот факт мешает нормальному быстродействию при работе с миллионами строк. Или создание переменных по ходу работы в бейсике (Впрочем, это фича:). Или окончание оператора pln в URQ символом & (а также конец строки, а также esle - в том случае, если перед этим был if. Эти особенности могут помогать использовать этот язык, а могут мешать. Или не мешать.
Итак, перед нами две платформы для создания и проигрывания текстовых квестов URQ(Universal Ripsoft Quest) и QSP(Quest Soft Player). Мне бы хотелось рассмотреть их с разных точек зрения:
- со стороны интерфейса;
- со стороны возможностей;
- со стороны организации структуры данных и дальнейшего развития языка;
Краткая историческая справка: URQ возник раньше и зто во многом определило как его большую популярность, так и проблемы, связанные с организацией данных. Итак, интерфейс:
В настоящее время (декабрь 2006 года) существует около полудюжины (!) разных интерпретаторов URQ, имеющих разный интерфейс. Наличие разнообразных интерфейсов дает с одной стороны возможность выбрать тот, который нравится, но с другой, приводит к тому, что на разных проигрывателях одна и та же игра выглядит по-разному, а порой становится непроходимой. Итак:
1. URQ 1.4 от RipOs'a (Рипурка) - очень неплохая программа написанная на Visual Basic, вполне пригодная для проигрывания квестов.
+ Стандарт базового языка URQL;
+ Поддерживает графику, музыку, мышку;
- Не масштабирует размер окна т.е. нет возможности развернуть окно во весь экран;
- Не поддерживает ряд полезных возможностей, например: IF THEN ELSE (только IF THEN), обработку строковых переменных, и др.
2. URQ_dos.exe от Виктора Корянова("Досурка") написанная на С.
+ Самый надежный;
+ и самый быстрый интерпретатор URQ на сегодняшний день;
+ разворачивается во весь экран;
+ поддерживает работу со строками и конструкцию IF THEN ELSE;
+ может создавать лог-файл прохождения - пока уникальная вохзможность;
+ имеет очень мощный обработчик выражений;
- нет поддержки графики;
- нет поддержки разных шрифтов;
- нет возможности сделать несколько сохранений;
- для ввода русского текста нужен или русификатор или версия wcl или извращения с перехватом нажатия клавиш;
- версия wcl - способная проигрывать музыку, к сожалению имеет вреднейший баг выражающийся в периодическом и непредсказуемом исчеэновении цвета курсора, после чего прохождение квеста становится невозможным.
- нет (и не нужна) поддержка мышки;
- не слишком эстетично органихзована работа с инвентарем;
- собирается развиваться дальше с 30.11.2004 года, но воз и ныне там;
3. BestURQ - досовый интерпретатор, написанный на qbasic, с оригинальным интерфейсом и жуткими ограничениями 16-разрядной программы. Не применяется.
4. OverURQ - красивый проект на java от Over1ord. В стадии разработки.
+ Возможность распространения за пределы Windows, т.е. в Интернете и на мобильных устройствах;
+ Исключительно красивый внешний вид;
- Неполная совместимость с досуркой по операторам;
- Необходимость установки java-машины увеличивает размер программы и сложность установки для неопытных пользователей;
- Пока еще очень "сырая" версия не гарантирует устойчивой работы. Практически не применяется;
5. Акурка - VB - версия от Akela. ПОследняя версия 1.27 b 2. Совмещает достоинства "рипурки" и "досурки". Имеет много приятных нововведений. Самая лучшая и перспективная на сегодняшний день.
+ Масштабирование экрана;
+ Поддержка как пользовательских, так и авторских настроек интерфейса как-то: выбор вида, размера и цвета шрифтов и цвета фона;
+ Поддерка графики и музыки;
+ Поддержка действий на кнопке действия ПЕРЕД переходом в другую локацию;
+ Красивое решение строки ввода по INPUT;
+ Поддержка html-страниц включенных в текст с их возможностями форматирования;
+ Сообщения пользователю во всплывающих окнах;
+ расширенные функции по управлению инвентарем;
+ расширенные математические и строковые функции;
- бета-версия - возможна, неполная совместимость с Urq_dos.
6. Незнакомая мне версия на Питоне. Думаю, пока еще альфа.
7. Незнакомая мне версия на ассемблере. Аналогично. Обещает стать самой быстрой.
8. Существовала, кажется какая-то версия на PHP или Perl (по слухам).
QSP от Byte. Первоначально был написан на VB и отличался периодическими глюками. К версии 3.0 интерпретатор стал достаточно совершенным для работы и количество авторов на этой платформе значительно возросло. Версия 4 полностью переписана на Visual С. Последняя версия 5.3.0 с поддержкой html-тегов (информация с сайта www.day0.narod.ru) является быстрым, красивым, удобным в работе и обладающим самым широким спектром возможностей интерпретатором менюшных квестов на русском языке...
+ GUI - версия, выглядит как любая современнная программа, никаких проблем с освоением ее интерфейса у пользователя не возникает - всё привычно и логично;
+ Интерфейс отделен от интерпретатора, последний находится в dll-ке, которая может быть, по идее использована и на мобильных устройствах, если переписать интерфейс. Язык С дает возможность пересобрать ее и под Linux (теоретически);
+ Разработка ведется одним автором - проблема совместимости версий решается в разы проще;
+ Изначально язык QSP сделан логичнее и строже, например оператор печати текста выглядит так 'Здесь может быть русский and English. Могут применяться &, IF a=5 then else и это будет распечатано, а не исполнено!', оператор if then else может быть
многострочным с любой степенью вложенности и неоднозначности не возникает, и т.д.;
+ На кнопку действия "крепятся" любые действия, а не только переход в другую локацию;
+ Язык позволяет писать квесты как походовые, так и исполняющиеся в реальном времени.
+ Название переменной однозначно определяет ее тип ($var-строковая, var - числовая);
+ Есть специальные операторы по работе с одномерными массивами (а любой n-мерный массив однозначно можно отобразить на одномерный);
+ Нормально поддерживается проигрывание нескольких звуковых каналов, т.е. звуки наложенные на музыку, причем громкость каждого канала регулируется отдельно!
+ Имеется очень неплохой редактор квестов Qgen, впрочем, поддерживается написание квеста и в обычном текстовом редакторе;
+ Готовый квест - файл с расширением .gam не может быть просмотрен в текстовом редакторе и может быть закрыт паролем от просмотра в генераторе Qgen.
+ Хорошая поддержка html-тегов
+ Огромный набор функций работы со строками + регулярные выражения=делает вполне реальной возможность написания полноценного парсера на QSP.
+ Реально возможности QSP как языка больше, чем URQL - гляньте хотя бы на список функций, операторов и системных переменных в помощи, следовательно, сложные вещи на QSP написать легче. А книгу-игру - не сложнее.
+ Дистрибутив QSP проще установить и запустить - достаточно распаковать архив.
- QSP НЕ ПОДДЕРЖИВАЕТ действительные числа. Это значит, что вы можете забыть в нем про тригонометрические функции. Впрочем, во-первых действительные числа редко применяются в квестах на практике (мне известно лишь два квеста, которые в этом нуждались); во-вторых при необходимости эту проблему можно с достаточной степенью точности решить с использованием обходных методов (таблиц-массивов, и т.п.).
Выводы автора: в настоящее время и URQ и QSP являются достаточно совершенными инструментами для разработчика квестов и выбор того или иного из них для работы определяется в первую очередь личными симпатиями и привычкой, и лишь во-вторую какими-то частными преимуществами конкретной системы. На мой взгляд, освоение URQ сначала идет проще, но впоследствии может сказаться преимущество QSP в разработке больших квестов. Мечтой остается возможность проверки текста квеста на опечатки и орфографические ошибки - настоящий бич наших авторов, которым я могу пожелать терпения и еще раз терпения.
P.S. А кроме того мне понравился значок компаса, и прочие значки - наглядные и понятные, лаконичность меню, возможность настройки внешнего вида, как-то отключить-подключить названия, горячие клавиши и т.п. Возможность отключить программно любое окно кроме главного - с текстом, т.е. из программы настроить интерфейс, которая пока присутствует частично в Акурке, в меньшей степени в URQ.
К сожалению, мое сообщение получилось очень длинным и несколько запутанным, но тем не менее, я отразил и особенности интерфейса и данных и перспектив развития. Изо всех сил я старался не быть пристрастным.