The Inquisitor и другие процедурно-генерируемые детища ProcJam

procjam.pngНа днях, дамы и господа, неожиданно обнаружил, что на родном гамине до сих пор не было упоминания такой занятной вещицы, как ProcJam, и решил прямо сейчас эту оплошность исправить. Если же на самом деле что-то такое и было, а я просто плохо искал, то каюсь, но поделать ничего уже нельзя — ибо к тому моменту, как я об этом узнаю, пост уже будет написан. Посему отбрасываем лишние сомнения и вперёд!

Что такое ProcJam? Это, как ни странно, джем, целиком и полностью строящийся на теме процедурной генерации, о чём как нельзя лучше говорит его слоган, гласящий «Make Something That Makes Something». Проводится он, насколько я знаю, с 2014 года на небезызвестном itch.io, где, собственно, можно отыскать любой из проектов, заявленных на конкурс:

ProcJam 2014 (139 заявок) ProcJam 2015 (108 заявок) ProcJam 2016 (179 заявок)

Ограничения на участие в джеме минимальны. Единственное, что обязательно должно иметься в каждом проекте — это процедурная генерация. В остальном наличествует полная свобода. Поэтому среди заявок можно отыскать и программы для генерации графики\звуков, и твиттер-ботов всех цветов и размеров, и даже бумажные игры, которые предлагается распечатать и протестировать в компании товарищей. Тем не менее, добрая половина проектов представляет собой игры для наших с вами электронно-вычислительных машин — или не-игры, если уж быть совсем точным и учитывать тот факт, что многие из являются чистыми экспериментами в попытке создать что-то эдакое, о чём сам автор имел лишь смутное представление в момент своего творческого порыва.

Сам я обнаружил сей джем, кажется, в начале 2015 года и с тех пор опробовал приличное количество вещей, сделанных на него во славу сатане и процедурной генерации. Самой долгоиграющей из них оказалась та, название которой я вынес в заголовок поста — именно о ней, в первую очередь, и пойдёт наш рассказ.
[И да, круглые скриншоты являются ссылками на полноразмерные версии самих себя в нормальном разрешении]

The Inquisitor: A Procedural Murder Mystery

[страница игры на itch.io]

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

~ кто из подозреваемых убил жертву
~ каким предметом было совершено убийство
~ каков был мотив

Какие же возможности предлагает нам игра для решения этих вопросов?

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

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

б) Когда умерла жертва? Взглянув на труп, следователь сразу же очерчивает примерный период времени, в который произошло убийство. Эта информация помещается в правый нижний угол экрана и в дальнейшем поможет сопоставить действия подозреваемых с действиями предполагаемого убийцы.

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

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

Замок, как все уже наверняка догадались, генерируется случайным образом и представляет собой набор примитивных квадратных комнат (которые, впрочем, несмотря на это, частенько могут называться залами и даже садами), в которых можно найти людей, предметы, лежащие на полу, и различные контейнеры, вроде бочек, сундуков, шкафов и стоек с оружием. Копаясь в этих самых контейнерах, игрок находит объекты, обычно относящиеся к одной из небольшого количества категорий: оружие, ткань, одежда, жидкости, записки. Предметы эти, в большинстве своём, не представляют для сыщика никакого интереса, за исключением двух случаев: если, судя по описанию, предметом недавно пользовались, и если на предмете имеются пятна крови, что автоматически означает, что он побывал на месте преступления. Конечно, преступники далеко не всегда бывают настолько глупы, чтобы безрассудно разбрасываться окровавленным оружием, и частенько протирают его тряпочкой. Это значит, что в таких случаях орудием убийства может послужить любое оружие, которое недавно трогали, а где-то (может даже, в кармане убийцы) лежит кровавый лоскут ткани. Как бы то ни было, ни одно расследование не обойдется без допроса подозреваемых.

В разговорах с местным людом у игрока всегда есть четыре варианта действий:

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

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

в) Игрок выпытывает, не видел ли собеседник чего-то очень подозрительного. Если ответ положительный, то полученная информация обычно разбивается на две категории: «такой-то персонаж взял какой-то предмет из такой-то комнаты в такое-то время» и «такой-то персонаж спрятал какой-то предмет в такой-то комнате в такое-то время». Эти свидетельства зачастую помогают понять, какое из множества облапанных орудий убийства было использовано по назначению. Правда, нужно оговориться и сказать, что люди в этой игре вообще очень любят трогать разные предметы, брать их себе, переносить из комнаты в комнату и даже ронять где-нибудь по пути — поэтому далеко не все подозрительные действия связаны с убийством.

г) Что бы это было за расследование, если б подозреваемых нельзя было осмотреть на предмет чего-то подозрительного в их карманах? Четвёртое действие на экране диалога позволит игроку взглянуть на инвентарь собеседника и при необходимости забрать оттуда нужный объект. Баланса ради, на каждое дело игроку выдаётся лишь три «жетона» на обыск. Когда их количество опускается до нуля, игра сообщает, что подозреваемые перестали доверять сыщику и больше не позволят в наглую щупать их благородные телеса в поисках улик.

Очевидно предположить, что в случае успешного расследования, все вышеуказанные действия приводят нашего сыщика к правильным ответам на три главных пункта, перечисленных в начале. Когда игрок готов обвинить одного из подозреваемых, он в любой момент и в любом месте нажимает специальную кнопочку на клавиатуре (работает только тогда, когда в инвентаре есть хотя бы одно потенциальное орудие убийства) и выдаёт свои умозаключения игре, дабы та оценила, насколько сильно он провалился в своих попытках сойти за Шерлока Холмса. По той причине, что дела полностью генерируются, разработчику так и не удалось полностью сбалансировать сложность того, что выдаёт игра. Не удивляйтесь, если однажды убийцей окажется клинический идиот, сидящий на полу рядом с окровавленным молотом в центре комнаты, которого с этим самым молотом в руках видел весь замок, пока он бродил по местным садам в поисках своей жертвы, постоянно бормоча себе под нос, что должен отомстить ей за трагедию, случившуюся с его семьёй.

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

В один из последних моих забегов я столкнулся с тем, что одна из дверей спальни, в которой крайне жестоким образом порезали местного лорда, вела в погреб, никак не связанный с другими помещениями. В этом погребе стояли несколько бочек вина и стойки с оружием, на одной из которых — о, ужас — находился облапанный нож. Рядышком приютился пьяный мужик, который на мой вопрос об алиби заявил, что всё это время не выходил из этого погреба и не видел никого и ничего подозрительного. Заподозрив неладное, я узнал, что никто из других гостей ни разу не входил в этот погреб, а значит, тот нож побывал руках именно пьяного мужика, который впоследствии положил его на место. Дальше больше: двое из опрошенных признались, что этот пьяный мужик жутко завидовал жертве из-за его богатства, что вполне могло толкнуть его на столь чудовищный поступок. И знаете что? Нет, убийцей был не он. Небольшое несоответствие в перемещении некоторых персонажей привело меня к тому, что почтенная дама, дышащая свежим воздухом в одном из трёх садов замка, скрыла факт того, что по какой-то причине на пару минут забежала в Небесный Зал по пути к саду. Однако другая подозреваемая, которая в то время ошивалась там после диалога с подругой, видела, как она припрятала что-то в один из контейнеров. Что же я там нашёл? В одном из сундуков лежал чистый, но облапанный меч, а в кармане почтенной дамы — грязная тряпка, которой она умело стёрла с него кровь. Правда, тогда я так и не смог понять её мотивы. Её вражда с жертвой не упоминалась ни в диалогах с гостями, ни в найденных записках. Скорее всего, нужное мне письмо лежало в инвентаре одного из персонажей, которого я не догадался обыскать. Что касается поддатого мужика, то... чёрт его знает, зачем он брал тот нож. Возможно, в пьяном угаре он фехтовал им с каким-нибудь воображаемым противником или — что ещё более вероятно — резал им закуски, которые притащил с собой в подвал. Всякое бывает, знаете ли.

SPIDER POLICE

[страница игры на itch.io]

Вы украли ценный МЕШОК С ЯЙЦАМИ из дома на ХИТИНОВОЙ spider_police__done_.pngУЛИЦЕ, что в паучьем районе КРЭНБЕРРИ-ХАЙТС. На обратном пути вы случайно активировали СИГНАЛИЗАЦИЮ, привлекшую внимание ПАУЧЬЕЙ ПОЛИЦИИ. ПАУЧЬЯ ПОЛИЦИЯ боится вас сильнее, чем вы боитесь её! Она НЕ станет задерживать вас напрямую. Вместо этого её сотрудники постараются заблокировать ваши пути отступления, ПЛЕТЯ ТИТАНОВУЮ ПАУТИНУ. Вам НЕ удастся порвать титановую паутину. Не тратьте время впустую!

Пусть скриншоты не обманут читателя, увидевшего на них ASCII-графику в духе классических рогаликов и творений с 7DRL. Сие есть не вдумчивая тактика, но самый настоящий top-down раннер в реальном времени и протагонистом, который даже не способен остановиться — лишь бежать в выбранную игроком сторону. Да и как тут, скажите на милость, не бежать, когда у тебя на хвосте ПАУЧЬЯ ПОЛИЦИЯ?

В побеге игроку помогают не только быстрые ноги, но и полицейский сканер, который показывает все доступные ему маршруты красными линиями, петляющими средь деревьев, зданий и паутинных блокад. Наша цель — нестись, как угорелый, в правую сторону экрана, хотя никто не запрещает передвигаться вверх, вниз и даже назад, если того требует сложившаяся ситуация. Есть ли у игры конец, честно говоря, не знаю до сих пор, потому что даже мой самый длительный забег закончился арестом до того, как я увидел какую-либо смену локаций или финиш. Поэтому есть приличная вероятность, что раннер сей очень даже бесконечный и будет продолжать генерировать город до тех пор, пока игрок не сдастся на милость ПАУЧЬЕЙ ПОЛИЦИИ.

Catpcha

[страница игры на itch.io]

catpcha__done_.pngС тех пор как пресловутый Mew-Genics был на неопределённый срок отложен Макмилленом в дальний ящик, наверняка нашлась хотя бы пара людей, тяжело вздохнувших от невозможности удовлетворить свою тягу к скрещиванию кошек. Именно для этих людей была создана Catpcha — простой, но милый симулятор кошачьей селекции, который ставит перед игроком задачи, заключающиеся в выращивании котеек с определённым набором генов.

Изначально в наличии у игрока имеются: сгенерированный кот (1 шт.), сгенерированная кошка (1 шт.), кошачья дверца, ведущая на улицу, и... мусорное ведро, куда будут отправляться негодные особи. Жестоко, но неизбежно, учитывая, что в нашей лаборатории есть место лишь для пяти подопытных. При наведении курсора мыши на любое животное игра продемонстрирует таблицу, в которую занесены его внешние признаки (10 шт.), гены, за них отвечающие, и пары аллелей, дающие понять, из каких именно вариантов будет выбираться каждый признак котёнка при скрещивании его родителей. Кроме того, в верхней части экрана указана текущая задача, типа «вырастить кошку с генами SC5 и EA2».

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

Dreamer of Electric Sheep

[страница игры на itch.io]

Процедурное текстовое приключение с ручным вводом команд, dreamer__done_.pngработающее на основе нейросети ConceptNet, построенной, как следует из названия, из различных концепций и связей между ними. Мир игры представляет собой набор всевозможных объектов, к каждому из которых можно применить любое из доступных действий: осмотреться, посмотреть на что-либо, заглянуть внутрь, войти, выйти, идти на север / юг / запад / восток, ехать на транспорте, брать, кидать, давать, перемещать с места на место и даже создавать. Бродя по бесконечному пространству фантасмагорических снов, игрок волен делать всё, что взбредёт ему в голову, включая рекурсивные путешествия внутри самого себя, помещение в инвентарь целых галактик «на чёрный день» и обнаружение странных форм жизни в таких местах, в которых адекватный человек никогда бы в жизни не додумался искать оные. Более подробно об этой весьма уникальной вещи я рассказал в этом комментарии к другому посту, поэтому позволю заинтересованным читателям пройти по ссылке вместо того, чтобы ещё сильнее растягивать объём данной статьи.

...и многое-многое другое

Учитывая то, что за последние три года участники ProcJam разродились 426-ю проектами самых разных масштабов и качества, каждый, кто пожелает побродить по соответствующим разделам itch.io, наверняка сможет отыскать пару любопытных штук чисто для себя. Кто знает, может, кому-то приглянется симулятор торговли путём обмена товаров подозрительными личностями в плащах (Négoce), кто-то с удовольствием побродит по чёрно-белому лесу в компании его таинственных обитателей (Peregrin), кто-то, будучи призраком, соберёт огромный отряд приключенцев, дабы зачистить подземелье от кишащих к нём тварей (Key Geist), кто-то попробует себя в прохождении процедурного шмапа о зачистке галактики от кораблей-мутантов (The.Green.Legion), кто-то заценит бесконечную библиотеку, вдохновлённую творчеством Борхеса (Library of Blabber), а кто-то окончательно сойдёт с ума, любуясь продуктами генерации озёр, островов, солнечных систем, лесов, жутких морских обитателей, кусочков дерьма, фасадов зданий и множества других интересных (и не очень) вещей. Да славится процедурно-генерируемое инди, самое бессмысленное и беспощадное инди в мире!