АвторСообщение



Сообщение: 2
Зарегистрирован: 08.03.11
ссылка на сообщение  Отправлено: 26.06.11 22:44. Заголовок: PolyMorph QueSTation - проект URQ-интерпретатора с поддержкой HTML и JavaScript


В марте этого года я отправил в тему для новоприбывших следующее сообщение:


 цитата:
Не подскажут ли уважаемые старожилы, где можно скачать SURQ с исходниками? А то в теме форума, посвященной ей (на нее ведет ссылка "Страничка SURQ" в разделе "Софт") не нашел ни одной ссылки. Сам изучаю С#, Java, написал на JavaScript движок книги-игры "Подземелья черного замка" с графическим инвентарем и анимацией боев. Сейчас хочу переписать на Java, но не как отдельно взятую игру, а как плеер для всех игр такого типа. Будет хорошо, если этот плеер будет проигрывать и стандартные игры на URQ, но в то же время поддерживать HTML и JavaScript для более продвинутого интерфейса. Начать планирую с поддержки HTML, как в AkURQ, и постепенно добавлять новые возможности. К сожалению, исходников AkURQ, насколько я понимаю, тоже ни у кого нет. С VB-кодом RipURQ'и как-то разбираться не хочется (а других исходников урок я не нашел), а вот исходники на C# (кажется, на нем написан SURQ) мне не помешали бы.



Исходники урок я с тех пор так и не достал (за исключением aurq на Delphi, где я кое-что позаимствовал), но несмотря на это проект начал постепенно продвигаться. И вот сегодня я наконец хочу представить демо-версию интерпретатора, написанного на Java и переводящего текстовые квесты в байт-код с последующим их исполнением Java-машиной в окне интегрированного браузера (JAR-файл вместе со всеми требуемыми библиотеками и примерами квестов - требует наличия на компьютере Internet Explorer или FireFox, пока работает только под Windows) . Программа получила название PolyMorph QueSTation, поскольку способна проигрывать квесты, по моей терминологии называющиеся полиморфными - написанными на URQ, но поддерживающими внедрение HTML и JavaScript-кода (это расширение урки можно назвать PolyURQ). Хочу сразу оговориться, что PolyMorph QueSTation (или PolyQuest для краткости) в своем нынешнем виде пока поддерживает только базовые команды URQL, много чего недописано, поэтому не пытайтесь пока запускать под ней квесты, кроме тех, что приложены к самой программе. За основу был взят синтаксис AkURQ, и поэтому небольшой демонстрационный квест, исполнявшийся ранее под AkURQ, под названием "Красавица и чудовище", входит в комплект, наряду с парочкой простых примеров из учебника по URQ, написанного Korwin'ом (один из них пришлось чуть-чуть модифицировать, чтобы успешно прогнать под текущей версией парсера). Для запуска плеера нужны Java-машина под Windows (в дальнейшем планируется поддержка Linux и MacOS, а также в перспективе - Android) и установленный пакет Java Media Framework, который можно скачать по следующей ссылке.

Касательно нового синтаксиса. Уже к имеющемуся в AkURQ тегу <html> были добавлены несколько новых тегов - <script>, <head> и <body>. Тег <script> позволяет внедрять в квест JavaScript-код, а теги <head> и <body> - полностью модифицировать содержимое страницы. В отличие от них, тег <html> меняет только содержимое блока страницы под названием Text, поэтому когда вы заменяете стандартный HTML-код (по умолчанию) на свой с помощью тега <body>, вам нужно добавить в него такой элемент:
<div id = "Text" ...> 

</div>
- естественно, в том случае, если вы хотите выводить текст локаций. Но ведь можно этого и не делать! Например, можно вывести графическое меню, обработать выбор его пунктов с помощью JavaScript и уже потом загрузить код самого квеста с привычной обработкой локаций, принятой в URQ, но с возможностью снова выйти в графическое меню. Конечно, вы уже не будете ограничены обычными рамками текстового квеста, а сможете сделать все, что возможно реализовать посредством JavaScript. И, наконец, самое приятное: вы можете обращаться из JavaScript-кода к обычным URQ-переменным по их именам!

Для демонстрации того, что уже сейчас можно делать с помощью этой платформы, я приложил свой римейк старой реализации книги-игры "Подземелья черного замка" Д. Браславского в исполнении компании "Бука" (содержавшейся на их диске "Игровая матрица") - вы можете поместить ее в подкаталог \П.Ч.З каталога \Quests. Я начинал писать ее в качестве курсового проекта по созданию сайта полтора года назад. Тогда уже можно было просмотреть несколько начальных локаций и поучаствовать в сражениях, но запускалось это исключительно под Internet Explorer, хотя и без всякой привязки к серверу (только на локальной машине). Можно сказать, что реализация игры ждала своего часа, пока я не познакомился с AkURQ и не решил делать свою платформу. Этим летом был добавлен весь недостающий геймплей "Подземелий" (кое что и сверх того, что уже было в реализации "Игровой матрицы" - например, переодевание по двойному щелчку на одежде), а существовавший до этого код JavaScript претерпел лишь незначительные изменения. В то же время из начального графического меню временно убран код, отвечающий за сохранение, загрузку, продолжение игры и старт новой игры, однако все эти возможности уже и так присутствуют в главном меню интерфейса моего плеера (хотя реализация загрузки состояний полиморфных квестов пока имеет некоторые проблемы - см. последнее сообщение). В последующих версиях я постараюсь решить проблемы с загрузкой, и тогда можно будет выходить в меню самого квеста. Также я постараюсь перенести часть JavaScript-кода в обычный URQ. Нынешний вариант квеста все еще привязан к Internet Explorer - хотя используемая библиотека предусматривает работу и в FireFox (в том числе под Linux и MacOS), потребуется переписывать скрипты "Подземелья черного замка", чтобы они работали и под этим браузером.

Вот некоторые модификации URQL, реализованные в плеере PolyQuest:
* Предполагается, что можно сохранять квесты в любой момент времени при отсутствии в тексте квеста специально прописанных инструкций на запрет сохранения (сами инструкции пока не реализованы)
* Добавлены локации :startmusicloop и :endmusicloop, описывающие действия, выполняемые в начале и конце воспроизведения музыкальной последовательности
* Команда music теперь поддерживает файлы WAV
* Поддержка тегов <html>, <script>, <head> и <body>. Тег <html> работает как в AkURQ, гиперссылки в стиле AkURQ также работают:
<a href="btn:метка">


Выкладываю также исходники проекта. Чтобы ознакомиться с ними, вам понадобится установить NetBeans шестой или последующих версий.
При запуске исходных файлов квеста "Подземелья черного замка" будьте терпеливы - графический интерфейс загружается не сразу.

Спасибо: 0 
Профиль Цитата Ответить
Ответов - 10 [только новые]


неизвестный человек




Сообщение: 333
Зарегистрирован: 08.06.07
ссылка на сообщение  Отправлено: 28.06.11 08:57. Заголовок: Ну, в добрый путь. П..


Ну, в добрый путь. Пока еще сложно сказать что из этого выдйдет. А вот это чудо на мобильных устройствах можно будет запускать?

А что насчет тебя? Ты бы смог убить животное? Человеческое животное... Спасибо: 0 
Профиль Цитата Ответить



Сообщение: 3
Зарегистрирован: 08.03.11
ссылка на сообщение  Отправлено: 28.06.11 14:19. Заголовок: Насчет других устрой..


Насчет других устройств сказать не могу, но в приложениях для Android можно встраивать браузер и он обеспечивает взаимодействие между кодом Java и JavaScript. Так что не исключено, что удастся портировать, но точно сказать не могу. Я уже столкнулся с тем, что встроенный браузер не всегда ведет себя так, как ты этого ожидаешь, и может потребоваться определенное ухищрение. Честно говоря, я до конца не был уверен, что удастся запустить скриптовый квест. Некоторые ссылки еще не работают.
Вообще, чтобы можно было динамически менять содержимое текста тегом <html> или командами p и pln, оставляя неизменной оставшуюся часть страницы, где могут размещаться динамическое меню, элементы оформления и др., необходимо, чтобы браузер поддерживал присваивание значения свойству innerHTML (что не входит в стандарт DOM). Поэтому мне бы хотелось узнать, как работает программа у тех, у кого на компьютере установлен FireFox вместо (а не вместе с) Internet Explorer. Если вам не сложно, сообщите мне.
Кстати, если вам не удается запустить программу щелчком по ней (как не получается у меня), введите в командной строке java -jar "PolyMorph_QueSTation_Bytecode.jar".

Спасибо: 0 
Профиль Цитата Ответить
постоянный участник


Сообщение: 3
Зарегистрирован: 17.02.10
ссылка на сообщение  Отправлено: 04.07.11 09:29. Заголовок: Могу выслать на е-ma..


Могу выслать на е-mail исходный код своей URQBox (это аналог AkURQ, написанный мною в 2008 году на дельфи 7, была тогда идея сделать интерпретатор с лиц. GPL). Интерпретатор почти полностью рабочий, но работает не на токенах, как AkURQ, AURQ или другие интерпретаторы, в нем использован другой подход. Если еще актуально и интересно - bees(собачка)meta.ua.

Спасибо: 1 
Профиль Цитата Ответить
постоянный участник


Сообщение: 2
Зарегистрирован: 15.07.11
ссылка на сообщение  Отправлено: 15.07.11 10:51. Заголовок: Вообще тема переноса..


Вообще тема переноса игр в формат Java, и в частности в мобильные устройства сейчас очень актуальна. Если кто-то из старожилов помнит, то давно к нам обращалась одна сотовая компания с просьбой писать игры для них под заказ, но мы по причине малолетства не стали связываться со всякими договорами и обязательствами :)
Если будет реализована новая платформа да ещё с возможностью боёв и прочими вкусностями, то готов сразу написать под неё парочку новых квестов!

Спасибо: 0 
Профиль Цитата Ответить



Сообщение: 4
Зарегистрирован: 08.03.11
ссылка на сообщение  Отправлено: 16.07.11 11:50. Заголовок: Kaschey пишет: Если..


Kaschey пишет:

 цитата:
Если будет реализована новая платформа да ещё с возможностью боёв и прочими вкусностями, то готов сразу написать под неё парочку новых квестов!



Речь идет о новой платформе вообще, или именно о поддержке мобильных устройств? С последним есть определенные трудности, т.к. реализация моих нововведений неминуемо повлечет за собой и реализацию браузера, в котором все эти скрипты и html-страницы должны будут выполняться и отображаться. Исключение - Android, где такой браузер уже вроде доступен в качестве API для программиста.
В любом случае, спасибо за поддержку.


 цитата:

Вообще тема переноса игр в формат Java, и в частности в мобильные устройства сейчас очень актуальна.



Если имеется в виду перевод исходного текста URQ квестов в Java, то это немного обсуждалось при моем участии вот здесь. Ввиду определенных особенностей языка URQL его код затруднительно переводить в код Java, но относительно легко - в байт-код Java (чем я и занимаюсь в этом проекте). Остается научиться запускать этот байт-код на мобильных устройствах (на Android - в настоящий момент точно невозможно, надо переделывать в интерпретатор).
Что же касается простого URQ-интерпретатора на Java с возможностью запуска на мобильниках, то не исключено, что я напишу его в ближайшее время в качестве одного из направлений работы.

Спасибо: 0 
Профиль Цитата Ответить
Юрист урки, адвокат дьявола




Сообщение: 222
Зарегистрирован: 07.12.06
ссылка на сообщение  Отправлено: 04.08.11 19:47. Заголовок: Если будет реализова..


Если будет реализована новая платформа да ещё с возможностью боёв и прочими вкусностями, то готов сразу написать под неё парочку новых квестов! (с)
А чем тебя, Кащей, "старые" платформы не устраивают? :)

Есть интерпретатор AURQ, возможности urql в наличии, есть версия под мобильники, работает стабильно.
http://forum.ifiction.ru/viewtopic.php?id=1292&p=1 тут последняя версия
http://forum.ifiction.ru/viewtopic.php?id=79&p=1 тут - как всё начиналось
Есть URQ-модуль для INSTEAD, который позволяет писать на урке, а запускать на Windows Mobile, Андроидах, S60 и где-то-там-ещё.
Есть плееры QSP под Windows Mobile, Андроиды и даже для PSP и PocketBook'ов.

Пиши не хочу.

P.S. Послание с канала:
[15:49] _Victor_|h: кто-нибудь скажите с-прессо на форуме
[15:49] _Victor_|h: что урк-код хорошо переводить в js-код и php-код, потому что там есть аналоги #$

Спасибо: 0 
Профиль Цитата Ответить



Сообщение: 5
Зарегистрирован: 08.03.11
ссылка на сообщение  Отправлено: 01.09.11 22:07. Заголовок: Итак, (новая версия)..


Итак, новая версия моего плеера квестов вместе с исходниками. Он все еще не поддерживает многих возможностей URQL, зато для него уже имеется практически готовая игра, наглядно показывающая возможности связки URQ + JavaScript. Это известная книга-игра "Подземелья черного замка" Д. Браславского (скачать). Исходники этой игры разделены на две части - DUNGEONS1.qst и DUNGEONS2.qst, загружаются они довольно долго и служат больше для демонстрации возможностей программы и для бета-тестирования, хотя можно и поиграть. Для игровой версии я позже подготовлю JAR-пакет со вшитым в него байт-кодом квеста. Надеюсь, что игру уже можно пройти от начала и до конца. Если есть какие-то проблемы - пишите в эту тему.

Плеер пока запускается только под Windows и требует наличия JVM и Internet Explorer. Поскольку в этой версии добавилась поддержка аудио, также требуется установить пакет Java Media Framework. Конечно, средства по работе со звуком имеются и в стандартном Java SE, но для циклического проигрывания музыкальных композиций, которое используется в прилагаемой игре, было решено использовать JMF. Вы можете скачать его по следующей ссылке.

Реализовано сохранение и загрузка состояния игры. Сложные квесты с внедренным JavaScript-кодом, подобные "Подземельям", кроме записи и восстановления значений URQ-переменных, требуют выполнения специальных скриптов при сохранении и загрузке. Чтобы плеер мог определить квест такого типа, встроенному браузеру посылается запрос в виде скрипта, имеющий целью определить, присутствует ли в коде квеста функция LoadGame. Однако по некоторым причинам этот скрипт пока срабатывает только после того, как вы уже перешли по какой-то ссылке в игре. Поэтому, загрузив любую часть "Подземелий" и начав новую игру, вы должны сначала сменить начальную локацию, выбрав один из доступных вариантов, и только после этого загрузить ваш файл состояния. В противном случае игровая панель не отобразится. Если это не сработало, то снова Файл -> Новая игра, переходим по ссылке, затем Файл -> Загрузить игру. Если вы прерываете текущую игру, чтобы загрузить новую, такой проблемы, как правило, не возникает. Я постараюсь решить эту проблему в специальном выпуске плеера, рассчитанном на конкретный квест.
Если после загрузки игрового состояния вы не получаете описание локации (видите пустой желтый экран), значит, эта локация находится в другой части игры. В этом случае - Файл -> Загрузить квест, выбираем нужную часть, ждем, пока она загрузится и выполняем вышеописанные действия. Но вам придется делать это только при переходе из леса в замок и наоборот, что не должно происходить часто. Разделение квеста на две сюжетные части было произведено не только по причине долгой генерации байт-кода, но и по принципиальным ограничениям на длину метода в байт-коде Java (размещение всего кода квеста в одном методе позволило мне легко реализовать команды goto и proc, но полностью запихнуть в него "Подземелья", к сожалению, не получилось). Интерпретируемая версия плеера, естественно, будет лишена такого ограничения. Наверное, пора мне завязывать уже с байт-кодом .

P. S. Только что заметил глюк, возникающий в самом начале игры сразу после загрузки DUNGEONS1.qst. Игра отказывается добавлять предметы в заплечный мешок игрока, утверждая, что он полон. Сразу после команды Файл -> Новая игра глюк исчезает. Пока я еще не разобрался в причинах этой ошибки, позже сделаю апдейт, устраняющий этот и другие глюки.

Спасибо: 0 
Профиль Цитата Ответить



Сообщение: 14
Зарегистрирован: 08.03.11
ссылка на сообщение  Отправлено: 18.05.12 22:28. Заголовок: Первая игра на платф..


Первая игра на платформе PolyQuest, для которой, собственно сама платформа и создавалась - "Повелитель Тьмы" по сюжету Дж. Р. Р. Толкина. В ней используется тот же интерфейс, что и в "Подземельях черного замка" (см. предыдущее сообщение). Эта игра заставила меня вернуться к подзабытому проекту. Он все еще остается "недоуркой", но возможностей в нем прибавилось, особенно в плане взаимодействия JavaScript и URQL-кода. Было добавлено две специальные функции, с помощью которых можно обращаться к URQL-коду из JavaScript: UrqExec() и UrqEval(). UrqExec принимает в качестве параметра текстовую строку - код URQL, который необходимо выполнить, а UrqEval - URQL-выражение, которое требуется оценить. Обе функции активно используются в игре.

Код интерпретатора был переписан на C# и, соответственно, работает в среде .NET под Windows. Теперь уже вполне реально создать его кроссплатформенную версию, исполняющуюся под Silverlight. Глюки, описанные в предыдущем сообщении, исчезли, но вместе с ними, к сожалению, пропала и поддержка звука (это поправимо, конечно - я мог бы использовать любую звуковую библиотеку под .NET, но мне хочется, чтобы в ней обрабатывались события окончания воспроизведения звукового файла, как в вышеупомянутой JMF, что позволит в случайном порядке проигрывать мелодии, как это было в ПЧЗ. Пока не удается задействовать эту фичу в .NET).

Игру вместе с интерпретатором вы можете скачать по этой ссылке RapidShare. Там же есть и все исходные тексты.

Спасибо: 0 
Профиль Цитата Ответить
Юрист урки, адвокат дьявола




Сообщение: 318
Зарегистрирован: 07.12.06
ссылка на сообщение  Отправлено: 20.05.12 17:36. Заголовок: Не зафурычило, "..


Не зафурычило, "Ошибка при инициализации приложения (0xc0000135)", говорит. Кажись, нужен .Net Framework.

Евгу повезло больше:
18:39 brevno - я посмотрел
18:39 brevno - http://plut.info/scr/88a2820718f0b1560ddf8a95c1ca.png
18:39 brevno - это я выбрал первый пункт в меню :)

Спасибо: 0 
Профиль Цитата Ответить



Сообщение: 15
Зарегистрирован: 08.03.11
ссылка на сообщение  Отправлено: 21.05.12 10:14. Заголовок: Спасибо, что указали..


Спасибо, что указали на ошибку. Да, первый пункт следовало бы сделать неактивным в отсутствии выбора квеста. Предполагаю, что название Новая игра может сбивать с толку. Просто я уже как-то привык, что сначала идет Файл -> Загрузить квест, потом Файл -> Загрузить игру или Файл -> Новая игра. По идее предполагается, что пункт Новая игра используется чаще, чем Загрузить квест, поэтому он и стоит первым. Я скопировал это с акурки. Приму любые пожелания по интерфейсу.

Плееру действительно требуется .Net Framework версии 2.0 или выше. Странно, я думал, этот пакет у всех уже установлен. По крайней мере, в Windows 7 он изначально стоит. В последние выпуски XP, кажется, тоже был встроен. Наверное, стоит отметить, что нужен еще установленный Internet Explorer версии 7.0 и выше (хотя теоретически может работать и с 6.0 в составе старых дистрибутивов Windows XP, но я не проверял).

Спасибо: 0 
Профиль Цитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 34
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет