Roginvs

Пикабушник
Дата рождения: 18 июня
769 рейтинг 7 подписчиков 3 подписки 1 пост 1 в горячем
Награды:
10 лет на Пикабу
640

Квесты из Космических Рейнджеров в браузере

Квесты из Космических Рейнджеров в браузере

Представляю вам веб плеер квестов из игры Космические Ренджеры

https://vasiliy0.gitlab.io


Плеер написан на TypeScript, работает целиком в браузере, не требует бэкэнда. Содержит квесты из TGE (КР1) и КР2.


Началось всё с того, что я поставил Space Rangers Quests на свой телефон. Мелкий текст с пятидюймового экрана я еле разглядел, увеличил шрифт, и всё равно еле разглядел. Это и натолкнуло меня на мысли, что мобильная версия квестов должна быть какой-то другой. Опорной точкой для меня стал файл lastqm.txt с примерным описанием .qm формата, и этого было достаточно, чтобы начать работу над собственным плеером. Как это обычно бывает в хобби проектах, я не ставил перед собой каких-то больших целей, делал просто потому, что было интересно делать. Где-то через пару недель был готов прототип, стало ясно, что это может работать, и я неспешно продолжил разработку в свободное от работы время. Т.к. сам lastqm.txt файл не был полностью корректным, то далее основным источником информации для меня стал инструмент разработки квестов TGE. Много времени ушло (собственно, как и в любом реверс-инжиниринге) на осознание того, как же оно всё-таки работает и попытки сделать код, который бы работал так же. Очень сильно помогли автотесты для плеера - можно было смелее менять его код, не так сильно переживая что где-то что-то отломается из того что уже работает.


Когда первая веб-версия была готова, я вдруг обнаружил, что последние версии КР2 используют .qmm формат, описание которого нигде не было. Поначалу пришлось доставать .qm из промежуточной версии КР2 где еще квесты были в .qm, и только потом, через некоторое время, я осилил посмотреть, что же там такое в .qmm. Выяснилось, что .qmm даже в чем-то проще, потому как там отсутствуют неясные значения. Так что сейчас плеер может играть и .qm, и .qmm.


На сайте можно нажать "install", и тогда будет установлен serviceWorker с оффлайн версией кода сайта и квестами. Т.е. после этого можно заходить на сайт без интернета (правда, без интернета не будет картинок и музыки - мобильники не очень много места позволяют сохранить). Можно добавить сайт на главный экран, и тогда он будет выглядеть как приложение (указания браузеру в manifest.json). Несмотря на то, что сейчас сайты в интернете в наглую ставят свои serviceWorker-ы, я всё-таки считаю что это должно происходить только по запросу пользователя. Возможно что в будущем браузеры будут запрашивать разрешения у пользователя при попытке сайта установиться, так же как это сейчас происходит, к примеру, с запросом медиа или уведомлений.


Основная ветка кода находится на https://github.com/roginvs/space-rangers-quest , буду признателен за issues (если таковые есть), stars, pull requests. Сама веб-версия хостится на gitlab pages в том числе потому что у GitLab-а удобный continues integration - он сам собирает и тестит проект после каждого push-а. В планах надо бы срефакторить код регистрации serviceWorker-а, переделать логику меню игры, возможно, добавить React Hash Router, может быть, руки дойдут как-нибудь до всего этого. Думаю что, может быть, даже и осилю сделать веб-редактор .qmm файлов, по-крайней мере не вижу сейчас с этим сложностей, кроме как отсутствие большого количества свободного времени.

Показать полностью
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества