Компилятор QSP в Javascript и плеер

Компилятор QSP в Javascript и плеер

Компилятор по-умолчанию делает монолитный html файл (без зависимостей), но есть варианты.

Сорцы здесь: https://code.rhodecode.com/u/naryl/qsp-txt2web/summary
Демка взята отсюда: http://qsp.su/index.php?option=com_cont … ;showall=1
Собственно демка: https://ave.maria.si/txt2gam-game.html

Пока реализованы не все стандартные функции, и нет сборки доступной для скачивания. Баг репорты пока слать не нужно. smile

Собственно, компилятор написан с полного нуля и использует формальный копилятор компиляторов на основе packrat... короче, мне очень легко менять синтаксис, вводить новые возможности и т.д. На данный момент в планах сделать его полностью совместимым с Qqsp. Большинство отличий продиктованы тем что это именно компилятор, а не интерпретатор:


  1. { ... } - это не строка, а блок кода. Их нельзя склеивать операторами +.

  2. DYNAMIC/DYNEVAL могут выполнить только блок кода, а не произвольную строку.

  3. $CURACTS возвращает блок, а не строку.

  4. В <a href="exec:..."> не работают <<подвыражения>>. В этом всё равно нет смысла и никто так не делал, т.к. там и так код на QSP, а не JS, но в классике работало.

Изменено: naryl
11.Авг.20 20:45:36
Garrett Fletcher
useravatar
Offline
4 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Компилятор QSP в Javascript и плеер

И ответы на вопросы заданные в ВК (где меня нет и не будет):

- Сохранения похоже будут кешироваться в браузере, а это значит, что стерев куки прогресс потеряется. У браузеров нет доступа к папкам пользователя, поэтому сохранять прогресс куда либо кроме как силами браузера не получится.

Сохранение сделано в файлы, в точности как в SugarCube (формат квестов для Twine). В демке есть.

Еще вопрос по поводу графического наполнения. Все данные хранятся на сервере и передаются клиенту. Это постоянные подгрузки, даже с учетом хранения куки файлов... если проект большой, нужно постояннно тратить трафик. Некоторым это не нравится.

Данные (в т.ч. графику) можно делать частью html, но тогда много трафика будет тратиться при первом открытии. Если игра имеет слишком много графики - можно просто скачать исходник (.qsp) и играть на любом стандартном интерпретаторе (более стандартном чем AeroQSP или Quest Navigator. Т.е. qspgui или Qqsp).

вопрос, как это храниться всё будет, и можно ли будет экспортировать во внешний файл

Ну, демку можно просто сохранить Ctrl+S и потом открыть без сети. Соответственно, на усмотрение автора можно либо всё хранить в одном файле (как в демке), либо использовать ссылки в сеть на картинки, звуки, js-библиотеки и т.д.

Вопроса не было, но добавлю что для разработки можно использовать либо Qgen, либо писать сразу в txt. Компилятор понимает только txt, но Qgen умеет в него экспортировать.

Garrett Fletcher
useravatar
Offline
4 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Компилятор QSP в Javascript и плеер

Ещё вопрос был

Будет ли поддержка wait, input и msg, так как в Навигаторе её нет

INPUT будет, MSG есть.

UPD: Теперь есть все.

Garrett Fletcher
useravatar
Offline
4 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Компилятор QSP в Javascript и плеер

можно ли sql базу подключить

Можно использовать произвольный javascript код как и в Qqsp и в Навигаторе. Соответственно с sql базой на сервере можно говорить ajax-ом. И вроде бы это должно было работать и раньше с Qqsp и с Навигатором.

Garrett Fletcher
useravatar
Offline
4 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Компилятор QSP в Javascript и плеер

Приветствую.
У меня запоздалый вопрос.
Есть ли возможность обратной конвертации (из Javascript в текстовый файл с кодом QSP)?

vvollo
useravatar
Offline
16 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Компилятор QSP в Javascript и плеер

Garrett Fletcher,
В смысле? Я 4 пункт делал, очень даже часто, можно сказать на постоянной основе. Потом конечно перешёл на dymamic.

Oliver
Magni nominis umbra
useravatar
Offline
588 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Компилятор QSP в Javascript и плеер

Приветствую!
В общем, не получилось у меня заставить эту штуку работать на Windows 10.

Скачал exe-шник отсюда: https://code.rhodecode.com/u/naryl/qsp- … artifacts/
Ввожу в командной строке: txt2web test.txt
И получаю такое:

Код:

At


  # begin
  'Hello World!'

                ^ (Line 2, Column 14, Position 23)

In context STATEMENT-END:

While parsing STATEMENT-END-BLOCK-CLOSE. Expected:

     the character } (RIGHT_CURLY_BRACKET)

While parsing STATEMENT-END-REAL. Expected:

     the character Newline
  or the character & (AMPERSAND)

Складывается впечатление, что он не понимает, что перенос строки - это перенос строки. Может, с кодировкой что-то?
Файлик прикладываю. test.txt

vvollo
useravatar
Offline
16 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Информация

Статистика форума:
 
Всего тем:
1005
Всего опросов:
14
Всего сообщений:
16790883
Всего сообщений сегодня:
1
Пользователи форума:
 
Всего пользователей:
2570
Последним зарегистрировался:
Jebcek