«Врата Штейна» и что такое цундэрэ

«Врата Штейна» это не совсем обычная визуальная новелла. Основная фишка игры — это нечёткая ветвистость: в любой удобный момент герой может вытащить из кармана мобильник, чтобы кому-то позвонить или написать сообщение. Здесь нет обычных пауз для выбора действий, и даже ключевые развилки можно проворонить, если всё время жать на кнопку «далее».

Сразу скажу, что, по-моему, игра не тянет на четвёртое место всех времён и народов (в рейтинге VNDB, между «Литературный клуб 'Тук-Тук'» (Doki Doki Literature Club) и «Девушки с ограниченными возможностями» (Katawa Shoujo)), но всё-таки это качественная работа, достаточно интересная для игры и разбора.

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

После краткой вставки – история про молодых и шутливых друзей, которые пошли ломать систему и наломали дров. И теперь они спорят, насколько дрова — моэ.

Читать дальше

Три поросёнка и поход за стройматериалом

Сказки это замечательно. А для интерактивной литературы — настоящий клондайк и находка. Сюжет какой-нибудь «Курочки Рябы» прекрасно ложится на механику классической парсерной головоломки. Ведь чтобы разбить яйцо Деду придётся разыскать и собрать вместе Бабку, Внучку и Жучку у которых, похоже, какие-то тёрки друг с другом. По ходу действия, пенсионер узнает, что не всё так просто как говорят по телевизору; яйцо на самом деле заколдованное, а чтобы хакнуть чары нужно незаметно проникнуть в логово Бабы Яги. И никто кроме Мышки этого сделать почему-то не может…

Ладно, я тут немного увлёкся, но в общем, вы уловили мысль. К сожалению, немногие авторы берутся «интерактивить» этот жанр. Автор игры «Три поросёнка: Наф-Наф и Серый волк» [1] — из тех немногих, кто взялся и у кого это даже неплохо получилось.
Читать дальше

qSpider 0.13.0

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

Новые фичи:
  • msg и input больше не закрываются по клику вне модалки, улучшена поддержка клавиатуры — закрытие по Esc, кнопка в msg теперь фокусируется при открытию (соответственно нажатие пробела или Enter аналогично клику на кнопку)
  • в браузерную версию добавлена возможность открытия файла с списком игр или отдельной игры через URL — например https://qspfoundation.github.io/qspider/?config=https://qspfoundation.github.io/qspider/game/game.cfg загрузит файл конфига, а https://qspfoundation.github.io/qspider/?game=https://qspfoundation.github.io/qspider/game/skazka/skazka.qsp — то есть теперь можно просто выложить файл игры на какой-то сервер и запускать через qspfoundation.github.io/qspider, здесь пока есть ограничение — на сервере должна быть включена поддержка CORS (я занимаюсь возможностью обойти это ограничение)
  • добавлена поддержка запуска игры в текстовом формате qsp — для этого файл должен быть с расширением `.qsps`, поддерживаются кодировки utf-8 и utf-16le (qgen экспортирует в этой кодировке), но я рекомендую utf-8 поскольку файл будет значительно меньше по сравнению с utf-16le
  • для запуска плеера из qgen больше не нужен дополнительный bat файл
  • в десктоп плеере теперь доступна панель разработчика как в обычном браузере

Исправлены следующие баги:
  • сепаратор в меню выводился отдельным пунктом меню
  • исправлена поддержка 4-го недокументированного параметра в rgb функции отвечающего за альфа канал (прозрачность)
  • исправлен первый запуск (иногда при запуске из qgen не открывалась игра)
  • исправлена поддержка html — теперь все аттрибуты тегов должны сохраняться (раньше большая часть терялась при отрисовке)
  • исправлено отображение названия игры в toolbar — раньше длинное название ломало отображение
  • исправлен креш плеера при использование ряда тегов

В процессе работы часть кода была вынесена в отдельные npm пакеты, доступные без плеера
@qsp/converters — в пакете содержатся функции для конвертации из текстового формата qsp в бинарный и обратно
@qsp/cli — консольная утилита для конвертации аналогичная txt2gam (требует наличия усnановленой NodeJS, но может запускаться на linux и mac)
@qsp/wasm-engine — ядро QSP собранное в WebAssembly и JavaScript обвязка для запуска игр, пакет специально собран таким образом что его можно запускать как в браузере так на NodeJS сервере

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

Прочитал тут статью 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. По мне так неопасных локаций в игре просто нет.
Читать дальше