Альтернатива классической модели мира в парсерах

Прочитал тут статью cheshire «Искры. Полвека парсера». Если не читали — рекомендую. Напишу свои мысли на этот счёт.

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

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

Технически, ничто не мешает написать текстовый (не ASCII) вариант условного Cataclysm, но сколько это займёт времени? Рогалики полируют и совершенствуют годами, если не десятилетиями, зачастую силами сообщества. ИЛ — про авторов-одиночек. Каждая игра, по-сути, начинается с чистого листа, как новый движок со своими правилами. И еще: рогалики — это больше песочница. ИЛ, даже, если она паззловая, в большинстве случаев сюжетноориентирована. Если ты хочешь дать игроку полную свободу может просто посоветовать ему какой-нибудь Dungeon AI? Кстати, можно пофантазировать, что в будущем появится гибрид традиционной ИЛ и нейросети, которая возьмёт на себя функции «дорисовки» игрового мира. Если же еще продолжить развивать эту мысль, то в перспективе можно вообще отказаться от объектной модели мира, просто описывая сюжет будущей игры. Автор возьмет на себя роль режиссёра, а движок — кинооператора.

Так или иначе, пока что остается писать свои «велосипеды» или пользоваться существующими библиотеками, моделирующими какие-то классы предметов, например, одежду. Однако авторы почему-то не стремятся массово использовать такие библиотеки. Вообще интересно, что существуют достаточно продвинутые системы написания игр на естественном языке типа Inform 7, но даже в них «из коробки» отсутствует пресловутая «реалистичная модель мира». Авторы, как и прежде, предпочитают использовать абстрактные классы типа «контейнера» или «сцены». А может большего и не нужно?

Дрейфующий. Весенняя штучка


«мне крышка…»

— такой оптимистичной фразой на русском языке начинается игра Adrift <Lost in the (Ros)Cosmos>, написанная Pinkunz на Spring Thing 2022*. Игра про советского (российского?) космонавта, как следует из названия, дрейфующего себе в космосе. И только от игрока будет зависеть сколько ему еще предстоит в нем дрейфовать, ибо запас кислорода не бесконечен. Как тебе такое, Илон Маск?

Игра весьма напоминает Судный день или даже Луну-9 Петра Косых (quantumcat ). Олдовая графика смотрится органично, а крохотный силуэт Бурана на фоне звезд выглядит трогательно. Есть некоторые неточности в употреблении русских слов и фамилий, но возможно это klukva. По заявлению автора — это только первая часть, и, возможно, в продолжении мы узнаем о роли Роскосмоса в этой истории.


* Ежегодный фестиваль игр в жанре интерактивной литературы. Проводится весной.

Parchmap

Parchmap — веб-интерпретатор Z-машины, похожий на parchment, но с дополнительным функционалом.

Ключевые особенности:

  • автоматическое составление карты
  • возможность оставлять заметки в комнатах
  • быстрое перемещение между локациями
  • автоматическое завершение ввода (подсказки)
  • навигация по стрелкам курсора (с shift-ом)



На данный момент поддерживаются только z-игры. В некоторых из них автонавигация и картографирование могут не работать.

Страница с обсуждением на intfiction.org

qSpider 0.12.0

Вышла новая версия плеера qSpider — 0.12.0

В этой версии добавлена desktop версия плеера для 3 основных платформ
Windows
MacOs
— Linux — deb пакет и AppImage формат

Основные изменения в desktop версии:
— возможность открыть qsp игру из папки (в отличии от web версии, где можно открыть только архив)
— открытие игры через drag-n-drop файла игры на окно плеера
— открытие игры через консоль (с помошью параметра --file)
— загрузка файла конфига из папки с игрой
— дополнительная секция в файле конфига для настройки окна desktop плеера
— автоматической обновление desktop плеера при выходе новой версии

Исправлены следующие баги:
— не поддерживался html в диалоге input
— в aero режиме убран лишний отступ при HIDE_SCROLL_ARROWS=1
— исправлен тег center для большего соответвия classic плееру

Настройка окна desktop плеера
В конфиг файле добавлена новая секция
[game.window]
width = 1280
height = 960
resizable = true
minWidth = 1024
minHeight = 768
width и height задают размер окна при старте игры, minWidth и minHeight дают возможность задать минимально возможные размеры при resize окна, а resizable параметр позмоляет запретить изменения размера в принципе (автоматически включается в aero редиме)

Запуск плеера из qgen
Из-за бага в используемой библиотеке сделать плеер напрямую совместимым с qgen не получилось, надеюсь в ближайшее время баг будет исправлен и тогда плеер можно будет просто выбрать в настройках qgen.
Пока же для запуска можно использовать простенький bat файл
SET QSPIDER=C:\Program Files\qSpider\qSpider.exe
SET DESTPATH=%~f1
start "" "%QSPIDER%" "--file=%DESTPATH%"
Меняем путь установки если он отличается от стандартного, сохраняем в виде .bat файла и потом выбираем этот файл в настройках qgen.

Английская IFWiki станет больше похожей на русскую

Английская IFWiki официально стала одним из проектов Фонда Технологий Интерактивной Литературы (IFTF).

IFWiki была основана в 2004 году Дэвидом Корнельсоном как энциклопедия истории, статей и удобный каталог ссылок на Usenet и личные блоги. Последние несколько лет сайт перестал быть основной базой для игр и обзоров, уступив IFDB. База интерактивной литературы IFDB – сейчас самый активный проект в западном сообществе, который недавно преодолел планку в 10 000 опубликованных обзоров на игры.
Читать дальше

Обзоры Контигр-2021, часть 2

«Путешественники по мирам», Alestin

Очень хорошая игра на Twine. Играем за (сюрприз!) путешественницу по мирам, которая попадает в некий средневековый мир, чтобы устранить несправедливость, которая там случилась. В итоге это выливается в натуральное детективное расследование.

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

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

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

Обзоры Контигр-2021, часть 1

«Дождевые черви ностальгии», Мидория Имаева

Демку этой игры автор присылала на Паровозик, я даже писал на неё обзор. Теперь игра подросла (до 300 Мб), переехала с фурки на самодельную платформу на Java и, по идее, перестала быть демкой.

Первый запуск этой замечательной игры оставил меня в недоумении. Я создал персонажа, выбрал ему созвездие «Хобот» и честно распределил 5 очков умений. Пообщался в таверне с разными тёмными личностями, вышел на улицу и попытался найти оружейный магазин, чтобы хотя бы купить себе меч. Справедливо рассудив, что меч проще всего будет найти на столичном тракте (типа это главная улица в городе), я отправился туда и немедленно был убит одержимым гоблином. При этом игра тут же закрылась.

Выйдя из лёгкого ступора, я сделал ещё попытку. Создал персонажа, вышел на улицу из таверны. Встретил искателя приключений, который предложил мне поработать на него. Задача состояла в том, чтобы поймать капусту. Я осторожно согласился и немедленно был атакован кочаном капусты. Из схватки я вышел изрядно потрёпанным, но хотя бы живым. В награду получил кочан капусты. Попытался пойти куда-то ещё и был убит «волком-кабыздохом». Игра тут же схлопнулась снова.

В общем, я допускаю, что в игре есть глубокий сюжет и проработанные локации, но я до них не добрался. Потому что игра чрезвычайно недружественна к игроку, а любая попытка пойти хоть куда-нибудь приводит к смерти. «Некоторые локации намного опаснее других», предупреждает автор в файле readme.txt. По мне так неопасных локаций в игре просто нет.
Читать дальше

qSpider 0.11.0

Вышла новая версия плеера qSpider — 0.11.0
Демо — https://qspfoundation.github.io/qspider/

Новые фичи:
  • подержка игр в AeroQSP формате
  • поддержка style аттрибута в тегах
  • к основным элементам интерфейса добавлен data-qsp аттрибут (data-qsp=«main», data-qsp=«actions» и тд)
Исправлены следующие баги:
  • кнопки сохранения/загрузки теперь будут спрятаны, если в игре установлен nosave=1
  • исправлен align аттрибут в таблицах
  • исправлен вызов onactsel (в прошлых версиях поведение отличалось от классического плеера)
Поддержка игр в AeroQSP формате
Собственно этот функционал так и затянул выход новой версии. Я старался добиться, чтобы как можно больше AeroQSP игр можно было запускать без дополнительных изменений самой игры. Оказалось что HTML движок в флеш версии AeroQSP достаточно специфичен и не всегда совпадает с тем как работает браузер.

Вот список особенностей и отличий:
  • несколько игр использовали синтаксис, который поменялся в 5.8.0 (порядок аргументов в INSTR, ARRCOMP, ARRPOS) и в qSpider будут выдавать ошибку о несовпадении типов данных
  • в AeroQSP шрифты подключались в формате swf, использовать такой формат больше нет возможности, поэтому если игра использует нестандартные шрифты — их необходимо будет подключать через файл конфига в секции game.resources
  • в qSpider не поддерживаются эффекты pixels, h_blinds и v_blinds, остальные эффекты могут немного отличаться от того как работала флеш версия
  • не поддерживается переменная SCROLL_SPEED (хотя я вроде и не видел чтобы она использовалась хоть в одной игре)
  • обработка клика в флеше отличается от браузера — если на блоке нет обработчика то он не перехватывает клик даже если размещен поверх другого, в ряде игр это привело к тому что неспрятанные панельки (пустые и не видимые) в qSpider блокируют клики по линкам под ними. Пример — игра Новогодние сказки где кнопка Играть почти полностью перекрыта пустой на этот момент панелькой действий. Лечится небольшими изменениями игры — отключением неиспользуемых панелей.
  • в флеше тег center внутри таблиц растягивает таблицу на всю ширину, при этом еще размеры ячеек без явно указанной ширины в этом случае считаються не как в браузере, чаще всего заметно в действиях — для форматирования по умолчанию используется таблица, и если в названии действия использовать тег center, то в флеш версии текст будет по середине панели, а в qSpider — нет. Лечиться добавлением width=100% в такую таблицу. Я не смог сделать это на уровне плеера поскольку в ряде игр это ломало отображение.

Пример подключения
Для подключения AeroQSP игры через конфиг необходимо в основной секции добавить mode = «aero», и если используеться размер игры отличающийся от дефолтного 800х600 — добавить секцию с размерами

[[game]]
id = "c2cb4b5b-6a1c-482e-bb47-9ef207fb0dcd"
title = "Чашка кофе"
mode = "aero"
file = "aero_coffee.aqsp"

[game.aero]
width = 504
height = 680
При этом можно использовать как aqsp архив, так и распаковать его и прописать ссылку на qsp файл в папке.

ВАЖНОЕ ЗАМЕЧАНИЕ:
Я не собираюсь развивать и поддерживать (кроме багфиксов) формат AeroQSP, поэтому не советую начинать новые игры с его использованием. В планах добавить в qspider возможность упавления темой игры, но пока конкретной даты нет.

Новый онлайн-хостинг игр - Borogove.io

Juhana Leinonen открыла новый хостинг для веб-интерактивной литературы Borogove.io. Любой с аккаунтом Google может разместить там игру на Z-машине, Glulx, TADS 2-3, Hugo, Dialog, Texture, Ink, самописном HTML или одностраничном Twine (больше одного файла заливать нельзя, картинки должны быть встроены в HTML). Игры могут быть опубликованы для всех игроков или только по секретным ссылкам.
Читать дальше

Список игр достойных ознакомления (не ифня)

Список игр, которые произвели на меня впечатление, и поэтому я считаю их достойными ознакомления.
Возможно, многих игр в этом списке не будет: это потому, что я либо не играла в них, либо не посчитала достаточно запоминающимися. Бывают игры вроде отлично вылизанные, но не цепляют и не вызывают какого-то внутреннего отклика. Также в серии игр бывает сложно выделить лучшую часть, поэтому я беру особо приглянувшуюся мне. Список отсортирован по воспоминаниям, а не по уровню приязни. Я упоминаю игры, которые меня чем-то зацепили. Поскольку это не реклама, впечатления об играх весьма краткие)
P.S.
С учётом того, что у меня старое железо и многие игры на нём просто не пойдут, я не добавляю их в список, хотя они могли бы быть весьма достойны его.
Пишите свой список достойных игр в комментариях.

    Первая часть
  1. Marc Eckō's Getting Up: Contents Under Pressure
  2. Симулятор граффитиста) По сути, уникален, и сюжет (ну типичный про революцию) и геймплей (процесс рисования граффити), ну и музыка доставляет. Такого больше нет.
  3. Fable 1-3
  4. Вся серия Fable. Классическая рпг, с кастомизацией гг, квестами и прочим. Даже не знаю, что конкретно отметить, все части серии имеют свои плюсы, и вообще всё замечательно.
  5. Little Misfortune
  6. Трогательная и красивая квестовая история. Не такая мрачная как Fran Bow (предыдущая игра студии), но не менее цепляющая.
  7. Heroes of might and magic 3
  8. Классика. Нужны ли какие-то объяснения?
  9. Heroes of might and magic 5
  10. Имхо. Лучшая часть серии. Доработанная система прокачки героя и красивая картинка. С учётом дополнений вообще идеальна.
  11. Stardew valley
  12. Приятная игра для релакса и медитации.
  13. Life is strange
  14. Первая часть и Before the Storm. Красивая и трогательная интерактивная история. Заставила меня плакать. Очень душевно.
  15. GTA 3, Vice City и San Andreas
  16. Тоже классика. Так как последующие версии у меня не запустились, рекомендую эти.
  17. The Walking Dead
  18. Вся серия — классика интерактивных историй/кино. Трагедия, впечатления, квест, экшен и т.д. Всё сбалансированно.
  19. The Wolf Among Us
    Tales from the Borderlands
    Batman: The telltale series
  20. Вообще, пожалуй, все игры Telltale Games достойны ознакомления, но эти особенно яркие, запомнились мне. Первая — за счёт детективной составляющей. Вторая — юмор и мир. Третья — классическая супергеройская история для поклонников DC.
  21. Serious Sam 2
  22. Несмотря на мультяшность, считаю, что это лучшая игра серии по балансу серьёзности и юмора.
  23. Dishonored 1,2
  24. Лучший stealth-action. Вторая часть чуть слабее, но тоже на уровне. Антураж, мир, геймплей — всё на 5 с плюсом.
  25. Warcraft 3
  26. Нужны ли какие-то пояснения? Классика стратегий.
  27. Remember Me
  28. Трогательная семейная история в обёртке экшена и файтинга. Особо интересны (и геймплейно, и в качестве идей для разработки) отдельные квесты с перемоткой времени.
  29. Deus Ex: Human Revolution
  30. Классическая киберпанк-рпг. Имхо лучшая в серии.
  31. Vampire: The Masquerade – Bloodlines
  32. Очень крутая рпг, несмотря на баги. Куча ветвлений и различное развитие персонажа.
  33. Hitman: Absolution
    Hitman: Blood Money
  34. Для любителей убийств) Тоже классика stealth и action.
  35. Thief (2014)
  36. Не знаю почему, но из серии зацепила именно эта игра. Да, старые игры, может быть, лучше, но тут сошлись картинка, сюжет, геймплей. И для меня эта версия оптимальна.
  37. Unreal tournament 3
  38. Классика стрелялок.
  39. Blood Bowl 2
  40. Спортивная тактика и юмор.
  41. Pyre
  42. Трогательная визуальная новелла с необычным миром, картинкой и геймплеем в стиле американского футбола.
  43. Age of Empires 2
  44. Классика исторических стратегий.
  45. Rise of nations
  46. Аналогично.
  47. Endless Legend
  48. Лучшая альтернатива серии Civilization. Красивая картинка и нелинейное развитие.
  49. Civilization 3
    Civilization 5
  50. Нужны ли объяснения? Пятая, считаю, лучшая по сбалансированности картинки и геймплея.
  51. Empire: Total War
  52. Сражения и развитие государства. Лучшая игра в серии в плане глобальности.
  53. Black and White 2
  54. Симулятор бога. Такого больше нет.
  55. The Binding of Isaac
  56. Рогалик. Приятный, трогательный, надоедливый, что тут ещё сказать?
  57. Crusader kings 3
  58. Симулятор династии правителей.
  59. Prince of persia
  60. Классическая серия. Лучшая — The two thrones. Кровавая — Warrior Within. Сказочная — The Sands of Time.
  61. Overlord 1,2
  62. Симулятор властелина тьмы. За одно это достойна ознакомления.
  63. What Remains of Edith Finch
  64. Трогательная история — симулятор ходьбы.
  65. Firewatch
  66. Аналогично.
  67. Home behind
  68. Интересная концепция рогалика. Плюс трогательная история.
  69. This war of mine
  70. Стиль и сюжет. И процесс выживания.
  71. Frostpunk
  72. Интересная выживалка в вечной мерзлоте. К сожалению, одноразовая. Так как после прохождения все ветвления вариантов развития становятся достаточно очевидными и скучными.
  73. My lovely daughter
  74. Внка. Симулятор создания дочери? Визуальный стиль и сюжет.
  75. Saints row 3,4
  76. Сломанная GTA. За счёт этого намного лучше её.
  77. Sleeping Dogs
  78. Азиатское GTA. Очень крутые рукопашные бои.
  79. Bully
  80. GTA на минималках — в школе.
  81. The Banner saga 1,2,3
  82. Красочная тактика в скандинавском сеттинге.
  83. Red alert 3
  84. Красивая картинка и юмор в классической стратегии.
  85. Starcraft 2
  86. Более красивая, чем первая часть. Но тоже классика.
  87. Faster than light
  88. Идеальный рогалик про космос.
  89. Darkest Dungeon
  90. Жёсткий рогалик и красивый визуальный стиль.
  91. The council
  92. Интересная альтернативно-историческая текстовая интерактивная квестовая игра.
  93. Beholder 1,2
  94. Вторая часть чуть хуже. Но всё равно — тоталитаризм, трагедия и судьба маленького человека в бездушном мире. Симулятор чиновника.
  95. Papers, please
  96. Аналогично. Но на микроуровне.
  97. World of Goo
  98. Интересная головоломка-квест.
  99. This is the police 1,2
  100. Прекрасный рогалик? Вторая часть зациклена на тактических боях, но всё равно интересна.
  101. Republique
  102. Тоталитаризм и stealth с квестами. Замечательно.
  103. Beyond Good and Evil
  104. Старейшая экшен-рпг. Прекрасная.
  105. Psychonauts 1,2
  106. Безумная история о приключениях юного психонавта. Аркада. Таких миров больше нет.
  107. The Dark Pictures Anthology
  108. Не люблю ужасы. Но данная серия весьма интересная в плане интерактивной истории.
  109. Moon hunters
  110. Прекрасный рогалик, несмотря на визуальный стиль.
  111. The curious expedition
  112. Интересный взгляд на рогалик, путешествия и исследования.
  113. Superhot
  114. Лучшая стрелялка. Жаль, короткая.
  115. Heavy rain
  116. Классика интерактивного кино и квеста.
  117. Fahrenheit
  118. Аналогично, несмотря на слегка безумный сюжет.
  119. Wildermyth
  120. Интересный тактический рогалик.
  121. Hand of fate 1,2
  122. Карточный экшен-рогалик.
  123. Sang-Froid: Tales of Werewolves
  124. Канадский tower defense. Оригинально и интересно.
  125. Yes, your Grace
  126. Интерактивная литература такая, какой она должна быть. Несмотря на недостатки.
  127. Heroes of Annihilated Empires
  128. Лучшая смесь RPG и RTS. Жаль, не закончена.
  129. The Elder Scrolls V: Skyrim
  130. Тут можно спорить о конкретной части, но всё остальное в принципе впечатляет.
  131. The Guild 2
  132. Симулятор династии. Не такой глобальный, как Crusader Kings, но в некоторых аспектах более глубокий и интересный.
  133. King's bounty
  134. Альтернатива Героям. Красочный сказочный мир плюс рпг-стратегия. Возрождённая классика (с учётом последних версий).
    Вторая часть
  135. Renowned explorers
  136. Красочный взгляд на путешествия и исследования. Рогалик.
  137. Dead state
  138. Выживалка в зомби апокалипсисе. Строительство и управление базой. РПГ.
  139. The flame in the flood
  140. Выживалка. В чём-то оригинальная, несмотря на баги. Лучшее описание — песня Лозы «Плот».
  141. Prison architect
  142. Строительство ГУЛАГА мечты.
  143. Slay the spire
  144. Увлекательный карточный рогалик.
  145. Rimworld
  146. Строительство базы и выживание.
  147. Oxygen not included
  148. Аналогично, но картинка поинтереснее.
  149. Night in the woods
  150. Трогательная интерактивная история.
  151. Orwell 1,2
  152. Интересна сама концепция Большого Брата в текстовом исполнении.
  153. We happy few
  154. Выживалка в захваченной Англии. Визуальный стиль и идея наркотика по типу фильма Эквилибриум.
  155. Демиурги 1,2
  156. Карточная рпг — классика.
  157. Graveyard keeper
  158. Аналог Stardew Valley. Что лучше: атмосфера, сюжет, юмор и сеттинг. Что хуже: более нудная по гринду.
  159. Don't starve
  160. Приятная выживалка.
  161. Tyranny
  162. Изометрическая рпг с выборами.
  163. Dead cells
  164. Увлекательный рогалик и экшен-платформер.
  165. XCOM: Enemy Unknown
  166. Классическая тактика. Один из лучших представителей жанра.
  167. Human Resource Machine
  168. Обучение программированию.
  169. 7 Billion Humans
  170. Аналогично.
  171. While true: learn()
  172. Изучение нейросетей.
  173. Космические рейнджеры 2
  174. Вообще вся серия. Но вторая часть имхо оптимальная, даже без дополнений.
  175. The saboteur
  176. Париж, захваченный нацистами. За такое можно простить все остальные недостатки.
  177. Reighns
  178. Ифня, как она есть. Аналог Yes, Your Grace.
  179. Age of Wonders 3
  180. Альтернатива Героям.
  181. Тургор
  182. Мрачная игра про цвет. Такое просто надо увидеть.
  183. Мор. Утопия
  184. Мрачная интерактивная история. Такое тоже стоит увидеть.
  185. Механоиды 2
  186. Симулятор автономной боевой машины? Идея, геймплей и сюжет.
  187. Broken Age
  188. Классическая адвенчура от Тима Шейфера.
  189. Dreamfall: The Longest Journey
  190. Тоже классика. Сюжетное трогательное приключение.
  191. Zero Escape: Zero Time Dilemma
  192. Неплохая сюжетная серия головоломок и игр со смертью.
  193. Danganronpa: Trigger Happy Havoc
  194. Несмотря на некоторую нудноватость и затянутость, очень интересные убийства и расследования. В принципе в каждой игре серии есть свои плюсы и минусы.
  195. Party hard 1,2
  196. Когда ещё появится возможность за маньяка поубивать шумных тусовщиков?
  197. Ni no Kuni II: Revenant Kingdom
  198. Для поклонников jrpg.
  199. Ever 17: The Out of Infinity
  200. Классика визуальных новелл.