qSpider - плеер для запуска QSP игр в браузере
qSpider - плеер для запуска QSP игр в браузере
Я уже какое-то время уже разрабатываю плеер, который позволял бы запускать QSP игры в браузере.
И наконец-то пришло время альфа релиза.
Демо игра - Сказочка на ночь
Страница с релизами - https://github.com/qspfoundation/qspider/releases
Новые релизы будут появлятся на ней по мере выхода.
Поддерживаются только новые версии браузеров (поддержки Internet Explorer нет и не будет).
Но проверял я в основном в Chrome и немного в Firefox - так что если у кого-то будет возможность проверить в других браузерах я буду очень благодарен за репорты об ошибках.
В плеере используется самая последня версия qsplib библиотеки, которую сейчас активно разрабатывает Байт.
Отличия от Классического плеера:
- пути к ресурсам (картинкам/аудио файлам) регистрозависимы - то есть если файл называется 'image.jpg' а в файле игры записано 'Image.jpg' или 'image.JPG' то плеер не сможет показать такую картинку
- для проигрования аудио используются встроенные средства браузера, поэтому рекомендованый формат для плеера - mp3 как самый поддерживаемый (хорошая альтернатива - webm, у него меньше размер при том же качестве, но чуть хуже с поддержкой браузеров)
- есть возможность пропуска wait (кликом по странице)
- сохранения хранятся в браузере
Известные проблемы:
- неправильно определяются пути к ресурсам если используется оператор openqst
- нет выбора act с клавиатуры
- у элементов системного интерфейса нет переводов
Внешний вид пока не финализирован - критика и предложения по улучшению очень приветствуются
Планы на ближайшее будущее:
- загрузка игры из архива и по ссылке
- экспорт/импорт сохранений - для переносов между браузерами
- возможность запуска Aero игр
Запуск плеера на компьютере
Из-за ограничений безопасности плеер нельзя запустить просто открыв index.html файл в браузере
Поэтому для запуска необходим локально запущенные сервер - можно использовать один из https://gist.github.com/willurd/5720255 или же расширение хрома https://chrome.google.com/webstore/deta … hemlocgigb
в дальнейших инструкциях я буду использовать расширение
- устанавливаем https://chrome.google.com/webstore/deta … hemlocgigb
- скачиваем и распаковываем qspider-player.zip с страницы релизов
- открываем в хроме chrome://apps/ и выбираем в списке Web Server
- в открывшемся попапе выбираем папку в которую распаковали плеер и запускаем сревер
- там же в попапе будет ссылка
по умолчанию вместе с плеером упакована игра "Сказочка на ночь"
для запуска другой игры
- копируем игру в подпапку `game`
- редактируем в той же папке файл `game.cfg`
* id - уникальный идентификатор игры (используется для сохранений)
* title - название игры (будет показано в заголовке плеера)
* folder - путь к папке с игрой относительно папки game
* file - название файла с игрой
Re: qSpider - плеер для запуска QSP игр в браузере
Рад, что теперь можно будет запускать игры в браузере без Flash.
werewolf молодец, плеер выглядит отлично (учитывая, что это ещё и альфа-версия)
Надеюсь, в будущем появится больше возможностей для оформления игр, а также проигрывание произвольных игр (передавать ссылку на файл игры?).
Re: qSpider - плеер для запуска QSP игр в браузере
Запустил на браузере Samsung на телефоне. Все окей, только понятное дело диагональ маленькая и очень все кучно. На смартфоне-то вряд ли кто будет играть в такую игру, а на планшете очень даже может быть.
Попробовал также на майкрософтовском Edge. Опять таки полет нормальный. Но из за английской локали в коде каждый раз настойчиво предлагает перевести страницу
На FireFox запустил для галочки. Проблем не выявлено.
Re: qSpider - плеер для запуска QSP игр в браузере
Вышла новая версия v0.8.1
- исправлен баг с путями при открытии игры через openqst
- добавлена поддержка горячих клавиш
на уровне плеера теперь поддерживаеются
- клавиши от 1 до 9 - выбирают действие с тем же индексом (как в класическом плеере)
- пробел - если действие в списке всего одно то выдирает его (как в класическом плеере)
- ctrl+s - открывает диалог сохранения
- ctrl+o - открывает диалог загрузки сохранения
- ctrl+r - перезапускает игру
- F5 - быстрое сохранение
- F9 - быстрая загрузка
- PageUp - увеличение громкости
- PageDown - уменьшение громкости
- Home - unmute
- End - mute
Я не до конца еще уверен в управлении зкуком - может у кого будут другие предложения по горячим клавишам для этого?
Так же теперь есть возможно определить для игры кастромные горячие клавиши.
Пример и описание того как это сделать - demo.zip
В планах еще сделать диалог со справкой (по F1) с этим списком, чтобы у игрока всегда была возможность его посмотреть
Re: qSpider - плеер для запуска QSP игр в браузере
Отпишусь здесь.
Запускал в опере, отлично работает и демо-версия, и с локального сервера.
В окне основного описания побаловался с CSS — само собой всё отлично работает, браузер же.)
Понимаю так, что в index.html можно засунуть ссылку на собственный CSS-файл и использовать в игре стили оттуда. А можно ли так подменять стили оформления, которые навешаны на интерфейс?
Re: qSpider - плеер для запуска QSP игр в браузере
Aleks Versus написал(а):
Понимаю так, что в index.html можно засунуть ссылку на собственный CSS-файл и использовать в игре стили оттуда. А можно ли так подменять стили оформления, которые навешаны на интерфейс?
сейчас скорее всего не получится - там css классы автогнеренные и могут менятся от версии к версии
но вообще кастомизация интерфейса в планах
скорее всего можно будет
- подключить через конфиг css файл
- подключить через конфиг кастомный шрифт
- настроить расположение панелей (сейчас можно исползьовать qspgui.cfg файл как в классике но там не самая гибкая настройка) - я пока еще не решил как это лучше сделать, хотелось бы менять его в процессе игры
- настроить внешний вид плеера в принципе - тоже еще в раздумьях как это лучше сделать
- воможно сделать механизм плагинов - чтобы можно было подключать какие-то js библиотеки
Re: qSpider - плеер для запуска QSP игр в браузере
вышла новая версия - 0.9.0
статья с описанием изменений - https://ifhub.club/2020/10/18/qspider-090.html
Re: qSpider - плеер для запуска QSP игр в браузере
werewolf999,
Плеер классный, с большими возможностями кастомизации интерфейса через исходники.
Правда актуален только для “Классических” игр, и постоянно ощущается большой упущенный потенциал.
И у меня возник вопрос – не подумывал-ли ты из “web-плеера” сделать локальный плеер? Web плеер конечно хорошая идея, ибо у всех есть браузер чтоб его открыть – но установка “локального сервера” убивает всю доступность.
С другой стороны, можно пойти другим путём и использовать не браузер, а NW.js или Electron как локальную платформу – Это решило бы все вопросы с “доступностью”, да и NWjs и Electron имеет встроенный NodeJS что означает возможность работать с локальными файлами.
(Хотел бы пояснить смысл – как локальный плеер, Qspider мог быть стать хорошей (и что самое главное более гибкой) альтернативой плееру от Sonnix, если добавить не замороченную возможность работы c JS из QSP кода – в этом случае ещё и более динамичной.
Сам QSP прост и как следствие хорош для “Логики” игр, но имеет большие проблемы с визуалом и динамикой, хороший и не замороченный плеер мог бы решить эту проблему.)
Но и самое главное (по крайней мере для меня) – было-бы круто увидеть возможность использовать JS функции в QSP коде, т.е. что-то типа моста как в плеере от Sonnix.
(Просто насколько я понял, поковырявшись в исходниках, на данный момент это возможно только при условии, что дополнительные функции изначально впилены в плеер со всеми соответствующими линками, функциями и методами и могут быть триггернуты из QSP только косвенными методами, хотя, я дилетант так что – такое.)
Upd:
Поковырявшись с плеером, я понял, что взаимодействия JS-CSS (т.е. динамическая смена классов, например) может быть с лёгкостью выполнена через дифолтный QSP, т.к. в этом случае сам плеер занимается только интерпретацией и отрисовкой HTML, и как следствие получает код в виде стринги, с уже сгенерированными и раскрытыми переменными из QSP, т.е. классы DIVок могут быть динамически назначаться напрямую из QSP а на выходе – CSS будет отрисовывать всё на их основе.
(Также можно триггерить JS функции через проверку имени класса, если это нужно)
И поскольку плеер выполнен на реакте, gt $curloc не “обновляет” страницу в классическом понимании, т.е. сохраняется “позиция” скролла и всё прочие и не происходит назойливых мерцаний, но “изменённый” или “обновлённый” контент – обновляется.
Естественно, это не заменяет JS, с помощью которого можно делать намного больше, но даже в таком виде – это неплохо.
Upd:
Вопрос к тем, кто тестил этот плеер на более-менее больших проектах – Нет ли у вас проблем с загрузкой сохранений?
Дело в том, что – на демо играх всё работает хорошо, но это и не удивительно, они крошечные.
Но насколько я понял, система сохранений не очень ладит с большим кол-вом переменных, у меня кидает ошибку при попытке загрузится -
Тестил на 2х разных играх, одна весом 6mb вторая 10mb – обе сохраняются/загружаются на начальных экранах, но после начального init’а переменных – игра просто отказывается загружаться.
Поправка, потестил вторую “Демку”(Куртуазная Баллада), просто покликал наугад, чтоб набрать больше информации для сэйва – сохранился, попробовал загрузится – та же самая ошибка.
Т.е. система сохранений поломана.
Без сохранений – плеер бесполезен, хотя автор проделал большую работу над ним. Печаль
Информация
- Статистика форума:
- Всего тем:
- 1054
- Всего опросов:
- 14
- Всего сообщений:
- 16791194
- Сообщений на этой неделе:
- 4
- Пользователи форума:
- Всего пользователей:
- 2831
- Последним зарегистрировался:
- sergo993