LINUX.ORG.RU
ФорумGames

МЕТАПАРСЕР: каталог минималистичных парсерных игр

 , , ,


5

5

Привет!

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

Для тех кто не знает. Это такие игры, в которых текст надо вводить с клавиатуры.

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

Зачем?

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

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

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

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

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

P.S. Также сделал приложение для vk: https://vk.com/app6934806_85944929

И пользуясь случаем, приглашаю всех заинтересованных в телеграм чат проекта: https://t.me/insteadtalk

★★

Ответ на: комментарий от skiminok1986

Какой толк в таком подходе, если в итоге ты придёшь к костылям для лабания произвольного кода внутри твоего жсона?

Нее, никакого кода внутри json'a. Код выносится куда-то, а в данных только описалово.

crutch_master ★★★★★ ()
Ответ на: комментарий от anonymous

Хрень получится. Много раз уже пробовали. Всё скатывается в нытьё авторов с просьбами запилить нужную им фичу.

Ну вот зачем каждому автору пилить свою реализацию локации? Остальные 2% фич можно запилить самому где-нибудь в отдельном уголке, лишь бы не было мешанины из данных и кода.

crutch_master ★★★★★ ()
Ответ на: комментарий от crutch_master

Эта идея проста в реализации, но довольно убога по возможностям. В Инстеде описание может быть динамическим без костылей и велосипедов. Что неизбежно при выносе описания в отдельный файл. Проще понять способ, принятый в Инстеде. В нём сочетаются мощь, простота и гибкость.

anonymous ()
Ответ на: комментарий от crutch_master

Потому, что именно так и происходит в процессе написания чуть менее чем примитивной игры. Но, если именно тебе так уж надо вынести в жсон, можешь вкогтить учебник по Lua и букварь Инстеда и написать загрузчик из жсона в инстед. Это несложно. Луашных парсеров есть на гитхабе.

anonymous ()
Ответ на: комментарий от anonymous

Да этот способ понятен. У меня такая же мешанина есть из данных с колбеками, только на жс. Хочется чего-нибудь дикого попробовать. Типа описание структур аля пьеса. Название, действующие лица, реквизит, сцена 1, акт 2, антракт и все дела.

crutch_master ★★★★★ ()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от crutch_master

Можно порыться в статьях на https://ifhub.club/ Вроде я видел там описание похожих движков. Но, емнип, эксперименты с театральным подходом к IF дропнули, поскольку реализовать их оказалось сложно, а результаты получились скушными. Но, как говорится, попробуй. Может именно у тебя получится.

anonymous ()
Ответ на: комментарий от crutch_master

Нее, никакого кода внутри json'a. Код выносится куда-то, а в данных только описалово.

Вообще, подобный проект уже есть, но он уже второе десятилетие пилится и игр под него мало совсем.

На самом деле, подход Instead-игр очень хорош. С одной стороны ты декларируешь сцены и объекты, с другой — можешь вставить произвольный код куда угодно. Это существенно упрощает разработку. Отделять логику от данных это правильно, но в текстовой игре это только усложнит разработку и не даст никаких плюсов игрокам.

И знаний lua тут не надо даже. Я до сих пор не выучил язык, но написал несколько игр вполне. И я такой не один =)

В любом случае, если ты сможешь дать PoH своего подхода или хотя бы выразить его в виде текста с примерами, можно будет лучше оценить идею. Пока то, что я видел, выглядит слишком негибко в сравнении с тем, что есть.

skiminok1986 ★★★★ ()
Ответ на: комментарий от ChekPuk

Большинство из нас имеют какие-то идейки, наталкиваются на такой вот движок и утопают в изучении всяких нюансов и пропадает всякое желание

Для написания простой игры на инстеде (а с чего начинать, если не с простой игры?) не надо особо ничего изучать. Достаточно прочитать документацию (не такая она и большая). Зато будет доступно гораздо больше выразительных средств, а при некотором старании можно сделать весьма разнообразную и интересную механику.

тем более, что кто в игру будет играть? сам, жена, да пара друзей, которых удастся наручниками к

И вот тут инстед становится ещё интереснее, ведь количество игроков автоматически увеличивается до нескольких десятков =)

skiminok1986 ★★★★ ()
Ответ на: комментарий от Borifed

Добро пожаловать в мир MUD'ов! ;о)

Бессмысленный и беспощадный. Чтобы написать хоть какой-нибудь MUD нужно куда больше сил приложить. А чтобы MUD умел вести себя как хотя бы метапарсер инстеда... Ну, видимо, никто не осилил, потому что таких пока не попадалось.

Плюсом мады это сильно вбок и пока что не нашлось ничего уровня IF. Где мады уровня игр от Level 9? Где мады уровня Blue Lacuna? Или истории уровня Лидии? Или хотя бы весёлые игры уровня Пути Медведя? Ответ вполне очевиден — их нет.

Так что MUD'ы это круто, но это совсем другой род игр. По сути ты сейчас пытаешься сравнить CRPG типа тех же Pillars of Eternity и MMORPG типа WoW, утверждая, что WoW покрывает всё, что есть в PoE и давая больше. Однако, не покрывает. И не даёт.

skiminok1986 ★★★★ ()
Ответ на: комментарий от Borifed

Не могу без боли смотреть на то, как в муках рожают велосипед ;о)

Без мук рождают нечто совершенно другое, но у тебя близорукость. Попробуй всё таки поиграть в парсерные игры и подумать, а уже потом писать.

skiminok1986 ★★★★ ()
Ответ на: комментарий от ChekPuk

нет utf кодировки???

Там много чего нет. Не только utf8. Однако, MUD'ы это действительно хорошие и увлекательные штуки. Правда не замета интерактивной литературе. Это как базар предлагать как замену театру =)

skiminok1986 ★★★★ ()
Ответ на: комментарий от ChekPuk

Инстед действительно не такой сложный, но в моей жизни не стоит цели потратить несколько лет жизни ради написания пары интерактивных анекдотов.

Потратив несколько лет жизни ты можешь написать свой движок. А для написания пары интерактивных анекдотов на инстеде тебе надо потратить только несколько вечеров жизни. Такова уж цена всего — на изучение нужно потратить время.

Интуитивно понятна только грудь матери. Остальному тебе так и так пришлось учиться.

skiminok1986 ★★★★ ()
Ответ на: комментарий от ChekPuk

программировать в узконаправленном Инстедовском движке. Для этого должно быть слишком много свободного времени.

Да. Пару вечеров на творчество потратить это перебор =)

Можно найти сотни причин, чтобы не делать. Однако, обычно это свидетельствует лишь о том, что делать не очень то и хотелось, а не о том, что эти причины действительно являются преградами.

skiminok1986 ★★★★ ()
Ответ на: комментарий от ChekPuk

Я люблю Инстед. Но этого не достаточно, чтобы захотеть писать на нём игры.

Естественно недостаточно. Для того, чтобы захотеть писать на нём игры, нужно хотеть писать текстовые игры. Если этого желания нет, то никакой супер простой в использовании движок, который делает всю работу за автора, не поможет.

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

skiminok1986 ★★★★ ()
Ответ на: комментарий от ChekPuk

Людям больше нужно «Создать персонаж», «создать комнату», «Добавить объект», список свойств, зависимостей. Возможность графически всё это увидеть. Сменив последовательность, или переместив объекты увидеть поломанные связи и пр. Вот чем хорош «современный подход».

Такие движки тоже есть для текстовых игр. Но их возможности выглядят убого на фоне нормальных инструментов. Если автору достаточно накидать кубиков и соеденить их линиями, то лучше поискать что-то, что создавалось с прицелом на такой формат работы автора. Правда и результат будет сильно недотягивать до тех же Метели, Другого Марса или Лидии. А чтобы он начал дотягивать, придётся много программировать, в отличии от инстеда, где программировать в любом случае приходится немного.

skiminok1986 ★★★★ ()
Ответ на: комментарий от crutch_master

Ну вот зачем каждому автору пилить свою реализацию локации? Остальные 2% фич можно запилить самому где-нибудь в отдельном уголке, лишь бы не было мешанины из данных и кода.

Именно чтобы не пилить каждому автору свою реализацию локаций и объектов с диалогами и был создан инстед. Тебе надо только декларативно описать всё и прописать взаимодействия на lua. Причём уровень программиста должен быть примерно «Я знаю про переменные, условия и функции». Если это слишком высокий порог вхождения, то тогда стоит подумать о более других играх.

Да. Игры на метапарсере пишутся немного сложнее, но только лишь потому, что и модель мира там существенно сложнее, чем в классических инстед-играх.

skiminok1986 ★★★★ ()
Ответ на: комментарий от crutch_master

Да этот способ понятен. У меня такая же мешанина есть из данных с колбеками, только на жс. Хочется чего-нибудь дикого попробовать. Типа описание структур аля пьеса. Название, действующие лица, реквизит, сцена 1, акт 2, антракт и все дела.

Посмотри в сторону ink и прочих twine'ов. Там как раз программировать не надо. Правда и игры получаются «а-ля пьеса». То есть без какой-бы то ни было сложной логики. Логику там приходится вкорячивать через боль.

skiminok1986 ★★★★ ()
Ответ на: комментарий от gloomy

Я думаю, что аудитория побольше, все-таки. Но, конечно, не сравнить с коммерческим геймдевом. :)

Несколько десятков это достоверно. И мы знаем этих игроков «в лицо». Есть ещё те, которые не ходят в чаты и на форуме, и вообще никак не обозначают своё присутствие, но я не могу их учитывать в силу их полной виртуальности с точки зрения автора.

skiminok1986 ★★★★ ()
Ответ на: комментарий от crutch_master

Хм, тебя случайно в интернете забанили? Неужели сложно скачать несколько игр, благо, весят они немного, и оценить сложность логики самому?

anonymous ()
Ответ на: комментарий от crutch_master

В рамках инстеда та же «Возвращение Квантового Кота». Если говорить о метапарсере, то «Путь Медведя». Если говорить о современном метапарсере, то хоть тот же «Лондон 1884».

Сможешь изобразить как это должно выглядеть в декларативном формате?

skiminok1986 ★★★★ ()
Ответ на: комментарий от crutch_master

Не могу сказать что прям логика сложная (скорее - типичная для парсерной игры), но можешь погонять как раз мой один день лета.

https://metaparser.syscall.ru/games/summerday/index.html

Исходный код: https://github.com/gl00my/instead-game-summerday

gloomy ★★ ()
Ответ на: комментарий от crutch_master

В догонку. Если не ограничиваться инстедом, то таких игр становится на порядки больше. Игры от Level 9, игры от Infocom, куча замечательных игр на информе.

Текстовые игры это не обязательно формат космичческих рейнджеров, где хватило бы и голого html.

skiminok1986 ★★★★ ()
Ответ на: комментарий от skiminok1986

Приходи к нам в чат лучше.

Это куда?

Мне в играх про марс и про пробуждение не понравилось то, что иногда мысль заходит в тупик, а правильные слова не придумываются. Мне кажется, что помогло бы добавление «виртуального помошника», инструментрона там, или нейросети.

Einstok_Fair ★★ ()
Ответ на: комментарий от Einstok_Fair

Это куда?

Jabber: instead@conference.jabber.ru

Telegram: https://t.me/insteadtalk

Discord: https://discord.gg/6bDcax

Все эти ресурсы объединены в один чат по сути. Выбирай что тебе удобнее.

Мне в играх про марс и про пробуждение не понравилось то, что иногда мысль заходит в тупик, а правильные слова не придумываются. Мне кажется, что помогло бы добавление «виртуального помошника», инструментрона там, или нейросети.

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

skiminok1986 ★★★★ ()
Ответ на: комментарий от conalex

такой блин редактор сам по себе на годный квест тянет))

Ну нейросети уже пишут литературные произведения вполне. Скоро смогут и игры писать по описанию на естественном языке =)

skiminok1986 ★★★★ ()
Ответ на: комментарий от ChekPuk

если сравнивать с современным подходом - кругом «проводники» и «диалоги»

Кстати, ты тут темы про Метапрог не смотрел? :) Если нет свободного времени, то и не надо, они не для слабонервных, но вообще, занимательное чтиво.

hobbit ★★★★★ ()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от crutch_master

На них не написано, что там внутри. Я играл в «Другой марс», например, там нет логики практически совсем.

Давай ты изобразишь «Другой Марс» декларативно на json? Ну просто чтобы понять что ты имеешь в виду, предлагая именно такой вариант.

skiminok1986 ★★★★ ()
Ответ на: комментарий от anonymous

Что тут телепатического? Линейный рассказ с локациями и переходами - это не логика, как и если бы там было n концовок. Логика - это реализация дробовика с магазином, уроном, разными типами патронов и износом ствола, например.

crutch_master ★★★★★ ()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от skiminok1986

Что он должен делать?

Ну, сейчас нейросети модная тема. Пусть изучает предыдущие прохождения, думает что делать и проявляет независимую от игрока деятельность путём давания рекомендаций.

Einstok_Fair ★★ ()
Последнее исправление: Einstok_Fair (всего исправлений: 1)
Ответ на: комментарий от hobbit

Да хватит уже :) Опустили, втоптали, поплевали... Ну и дурак я, ну и пусть я хочу больше конструктор, а не ещё один диалект lua. В конце концов, если не принимать во внимание метапарсера (в который я не залазил), то чем вообще занимается инстед? Мне проблема создать класс «комната» на любом произвольном языке? Это как недавний спор Lilipond vs Musescore. Да, на лильке можно писать круто, но там банальные вещи превращаются в сложнейшие кульбиты. Это и есть отличие просто языка програмирования от среды разработки. А вообще - я жду нейроинтерфейс, который считает все самые гениальные мысли из моей головы и воплотит. Вот тогда вы ахнете, тогда скажете - «а мы не ценили этого суперпупергения...», вам станет стыдно! А теперь смейтесь.

Сме-е-е-йся-я-я пая-а-а-а-ц, над разбитой любо-о-о-вью-у-у-у...

ChekPuk ()
Ответ на: комментарий от ChekPuk

Ахаха. Да все ок. Я вообще с тобой согласен. Конкретно на этом форуме я ищу аудиторию игр, хотя бы потенциальную. :) А уже потом, если зацепит, может кто то и напишет. Причем, не обязательно на инстеде. Не все творчество может/хочет вписаться в рынок.

gloomy ★★ ()
Ответ на: комментарий от bvn13

Игра - это всегда имитация. И она всегда подчинена каким-то правилам. Открой тот же майнкрафт (да любую игру) и стой как дубина, всем своим видом показывая как ты презираешь тех кто там бегает, но тебе это скоро надоест и ты её выключишь со словами «дурацкая игра, даже сесть нельзя», или ещё что умное придумаешь :) Но как окружающим относиться к таким заявлениям?

ChekPuk ()