LINUX.ORG.RU

Парсерная игра «МЕТЕЛЬ» на свободном движке INSTEAD

 , , ,


11

4

Автором движка INSTEAD Петром Косых и художником Pakowacz выпущена игра «МЕТЕЛЬ».

Игра написана с использованием специально разработанного парсерного модуля «МЕТАПАРСЕР 3», который позволяет создавать игры с текстовым вводом.

Старенький синий седан едет по заснеженной трассе. Внутри машины — двое.

Ведёт машину усталая женщина лет 35. На заднем сидении справа сидит её дочь — девочка-подросток.

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

-- Вот увидишь, тебе там понравится.

Что тебя ждёт за снежной пеленой?

Исходный код игры (состоящий из набора Lua-скриптов и медиафайлов) распостраняется по лицензии CC-SA.

Для игры понадобится интерпретатор INSTEAD, который работает на большинстве известных платформ: Linux, Windows, FreeBSD, OS X, Android, Symbian и др.

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

>>> Страница игры на itch.io

>>> Скачать игру

>>> Инструкция по запуску игр

>>> Статья на dtf.ru

★★

Проверено: Shaman007 ()

Ответ на: tl;dr: текстовые адвентюры от anonymous

Re: tl;dr: текстовые адвентюры

см. например расширения на Inform7 console, Lines of communication :

Lines of Communication (for Glulx only) by Aa=
ron Reed begins here.
[...]

Chapter - Definitions

A file channel is a kind of thing.

A file channel has an external file called the input file. 

A file channel has an external file called the output file.

A file channel can be switched on. 

A file channel is usually switched off.

Chapter - Enabling and Disabling

Understand "enable [any file channel]" as file enabling. 

File enabling is an action out of world applying to one thing.

 File enabling is restricted to file channels.

Check file enabling (this is the can only enable file channels rule): if noun is not a file channel, instead do nothing.

Carry out file enabling (this is the switch on file channels rule): now the  noun is switched on.

Understand "disable [any file channel]" as file disabling. File disabling is an action out of world applying to one thing. File disabling is restricted to file channels.

Check file disabling (this is the can only disable file channels rule): if noun is not a file channel, instead do nothing.

Carry out file disabling (this is the switch off file channels rule): now the noun is switched off.

Chapter - Polling Frequency

The polling frequency in milliseconds is a number that varies. The polling frequency in milliseconds is usually 1000.

Chapter - Pinging

Pinging is an action out of world applying to nothing. Understand "ping" as pinging. [Just a do-nothing command to process when there are no real commands in the file to deal with.]

To say ping command: say "ping".
To say ping output: say ". [run paragraph on]".

Pinging is restricted to file channels.

Chapter - Marking commands from external files

processing external commands is a truth state that varies.

Before reading a command (this is the reset processing external files toggle rule): now processing external commands is false.

Before restricted to file channels when processing external commands is false: instead say the file channels only error.

To say the file channels only error: issue miscellaneous library message number 38.

[...]
anonymous ()
Ответ на: Re: tl;dr: текстовые адвентюры от anonymous

Re: tl;dr: текстовые адвентюры

это — пример кода на Inform 7. программирование на ограниченном естественном языке.

такой код компилятором транслируется в Z-code или новый формат (glulx blorb). чтобы проиграть нужен плейер. некоторые плейеры поддерживают несколько форматов: Z-code, glulx, Level 9, TADS и прочие.

Glk — расширяемый новый формат виртуальной машины текстовой адвентюры. это фактически API на текстовый консольный вывод, но есть возможность показывать картинки, играть музыку, рисовать графику.

если сделать из него text only получится cheapglk. чуть больше (добавить SDL — nanoglk). если добавить RPC, получится RemGLK и какая-то сериализация например через JSON состояния игры.

есть реализации в браузере, на JS: например GlkOte. или вот пример клиента-плейера вирт. маширы на Qt + QML + QtWebView для отрисовки GUI игры. текстовая игра обменивается выхлопом на JSON и далее управляет гуём интерфейса, потом парсер разбирает текстовые команды и управляет моделью мира.

как-то так работает плейер под андроид.

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

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

например, IFMUD + hubot, ifbot управляется через XMPP/IRC/.../whatever

теперь пишем простого клиента текстовых адвентюр на каком-нибудь Plan9 Или Inferno Limbo для этого ifbot, и запихиваем в ардуину и IoT.

PROFIT!!!

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

а INSTEAD, конечно устроен не так. это и есть такой самобытный интерпретатор, (правда расширяемый на Lua) — в духе визуальных новелл с выбором, каких-нибудь RenPy, QSP, URQ и прочее.

парсер там конечно есть какой-то, только до полноценного чисто текстового не дотягивает. опять же, с русскими словоформами у чисто текстовых есть сложности, хотя RInform на основе Inform 6 например, имеется.

фишка же Inform 7 в программировании на естественном языке  — см. второй исходник. туториал пошаговый с картинками.

например, классические олдскульные текстовые адвентюры в браузере

INSTEAD — скорее для визуальных новелл типа RenPy, ну чуть помощнее.

что в каком-то смысле и хорошо, если хватает простого текста и картинок.

главное, в конце-то концов — чтобы получилась интересная история.

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

Анон, вот ты наркоман. Какие нафиг виз.новеллы? Инстед это классический пойнт&клик, только в текстовом формате. Взял предмет из инвентаря применил его на предмет на сцене. Это самая базовая механика и есть в 90% играх на инстеде.

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

даже на ассемблере есть: HLA ASM + hlaAdventure

есть такой высокоуровневый ассемблер: HLA

язык с синаксисом типа Delphi, семантикой типа C++, но по сути ассемблер — выражения нужно писать через mov (ax,bx) и прочее, можно настраивать соглашения о вызовах и прочее.

есть стандартная библиотека, STL и прочее.

транслирует со своего такого ассемблера (выскокоуровевого) в MASM/FASM, в версии 2-3 работает очень быстро через mmap файлы.

так вот, под него написан HLABASIC как DSL.

ну и текстовые адвентюры конечно тоже есть: Arayna среда разработки, см. также hlaadventure (оттуда сконвертированный, либо исходный неконвертированный)

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

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

технически это Inform 6 допиленный до поддержки русской морфологии. то есть, такой ООП на своём языке, а не естественно язычный Inform 7.

Inform 7 на оффсайте пытаются локализовать правильно. см. примеры расширений про немецкий, испанский языки. ну то есть: определяют части речи, склонения-спряжения, времена, заводят немецкие слова как алиасы к английским через метаданные про части речи и прочие.

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

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

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

Пользователи линукса в своем большинстве просто фанатики. Пока другие играю в rdr2, пользователи линукс смотрят на консоль в и пользуются vim, наверно это классно.....

Я никогда этого не пойму.

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

Если говорить про rinform, то метапарсер3 на инстеде вполне с ним соизмерим. Не говорю, что лучше — тут зависит от того, что мы ценим больше. Но соизмерим. Стандартная библиотека перенесена с информа как раз. Можешь запустить, например, алису на ринформе и парсер инстеда с чат ботом и сравнить реакции. Также, сравнить исходные коды примеров ринформа и метапарсера. Они там перенесены очень близко.

gloomy ★★ ()

Игра интересная! Прошёл, понравилась. Правда у стены очень на долго застрял и в пещере. Единственный минус - прямолинейно) Ну и короткая))

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

Спасибо! Кстати, если кто-то хочет попробовать парсер, есть боты для discord/vk/telegram. Там несколько простых игр, в том числе и метель (правда, без графики музыки).

@ifquestbot это в телеге, например

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

На самом деле Instead - это и пойнт&клик и парсер и менюшные адвентюры и рпг и книги-игры и паззлы и аркады всё, что на ум взбредёт. По секрету - там ещё и 3D ухитряются. Потому что это полноценный игровой движок. Но чтобы узнать обо всём этом, надо таки посмотреть карточки игр в репозитории игр. Но это сложно. Там читать нужно.

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

Откуда я помню имя этого автора? Прочитал плот 三体 на википедии. Сделалось дурно, это стоит читать? И при чём тут Интерстеллар? Кстати, нашёл вот этот фильм сего месяца, даже не экранка (хоть и дерьмовое качество). Жаль, только китайский. У вас нет получше?

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

не, ну а почему тогда в очереди на бесплатный вегетарианский суп? :D

Может быть много разных ответов. От «привлекал внимание к некой благотворительной акции» до «это кто-то его скосплеил»

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

Продолжение мыслей на тему «можно ли проложить мостик между мирами Twine и Instead, и если да, то как и зачем» выложил в около-Instead сообществе club.syscall.ru

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

За обзор «классических» решений для Interactive fiction спасибо конечно (прям в Википедию просится) но неправда вот тут:

INSTEAD — скорее для визуальных новелл типа RenPy, ну чуть помощнее.

Ну не чуть, а ровно для того, что реализовать геймплей (с чисто иллюстративной графикой без анимации) в духе старых квестов от Sierra и LucasFilm (хотя Пётр в качестве игры, по примеру которой писалась игровая логика Квантового кота приводит Гоблинов, которые не от тех и ни от других). То есть где можно комбинировать предметы, получая третий и применять предметы на различных объектах игры.

Ну и метапарсер (использующий наработки aot.ru), судя по началу «Метели» в третьей версии уже вполне пристоен. Лично мне вполне хватало метапарсера второй версии, как в «Красках сентября», где предложение строилось из «готовых запчастей» (с подсказкой возможных вариантов), но и настоящий парсер вполне «пошёл».

А расширяемость там — весьма. Хочешь просто используй в режиме love2d и пиши аркады, хочешь — рогалики, хочешь — ещё что нибудь эдакое, например занимайся процедурной генерацией (детективного) сюжета, как в «Карантине». Примеры всяких нестандартных вариантов использования Instead на instead-games.ru есть в ассортименте.

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

примеры про Inform7

например, этот strangeloop2014, см. pdfы и сорцы

в minimal-rules-chart.pdf есть модель событий, которые запускаются при вводе команды в парсер.

в сорцах пример кода на псевдоестественном языке Inform 7, который задаёт игру (настраивая нечто в этой модели событий). задаётся последовательность сцен, правила, по которым можно выиграть (например начислить score), описывается модель мира (сцены, комнаты, объекты, персонажи, отношения и прочее)

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

очень гибкая система и любопытная модель мира. ну вот везде бы ТЗ например в таком виде писали, лепота была бы !!! :)))

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

Пока нормальные пацаны играют в топы шедевров игровой индустрии - The Witcher, God of War, GTA5, Legend of Zelda, RDR2, Metro: Exodus...

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

kirill_rrr ★★★★★ ()
Ответ на: Пацаны от utanho

Нормальные пацаны накопили денег на старую восьмерку и девок по району портят. А вы продолжайте играть :-)

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

kirill_rrr ★★★★★ ()
Ответ на: Пацаны от utanho

Восьмёрку нереально найти. Я полгода искал красную короткокрылую восьмёрочку в хорошем состоянии по кузову и салону - не смог. Взял тринашку( Они уже все коллекционные

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

Я никогда этого не пойму.

Вот и сиди на винде и не пукай.

Пока другие играю в rdr2

Ненужно.

и пользуются vim

Очень удобный редактор. Советую тебе его установить в свою уютную десяточку.

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

Здесь из обитателей люди, которые говорят, что использование 32 мбайт оперативы при старте системы это много.

Нет, самое то!

Поэтому они используют ядерную консоль без иксов

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

Этим людям пользователи с мышью кажутся быдлом

Вот тут согласен. Так и есть.

пользователи windows для них нелюди

Серая масса.

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

А вы экстрасенс, чтобы голословно заявлять о том, какая у меня ос стоит на машине?

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

PS: И у меня стоит на машине debian....

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

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

Ты фиговый телепат. Не сижу в консоли без иксов. Не проверяю каждую секунду сколько оперативы свободно. Не говорю, что пользователи других операционных сиситем быдло. Быдло — пользователи одной другой системы, а не всех других.

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

кто-нибудь для федоры 29 собирал?

и для 28 бы - у меня что то не собирается, пока не разобрался почему - раньше в версиях 1х и 2х собирались легко и к ним были бинарники, теперь 3х версия не собирается и бинарников нету

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

у которых всё продаётся и покупается, а любовь - это опасная иллюзия

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

Вот так с любовью, можно обвинить неугодных в продажности... Ну и конечно же при этом просить подарков от любимого мужчины! Цветы на 8 марта, идти туда где больше денег...

Еще это отличное средство для манипуляций, в стиле «делай X, я же тебя люблю!»

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

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

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

Это же все прекрасно видно, и это не буржуйская пропаганда?

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

скажите пойдёт ли на моём i8086 с 256 мегабайт памяти

Однозначно нет. Для запуска надо чуть больше чем валяющиеся в коробке процессор и какой(ие)-то чип(ы) памяти.

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

Третий пень — вполне себе приличный процессор, если на нём видеомонтажом и моделированием не заниматься.

А тот факт что этим на нем вполне себе занимались это как? Кстати так же как и на его предках.

Ну и современный веб, детище орков-рукожопов, конечно.

Вот это он не потянет, тут ваша правда.

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

чем люди на ПК занимались все 80-е
MP3 слушать и DivX смотреть

Коля Герасимов, прекрати использовать машину времени без разрешения взрослых.

Для разработки часто нужно бывает обвешаться виртуалками.

Кстати варя на первопне шла, не так конечно что бы обвешаться по самые помидоры на одном компе, но на одну виртуалку п1 166 и 16мб мозгов хватало.

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

Ищи instead, выдаст три приложения:

от Бориса Тимофеева - самое новое и не очень оттестированное.

от NLB-project - стабильное и есть даже под андроид 4.

от Сайлентлекса - совсем заброшенное, не ставь его.

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

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

Оффтопик

@sunderland93, может напишешь пожалуйста новость о том что проект vk9 загнулся. А то как-то это ни тут не на опеннете никто не осветил.. Обращаюсь к тебе - ты просто уже раньше создавал темы про vk9. Источник:

1. phoronix

2. github.com/disks86/VK9/issues/100

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

А тот факт что этим на нем вполне себе занимались это как? Кстати так же как и на его предках.

Занимались, но местами было тяжко. Я помню кодирование в MPEG2 с последующим DVD-авторингом на третьем пне. Он даже за ночь не успевал отработать, я тогда впервые задумался о гибернации. А вот четвёртый пенёк и с тактовой частотой побольше дал очень хороший скачок в производительности.

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

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

Коля Герасимов, прекрати использовать машину времени без разрешения взрослых.

Ты из контекста-то не выдёргивай. Это два разных предложения. Первое — ответ про косынку, второе — ответ «что остаётся» для третьего пня.

Да, MP3 это реально уже конец 90-х, DivX чуть попозже. MP3, кстати, и на первом пне уже можно слушать. Более того, первые MP3 с кошмарно низким битрейтом (чуть ли не 48), появившиеся на нашем рынке, мне удавалось без заиканий проигрывать на 486, разогнанном до 120 МГц, на минималистичном проигрывателе STP (System Tray Player). С битрейтом 320 такой трюк бы уже не прошёл, конечно.

Как там было в романе покойного писателя (официально он до сих пор живой и даже чего-то пишет и издаёт, но на самом деле под его кожей давно живут Чужие):

Начинается долгий спор, можно ли войти в виртуальность на «ИБМ-386», и поможет ли в этом процессе математический сопроцессор – «сопр». Я не вмешиваюсь, слушаю, хоть и знаю ответ. Можно. Я сам с «тройки» начинал. Тоже без шлема и костюма, как гипотетический солдатик, выбравшийся в самую необычную из всех самоволок истории. Но такой информацией не разбрасываются.

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