Привет всем!
Сегодня выложил свою первую игру на метапарсер 3 (она участвует в "Паровозике") -- "ДРУГОЙ МАРС".
http://instead-games.ru/game.php?ID=298
Это -- первая реальная игра (не считая демок с информа) на новом парсерном движке МЕТАПАРСЕР 3 (далее - МП3).
Создаю эту тему для вопросов и анонсов.
Для начала, документация:
https://github.com/instead-hub/stead3-m … /manual.md
Ветка на инстед форуме:
http://instead-games.ru/forum/index.php … taparser-3
Сейчас МП3 доступен только в git но в обозримом будущем я буду готовить официальные релизы в виде .zip файлов.
Ну вот и все, встречайте.
Краткое описание:
1) в отличие от мп2, мп3 настоящий парсер. Это значит, если отключить подсказки в виде ссылок -слов игра играется так же как игры на информе. Ты можешь написать: взять яблоко, или яблоко взять или быстро возьми яблоко и это будет работать
2) словарь в мп3 теперь используется на полную катушку. в том числе и для глаголов. Это очень сильно упростило сам код МП3.
Пример вывода стандартной библиотеки;
mp.msg.Enter.INV = "{#Me} не {#word/могу,#me,нст} зайти в то, что {#word/держать,#me,нст} в руках."
Тут видно, что все генерится на лету. Склонение, согласование слов. И так далее.
3) мп3 написан на стед3 -- код стал понятным и простым для расширения. Код игр ЗНАЧИТЕЛЬНО упрощен.
4) В МП3 вся библиотека информ перенесена в полном объеме. Это очень облегчает моделирование игры. Например, ты можешь поставить стол, на нем аквариум (прозрачный и открытый) В нем рыбка. И все будет корректно отрабатывать - включая зоны видимости.
Типа если ты залез в аквариум, то ты видишь комнату но взять можешь только то что внутри. Итд.
5) Вообще писать можно много, но главное -- это НАСТОЯЩИЙ НОВЫЙ парсер! В который можно играть и мышкой и клавой.
6) Парсер чуток к игроку. Например, он понимает описки в словах. Подсказывает - возможно тут надо было ввести существительное в вн падеже. И так далее.
Неактивен
Выпустил игру "ДРУГОЙ МАРС" в свет.
Статья на gamin: https://gamin.me/posts/19616
Статья на lor: https://www.linux.org.ru/news/games/14385869
Игра на itch: https://instead.itch.io/mars
Спасибо за тестинг и отклики!
Неактивен
Обновил метапарсер до 1.1.
Изменений много. Единственная игра, в которой сейчас используется версия 1.1 -- "Метель".
Из видимых изменений: адаптация для чат-ботов, можно не дописывать существительные полностью.
Чат-боты доступны здесь:
Telegram: https://t.me/ifquestbot
VK: https://vk.com/im?sel=-18020281
Discord: https://discordapp.com/invite/RHquRHm (там зайти на канал #ifbot или написать боту лично)
Игры для чат-ботов будут постепенно добавляются.
Страничка со стабильными версиями тут: https://instead-hub.github.io/page/metaparser/
Неактивен
Обновил до версии 1.2
- Мелкий баг в демо-игре Алиса;
- Теперь при вводе учитывается раскладка. Работает только с версией INSTEAD 3.3.0 и выше;
- команда парсер эксперт нет/да (выключить авто-дополнение и подсказки/включить их);
- синонимы некоторым глаголам.
https://instead-hub.github.io/page/metaparser/
Неактивен
Вышла версия 1.3
- Улучшены сообщения при ошибках ввода;
- Исправлены ошибки в стандартной библиотеке;
- Для всех событий в стандартной библиотеке стандартный вывод перенесён в after_ часть;
- Функция isDaemon() и метод ob:isDaemon();
- Исправлены ошибки.
https://instead-hub.github.io/page/metaparser/
Неактивен
Решил сделать вариант МП в виде js варианта.
Демка пока тут: http://instead.syscall.ru/instead/metaparser-js/
Но сейчас собрано в WASM, так что не во всех браузерах пойдет.
Сохранить - загрузить работают только с 1 слотом.
Репозиторий: https://github.com/gl00my/metaparser-js
Неактивен
johnbrown написал:
Та, которая может работать без сервера
Ну, после того как ты ее запустил -- сервер не нужен. А так чтоб прям из html запускалось, так есть нативный инстед, лучше уж тогда его запустить, чем html из зипа )
Неактивен
jhonbrown, ради интереса запустил с диска -- работает. Так что, считай, что ответ утвердительный.
Неактивен
Мне чтобы на статическом сайте работал
Ну у нас все версии так работают: instead-em, instead-js, metaparser-js.
А как ты его запускал?
Открыл uri file:///home/peter/Devel/metaparser-js/index.html в браузере. Там у меня лежит metaparser-js.
P.s. на всякий случай уточняю. работа на статическом сайте и запуск с диска - не одно и то же. Все наши версии работают на статическом хостинге без проблем. Все ли запускаются при этом с диска я не знаю. Ну вот метапарсер-js точно запустился.
Неактивен
МЕТАПАРСЕР3: библиотека минимализма
http://metaparser.syscall.ru
https://ifhub.club/2019/04/07/mataparse … lizma.html
Движок в варианте js выпущу одновременно с МП1.4
Stay tuned!
Неактивен
Не понял. Ты имеешь в виду убрать болд? Так как это все html разметка же.
Неактивен
а слона то я и не заметил! Спасибо, буду править.
Неактивен
Сделал (и допилил) приложение в vk.
https://vk.com/app6934806_85944929
Готовлю к выпуску МП 1.4...
Неактивен
Выпущена версия МП 1.4.
Среди изменений: теперь модули morgh и parser лежат в своих каталогах. Кроме того, их можно перенести в каталог с системными модулями INSTEAD и это будет работать.
Кроме этого, вышла первая версия metaparser-js: https://instead3.syscall.ru/post/2019-0 … er-js-1.0/
Файлы метапарсера в неё не включены (модули должны присутствовать в игре), но я пока ещё думаю над этим.
Неактивен
> Кстати, html тэги в командах пользователя и уточнениях добавляются в транскрипт.
Если ты про десктопную версию, то там всё попадает, весь вывод. Я решил не резать, удобно иногда в отладке. Это правда не html теги, но частично они совпадают.
> По-крайней мере, так в Instead launcher для Android v0.5. Там ещё и с клавиатурой проблемы — работают только буквенные символы, цифры и точка.
Вот этот?
https://play.google.com/store/apps/deta … adlauncher
У меня правда 0.6 он называется.
В нем у меня все вводится. Может, как то от клавиатуры зависит? Нужно больше инфы. Обновись на всякий случай до 0.6
Неактивен
Прости, опять промахнулся и отредактировал твое сообщение Вроде восстановил но без оформления.
> Нет, я на Андроиде смотрю. Ну, раз так надо, то ок.
Не то, чтоб прям надо, но мне кажется, что так "честнее" Подумаю.
Неактивен
А чем мешает текущее положение?
Там просто смотри, как устроено.
Автор игры пишет что-то вроде: {$fmt em|текст}.
Потом это превращается в вызов функции iface:em(), которая является уже UI частью (расширением) и в разных интерпретаторах может быть реализована по-разному. От пустоты (в tiny версии), до тега html в js версии или другого тега в ПК версии.
То-есть сам движок (ядро) не занимается форматированием вообще.
Можно, конечно, что то воткнуть в пост обработку, но я особых практических проблем не вижу, поясни так сказать реальность траблы.
Неактивен
> Получается, часть информации из транскрипта теряется, в зависимости от интерпретатора, честно ли это?
Имхо. Честность здесь проявляется в том, что записывается просто весь вывод. Все что выдали - записали.
> Я не настаиваю, просто считаю, что тэги лишние в текущем формате
Непонятно как написать универсальный код ядра, который бы удалял все теги которые могут быть (в том числе и в будущих интерпретаторах).
Можно сделать это частью стандарта -- то есть -- вырезатель тегов должен реализовать каждый интерфейс, но как то не очень нравится.
Неактивен
Запуск с _диска_ (не с сервера) игр в формате МЕТАПАРСЕР.js работает только в FireFox. На chrome политика безопасности запрещает часть запросов, несмотря на то, что они находятся в том-же каталоге. Вернее, некоторые версии Chrome так делают.
Для запуска своей игры вы можете или залить её на какой-то хостинг и запускать в виде:
https://metaparser.syscall.ru/games/index.html?URL
Или залить свою игру со своим дистрибутивом METAPARSER-js: https://github.com/gl00my/metaparser-js/releases/
Локально можно тестить игру либо в FireFox, либо запуская локальный сервер в каталоге с игрой. В linux это просто: python2.7 -m SimpleHTTPServer 8000
Ну или просто писать на настольном INSTEAD а потом уже оформить игру в формате метапарсер-js
Неактивен
Вышла новая версия МЕТАПАРСЕРа -- 1.5
Что нового?
- Проект переехал в свой отдельный репозиторий: https://github.com/instead-hub/metaparser
- Исправлена ошибка открытия меню при неправильном вводе;
- Исправлена ошибка Walk при отключённом компасе;
- TakeAll и DropAll теперь рекурсивные;
- Словарь стал включать в себя "заплатки" на ошибочные случаи;
- Переработана функция показа описаний содержимого объектов и сцен;
- Теперь все демо-игры запускаются из общего меню (модуль можно запустить как игру);
- Исправление поведения onexit/exit при выходе из предмета в другую комнату;
- Внутренние изменения и рефакторинг;
- persist объекты могут иметь dsc;
- Сортировка объектов при выводе (учитывается pri);
- Переработка логики scope;
- Исправления в стандартной библиотеке.
Одновременно с этим обновлена версия metaparser-js-1.5. Теперь в js версию всегда входит одноимённая версия модуля МЕТАПАРСЕР. Это значит, что в игру класть модуль не обязательно.
Изиенения:
- Дружественная вёрстка для незрячих (спасибо Никите);
- При запуске игры меняется заголовок окна;
- Исправления в js части;
Демонстрация работы модуля как всегда здесь:
https://metaparser.syscall.ru
---
Страничка метапарсера: https://instead3.syscall.ru/page/metaparser/
Неактивен