МЕТАПАРСЕР: библиотека минимализма


Сегодня я запустил небольшой каталог онлайн игр на метапарсере. http://metaparser.syscall.ru/

Игры работают на облегчённой версии интерпретатора, выглядят просто и запускаются быстро (на компьютере и вашем смартфоне). Никакой графики (хотя, движок их поддерживает), музыки, авто-подсказок, дополнения по клавише «таб» и прочей мишуры. В каком-то смысле, это анти-МЕТАПАРСЕР.

Парсерная игра в браузере

Зачем?

Сложно сказать. После долгого марафона развития INSTEAD3 мне захотелось вернуться к кристальной простоте настоящей интерактивной литературы. А настоящая интерактивная литература это, все-таки, игры с текстовым вводом. И ничего кроме текста и фантазии. Впрочем, как и в настоящей литературе. Чистый текст.

Отдаю себе отчёт, что вряд-ли библиотека привлечёт к себе много внимания, но… Кто знает, может быть я не одинок.

Версия JS-метапарсера, который используется в библиотеке, будет выпущен одновременно с метапарсером 1.4. Следите за новостями. :)

Парсер, живи! :)

А пока, добро пожаловать: http://metaparser.syscall.ru/

10 комментариев

johnbrown
Крутяк!

А какие ещё отличия у лайт-версии?

Пожелание — добавь ссылку на скачивание в описание игр.

Столько новых парсерных игрушек вышло, это прямо праздник какой-то! Спасибо всем авторам! :)
Комментарий отредактирован: 7 апреля 2019, 17:13
quantumcat
> А какие ещё отличия у лайт-версии?
В ней есть только поддержка элементарных instead тегов (вывод картинок, курсив, жирный, выравнивание по центру).
Впрочем, вывод никак не фильтруется, поэтому можно при желании использовать html. Но в этом случае игра не будет совместима с другими интерпретаторами.

> Пожелание — добавь ссылку на скачивание в описание игр.
Когда игры выйдут в составе инстедоза-6 — ссылки добавлю. Смысла добавлять ссылки именно на урезанные версии нет — чтоб не плодить сущностей.

> Столько новых парсерных игрушек вышло, это прямо праздник какой-то! Спасибо всем авторам! :)
Присоединяюсь. :)
Nikita
Есть надежды получить JS-интерпретатор, работающий с игрой не как с упакованным архивом, а как с совокупностью файлов на сервере с подзагрузкой ресурсов асинхронно по запросу, а не общей кучей при старте?
Ну и есть ли надежды убедить вас всё-таки реализовать проброс в этот JS-интерпретатор нативного звука INSTEAD?
quantumcat
А мне кажется, что порт от techniX, который instead.js уже все это умеет. И звук и картинки и, вроде, загрузка там более умная была (если не ошибаюсь). И мп3 на нем работает.

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

Думаю, что варианты собственного использования лучше отдать на откуп тем, кому это нужно.
quantumcat
Просто мне задача непонятна. Пока игра не набита медиа, там размер около 100кб. Если хотим набить медиа — набивать в виде html тегов или использовать instead.js от technix (не instead.em)
Nikita
Просто, на мой взгляд, эта JS-версия является единственным приличным web-вариантом для Метапарсера, а местами и лучше нативного приложения. INSTEAD-Em и INSTEAD-js можно оправдать для менюшных игр, но в контексте парсерного геймплея они ужасны из-за общей перегруженности кодом, который для чистого парсера не нужен и только отжирает трафик и производительность в десятки раз от минимально достаточного, критических принципиально неисправимых проблем accessibility, отсутствия нативных ввода и отображения текста и прочего. Устраивать же винегрет технологий, дёргая напрямую браузерные API из выводимого на экран текста, лишний раз тоже не очень хочется.

Кстати, INSTEAD-js, насколько помню, точно также грузит полный архив игры.

Впрочем, вашу позицию я понял.
techniX
INSTEAD-JS умеет работать как с архивом, так и с файлами на сервере (впрочем, при запуске игры он сразу предварительно кэширует все картинки — но эта фича отключаемая).
В последней (2.4.0) версии INSTEAD-JS добавлена также поддержка нативного ввода ОС, т.е. игры на последней версии Метапарсера «понимают» нативный ввод.
Насчёт «общей перегруженности кодом». В INSTEAD-JS используется только Lua-интерпретатор, скомпилированный в JS. Всё остальное — нативный JS-код, который работает достаточно быстро. Да и трафика там не так много — порядка 800 килобайт на всё.
Если есть ещё вопросы по поводу того, как именно работает INSTEAD-JS — с удовольствием отвечу.
Nikita
Боюсь, мы по-разному понимаем термин «нативный ввод».
Для меня нативный ввод в браузере — это обычная HTML-форма, а не перехват системного символьного ввода на странице.
В общем интерфейс парсерной игры в web (впрочем, как и любого места в Интернете, где мы вводим текст) должен быть обычной HTML-страницей с обычным текстом и полем формы. Всё остальное считать чем-то в порядке вещей довольно сложно без специального самовнушения.
quantumcat
Ну, с этим не поспоришь.
Возвращаясь к вопросу: картинки можно сделать легко, просто переопределив iface:img. С музыкой, думаю, любой js программист сможет сделать. Но я пока этим не буду заниматься.
quantumcat
> только отжирает трафик и производительность в десятки раз от минимально достаточного

> отсутствия нативных ввода

Это исправлено (нативный ввод), начиная с INSTEAD 3.3.0 и в последних версиях МП3

Насчет производительности, instead нативный работает очень быстро. Те-проблемы, о которых мы переписывались, думаю, не архитектурные. Конечно, надо разбираться дальше :) Но эти лаги ввода — не норма.