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

★★

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

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

Ну так там какая никакая модель мира таки есть. Это не линейный текстовый рассказ. Попробуй в неё всё таки поиграть =)

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

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

Сделает ли это игру лучше?

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

Ну и дурак я, ну и пусть я хочу больше конструктор, а не ещё один диалект lua.

Где ты нашёл ещё один диалект lua?

Мне проблема создать класс «комната» на любом произвольном языке?

Зачем его тебе создавать?

Это и есть отличие просто языка програмирования от среды разработки.

Очень странное видение у тебя среды разработки.

А вообще - я жду нейроинтерфейс, который считает все самые гениальные мысли из моей головы и воплотит. Вот тогда вы ахнете, тогда скажете - «а мы не ценили этого суперпупергения...», вам станет стыдно! А теперь смейтесь.

Гениальную мысль родить могут многие. Только гении могут её воплотить. Так что в таком случае мы скорее скажем: «Вот это супергений такой то инструмент забабахал, что даже ЧекПука понял» =)

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

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

Описалово должно соответствовать строгим правилам. Вот хочу я, например, в одной игре окрашивать героев в цвета градиентной карты, а не помню как это делается на конкретной версии glsl, но логически-то я знаю, что такой-то объект, с такой-то монохромной текстурой должен быть раскрашен в соответствии с таким-то градиентом. Я не должен знать диалекта glsl, мне плевать на каком языке моя игра, я продумываю логические элементы, музыку, представляю героев, нейроинтерфейс всё считывает, а какойнить завалящий самый мощный ИИ на планете всё это реализовывает и ещё подсказывает - тут забыл, там несоответствие... Красота!

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

По крайней мере, будет с кем поговорить. А то лежишь на полу в бункере, лапы отрастить не можешь, прыгнуть на скафандр не получается («перепрыгивать не тсмысла»), что делать непонятно.

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

Нейроинтерфейс не нужен. От детального описалова всё равно никуда не уйдешь.

Беда в том, что если уж от него не уйти, то без разницы что изучать — lua или надстройку над json. Или даже интерактивную среду разработки, где объекты и их взаимодействия представлены графически. В любом случае придётся изучать этот вопрос, а потом долго и буторно разбираться почему у тебя брошенный на пол бокал не разбивается, а предметы, поставленные на тумбочку, пропадают из описания, когда тумбочка закрыта =)

Непосредственно кодирование игры это лишь малая часть работы над ней. Поэтому странно слышать, что именно полновесный ЯВУ и мощный инструмент разработки являются непреодолимыми препятствиями для автора.

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

а зачем тогда давать игроку что-то вводить, если можно просто нажимать кнопку «далее» и читать очередную порцию текста?

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

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

Описалово должно соответствовать строгим правилам. Вот хочу я, например, в одной игре окрашивать героев в цвета градиентной карты, а не помню как это делается на конкретной версии glsl, но логически-то я знаю, что такой-то объект, с такой-то монохромной текстурой должен быть раскрашен в соответствии с таким-то градиентом. Я не должен знать диалекта glsl, мне плевать на каком языке моя игра, я продумываю логические элементы, музыку, представляю героев, нейроинтерфейс всё считывает, а какойнить завалящий самый мощный ИИ на планете всё это реализовывает и ещё подсказывает - тут забыл, там несоответствие... Красота!

Конечно красота. Только будет ли результат твоим? ИМХО, он будет в большей степени достигнут ИИ, чем тобой.

Твоя проблема решается просто. Выступай в роли гейм-дизайнера, а программирование оставь тем, кто способен читать и писать. А визуальную часть оставь художникам/моделлерам/аниматорам/дизайнерам. Не твоё это =)

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

Мои мысли - они самые-рассамые оригинальные и гениальные! А то, что я не могу их воплотить - лишь подтверждают мою гениальность! Ведь как говорят - талантам надо помогать, бездарности и так пробьются. А я, вот, не пробился! Значит я гений, а вы все... Ох, дождусь я нейроинтерфейса... Правда, боюсь, что к тому времени уже всё забуду :)

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

По крайней мере, будет с кем поговорить. А то лежишь на полу в бункере, лапы отрастить не можешь, прыгнуть на скафандр не получается («перепрыгивать не тсмысла»), что делать непонятно.

Не надо принижать MUD'ы. Они тоже не для скудоумных.

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

Мои мысли - они самые-рассамые оригинальные и гениальные! А то, что я не могу их воплотить - лишь подтверждают мою гениальность! Ведь как говорят - талантам надо помогать, бездарности и так пробьются. А я, вот, не пробился! Значит я гений, а вы все... Ох, дождусь я нейроинтерфейса... Правда, боюсь, что к тому времени уже всё забуду :)

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

Дорогу осилит идущий. Но для того, чтобы идти, нужно научиться ходить.

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

Вот и помоги развивать. И всем будет хорошо. Вообще набивание баз данных самая скучная работа.

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

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

Понятно, что это не ии. И всегда найдется фраза, типа взять себя в руки :) Такие слова как использовать, свалить - слишком абстрактны и их действительно нет в стандартной библиотеке. Зато там есть: толкать, тянуть, переместиь, ударить итд. Дальше от игры, конечно зависит.

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

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

Я пытался свалить скафандр, пытался его тащить к пульту (Лог выше есть) Тут не в скудоумии дело, а в малом словарном запасе у парсера

Написал бы автору игры хотя бы. Хотя выше ты привёл нечто, весьма далёкое от того, что нужно делать. Хотя, свалить скафандр я бы добавил.

Проблема малого сообщества — мало тестирования. В идеале, должны быть дотошные тестеры и много. И все они пишут транскрипт с комментариями. Это помогает автору игры понять что и как пытаются сделать игроки. Как следствие, помогает сделать игру комфортнее для игрока. У нас игроков то несколько десятков всего. Тестеров единицы и все они хоббисты-волонтёры. Как и авторы.

Вот ты бы просто записал транскрипт и отправил его автору игры, например. Это было бы куда полезнее, чем нытьё по форумам. Правда, опять таки, ныть по форумам проще и выглядишь потом как Д'Артаньян.

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

Попробуй в неё всё таки поиграть =)

Ну хз. Всё прошел, посмотрел сорцы, походу ничего не упустил. По тупил какое-то время возле арки и всё. Что я там упустил?

Ну так там какая никакая модель мира таки есть. Это не линейный текстовый рассказ

Ну даже если не линейный а с n ветками, m концовками и n^m вариантами диалогов, то это не большая проблема наделать триггеров на действия и заметапрограммировать условия. Главный гемор - это всякие хитрые механизмы, поведение npc, но в текстовых квестах это всё лишнее.

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

Ладно, я шучу.

Но на основе всей вот этой белиберды, что я понаписал, придумалась игра для вашего метапарсера- Игра в ИИ, который должен понять, чего от него хочет человек :) Реализуйте пжлст :)))

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

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

Этот словарь исчерпывающий да. Однако, по факту тебе не нужно знать как применять слово «Ёлка», если действие игры разворачивается на лунной базе, например. Поэтому и составляется словарь для каждой игры отдельно. Так не нужно таскать 8 метров полного словаря, а хватает нескольких десятков килобайт специального словаря.

К тому же словарь ничего не даёт игре, кроме как склонений. Набивание синонимов для глаголов — проблема стандартной библиотеки и автора игры. Набивание синонимов для объектов — проблема исключительно автора игры. Всё это делается очень просто технически, но невозможно учесть все варианты, которые придумает игрок. Например, я описал предмет «дерево,деревце|берёза,берёзка», а игрок пытается ввести «берёзонька». Можно или прописывать все эти уменьшительно-ласкательные по всему словарю (представь сколько сотен тысяч слов надо обработать" или, что куда проще и быстрее, автору игры добавить синоним «берёзонька».

Так что все озвученные проблемы про «тупую игру» сводятся к тому, что мало тестеров, а игроки (на самом деле прохожие) не хотят помочь проекту, а хотят быть Д'Артаньянами на ЛОРе =)

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

Во! Я нашёл ещё минусы в твоём метапарсере! Он не использцет словаря Даля!!! Я хочу пробежаться по лузю, а он нипанимаит :)

При чём тут метапарсер? Это отсутствие синонима в игре. Этим занимается автор, а не движок.

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

Ну даже если не линейный а с n ветками, m концовками и n^m вариантами диалогов, то это не большая проблема наделать триггеров на действия и заметапрограммировать условия. Главный гемор - это всякие хитрые механизмы, поведение npc, но в текстовых квестах это всё лишнее.

Выглядит так, как будто ты за деревьями леса не видишь.

Про лишнее в квестах это ты смешно пошутил =)

ЗЫЖ Я, кажется, понимаю, что в твоём понимании, хватит простого графа истории. Ну так для этого есть движки специальные, где каждый может написать без ухищрений свою историю даже без json — просто таская кубики в окошечке. Другое дело, что такие игры многих не прельщают, так что не стоит всё разнообразие интерфейсов и подходов сводить к такому примитивизму.

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

Но на основе всей вот этой белиберды, что я понаписал, придумалась игра для вашего метапарсера- Игра в ИИ, который должен понять, чего от него хочет человек :) Реализуйте пжлст :)))

Кирилл, это ты?

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

Выглядит так, как будто ты за деревьями леса не видишь.

Возможно. А когда начну делать многое для себя открою. Критикуй.

Про лишнее в квестах это ты смешно пошутил

Ну, а что? Кто-то будет делать advanced+ battletech-меха в текстовом квесте? Хотя было бы не плохо зделать такую игру, чтобы можно было играть за механика, уборщика, пилота или командира.

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

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

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

Выглядит так, как будто ты за деревьями леса не видишь.

Возможно. А когда начну делать многое для себя открою. Критикуй.

Пока нечего критиковать. Ты же не представил даже концепта =)

Просто есть несколько типов текстовых игр. Про это неоднократно и много где написано. То, что ты предлагаешь, это больше в сторону CYOA-игр. Или книг-игр. То, что даёт инстед, это к моделированию мира и сложным механикам. Это не значит, что это всё в гигантском объёме есть в каждой игре. Это значит, что движок даёт автору игры это реализовать.

Instead-игра это не игра в текст. Это игра, в которой игровая ситуация описана текстом. Это далеко не одно и то же.

Кто-то будет делать advanced+ battletech-меха в текстовом квесте?

А что мешает? Это может быть весьма интересная механика. И инстед (как, впрочем, и информ и тадс и прочие адрифты) позволяют её реализовать.

Хотя было бы не плохо зделать такую игру, чтобы можно было играть за механика, уборщика, пилота или командира.

А для этого достаточно собрать граф из кубиков-параграфов. Тут как раз механики может и не быть.

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

Не, Мефодий я, а Кирилко намедни за хворостом пошёл, да волокуши встре, оглобле одни торчать. А сённи дрыхнеть, не оклемался ышо поди. Ща зыркну, али ён продёр зеньки :)

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

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

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

Склоненяет движок самостоятельно.

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

Не, Мефодий я, а Кирилко намедни за хворостом пошёл, да волокуши встре, оглобле одни торчать. А сённи дрыхнеть, не оклемался ышо поди. Ща зыркну, али ён продёр зеньки :)

И такой язык в антураже научной фантастики =)

skiminok1986 ★★★★ ()
Ответ на: Ну вот... от hobbit

То неловкое чувство, когда я спросил без подвоха, а восприняли как издевательство...

В лучших традициях ЛОРа — на всякий случай считать издевательством все сообщения %)

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

всякие хитрые механизмы, поведение npc...

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

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

А что мешает?

Да ничего не мешает, кроме того, что у battletech томик правил и его реализация/отладка на чём угодно - это уже задача не простая.

И инстед (как, впрочем, и информ и тадс и прочие адрифты) позволяют её реализовать.

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

А для этого достаточно собрать граф из кубиков-параграфов.

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

Пока нечего критиковать. Ты же не представил даже концепта =)

Концепт простой. То, что можно описать просто описываешь просто, что не можешь - не описываешь. Можно, например написать, «расход генератора 0,5 литров топлива в час» и ничего не кодить, а движок такое схавает, да еще и спросит тебя, а что за такой триггер - «час»? Если таких оборотов сделать достаточно, то можно практически ничего не кодить, хоть такая возможность и будет.

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

Ну, кагбе, этот язык сам по себе можно назвать фантастическим, я просто вывалил слова из булькающей памяти, в реальности тут как минимум два говора :)

Кстати, идея игры №2 (записывайте, потом забудете же)

Заблудился в лесу, вышел к какой-то избушке, а там дед вот таким вот говором говорит и современных слов не понимает, нужно с ним найтиобщий язык.

И что-то всплыла в голове книга про Космолухов, там дед на планете Мозгоедов был, вот ему бы такой говор, тут тебе и третий сценарий, и с фантастикой :)

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

Концепт простой. То, что можно описать просто описываешь просто, что не можешь - не описываешь. Можно, например написать, «расход генератора 0,5 литров топлива в час» и ничего не кодить, а движок такое схавает, да еще и спросит тебя, а что за такой триггер - «час»? Если таких оборотов сделать достаточно, то можно практически ничего не кодить, хоть такая возможность и будет.

Это потребует от автора движка описать кодом предварительно модель всего, что только есть. Или всё таки автору игры придётся кодить.

Да. Всего, чего только нет, тоже придётся описать автору движка. Иначе научная фантастика и фентези отпадают как жанры, которые можно реализовать на таком движке.

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

Я всё это и велодвижке у себя пишу. Вопрос как бы не писать каждый раз всякую элементарщину на яп.

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

В своей практике я ни разу не столкнулся с необходимостью что-либо переносить из одной игры в другую. Поэтому как практик не понимаю прелести потратить n-цать человеколет на написание библиотеки, которая никому не нужна =)

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

Кстати по баттлтеку я как-то хотел наваять небольшую игру. Проблема в том, что боевка в текстовом виде выглядит скучно. Есть на инстеде игры с хорошей боевкой, но она там графическая все-таки.

Например Код-10 http://instead-games.ru/game.php?ID=91

Все-таки текстовые игры тяготеют к более сюжетному жанру квестов, а не стратегий и шутеров. Кстати никто в треде так и не упомянул, что классические инстед-игры - это скорее пойнт&клик квесты. Взять что-то, скомбинировать, использовать на объекте локации и т.д.

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

Кстати никто в треде так и не упомянул, что классические инстед-игры - это скорее пойнт&клик квесты. Взять что-то, скомбинировать, использовать на объекте локации и т.д.

Тред про метапарсер, вот и обсуждаем метапарсер =)

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

Это потребует от автора движка описать кодом предварительно модель всего, что только есть.

Да не обязательно всё прям детально описывать. Достаточно общих случаев типа обладание/присваивание/изъятие сущности каких-то свойств, возможностью что-то делать, реализация логики количественный свойств и может еще десяток другой каких-то вот таких базовых вещей. То есть имеем объект, свойство, локация, действие.

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