All streams
Search
Write a publication
Pull to refresh
6
0
Send message

Интересно, спасибо! Идея и в самом деле схожа.

Интересно было бы почитать про выработанную грамматику и типы приписываемых к вершинам и рёбрам семантических признаков

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

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

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

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

(комментарий удалён, случайно ответил не в ту ветку)

Благодарю за интерес к статье!

Подскажите, а в вашем варианте сам граф (до размещения) случайный, или же задан целиком рукотворно?

Расположение графа на плоскости я делаю через сильно модифицированный WFC

Вот это очень интересно! Такого подхода я ещё не встречал.

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

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

Не думали, что такая модель противоречит типичной игровой ситуации как "монстр в комнате с ключом"?

Думаю, не противоречит. Разрешения ситуации тут два, можно выбрать любой или оба сразу:

  1. У комнаты (узла) не обязательно только один тэг, их может быть сколько угодно. Правила подстановки могут поставить сразу же не только ключ, но и какого-нибудь охраняющего его босса в ту же комнату - достаточно выставить два тэга в рамках одного правила;

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

Пункт 1 уже есть в моём варианте, но это осталось за рамками статьи, на примере одного тэга на комнату демонстрация получается нагляднее.

Больной для анексплоред вопрос с тем, что делать если игрок очутился за запертой дверью. Считаю в оригинальной игре это решено довольно топорно

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

Мне кажется, можно избежать такой проблемы, если запретить правилам взаимодействовать с узлами графа, где есть подобные "временны́е" тэги.

Нет ли идеи отказаться от планарности совсем? Сделать комнаты по типу Биндинг Оф Исаак, но все равно выигрывать в интересе за счет продвинутой генерации игровых ситуаций?

Возможно, у нас с вами разное понимание слова "планарность" в этом контексте. В терминах графов, в айзеке все уровни без исключения (ну... по крайней мере все те, которые я сам видел) планарны - сам факт того, что у вас в игре рисуется полная мини-карта в 2Д, это подразумевает. В рамках статьи рёбра графа обозначают не комнаты, а переходы между ними. В терминах айзека стрелка на графе - дверь, а не комната. А двери там нигде и никогда ведь не пересекаются.

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

Если же вы имеете в виду не планарность, а непрерывность уровня (то есть, все комнаты существуют как бы одновременно, без перехода наподобие загрузки между ними), то да, она в общем-то не обязательна. Моё субъективное мнение в том, что с непрерывными уровнями интереснее (те же Unexplored или Dead Cells выдают из-за этого более интересные для меня уровни, чем айзек).

чтобы оправдать <...> непрерывность уровня, необходимо её
использовать в игровом процессе больше чем "ну просто чел идет и между
комнатами нет черного экрана".

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

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

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

По поводу бэктрекинга: возможно, это моя проблема с формулировкой. Недостатком является трудность с "дозированием" бэктрекинга в рамках древовидных генераторов, а не его наличие как таковое. Плюс, бэктрекинг бэктрекингу рознь - ведь есть разница между шорткатом а-ля Dark Souls и банальным хождением из тупика по в точности тому же маршруту, по которому мы пришли в этот тупик. "Обоснованное возвращение" в рамках циклической генерации более обоснованно, чем в древовидных уровнях - ведь у вас появляется возможность вернуться в уже посещённую комнату более чем одним маршрутом.

...если эти правила не могут пересекаться друг с другом, то мне кажется,
шаблон быстро станет заметен. Например, в вашем примере, игрок один раз
увидит, что после тревоги спящий монстр, второй раз, а на третий он уже в курсе.
- в том и суть метода подстановки, что правила многократно применимы, в том числе к уже изменённым частям карты. Другими словами, подстановка на графах используется именно ради того, чтобы множество как можно более простых (в терминах левелдизайна) правил могли пересекаться друг с другом. В вашем примере, после комнаты-тревоги, но до спящего монстра, вполне может быть вставлен подграф с поиском ключа или вообще какая-нибудь развилка. Если правил достаточно много, вариантов их сочетаний будет столько, что вряд ли игрок привыкнет к ним всем. Примерно это я назвал "эмерджентным левелдизайном" за неимением лучшего термина.

Хочу отметить, что в упомянутых фильмах очень не хватает «Нирваны» 1997 года. Этот фильм, возможно, самый «киберпанковый» из всех когда-либо выходивших — как минимум, в плане эстетики точно. Ещё в нём же поднимается проблема возможной иллюзорности реальности в свете возможностей компьютерной симуляции — за два года до «матрицы», пусть и не так глубоко. Рекомендую фильм каждому, кому нравится эстетика и атмосфера киберпанка, это там прямо-таки сочится с экрана, несмотря на общую дешевизну картины.

По поводу киберпанка как эстетики: вспомнил, как мой побывавший в Гонконге товарищ рассказывал про тамошних попрошаек, которые просили милостыню, протягивая терминалы бесконтактной оплаты. Если это правда — то это самое «киберпанковое» в реальной жизни, о чём я вообще слышал. Прямо-таки киберпанк, который мы заслужили.
Я бы не стал говорить категорически — верный или нет. Мне кажется, по меньшей мере, какое-то рациональное зерно в этом посыле есть.
Как максимум: пока что, на данный момент, я не вижу никаких деталей нашего социального мироустройства, которые делают описанное в киберпанке разложение социальных и моральных институтов невозможным. Быть может, всё ещё впереди. Подчеркну, что не считаю это очень вероятным — скорее, считаю «не таким уж невероятным», нужно разве что сделать скидку за общую гротескность, преувеличенность описываемого в жанре — всё-таки вряд ли в обозримом будущем трущобы и подворотни будут заполнены кибербомжами.
Как минимум: этот посыл не лишён смысла в качестве именно что предупреждения — в том же смысле, в каком были предупреждением описанные в «1984», «дивном новом мире» и «451 градусах по Фаренгейту» варианты будущего. Я бы не сказал, что описываемые в киберпанк-произведениях причины того, как мы дошли до жизни такой, менее правдоподобны, чем любые антиутопии (мне кажется, даже более правдоподобны, чем тот же 1984).

Если совсем без оценочных суждений о жанре: в целом, вы, конечно, можете сказать, что я натягиваю сову на глобус, но некоторые из деталей киберпанка уже начинают с разной степенью успеха воплощаться в наш мир. Если бы в те же 80-е любитель жанра мог прочесть некоторые из сегодняшних заголовков новостей, то думаю, он бы поверил, что в 2020 киберпанк уже наступил. Навскидку из подходящих статей вспоминаю, например, статью про американских фермеров, которым приходится обходить DRM в приобретённых ими тракторах. Или всё большее количество новостей о внедрении уличного наблюдения с системами распознавания лиц. Или любую статью об очередной электронной утечке персональных данных. Не удержусь, чтобы не процитировать Гибсона: «The future is already here – it's just not evenly distributed».

Подытоживая, я бы сказал, что жанр исчерпал себя в первую очередь потому, что высказал, в том же социальном ключе, уже всё, что было можно, дальше всё скатилось бы только в самоповтор. Собственно, потому и появился посткиберпанк: как более массовые произведения про кибергероев-борцов-с-системой, полностью лишённые изначального мрачного прогноза о судьбе человечества, так и произведения, где в тех же дистопично-технологических декорациях исследуются совершенно другие философские вопросы.
Если позволите мне немного поискать глубинного смысла…
На мой субъективный взгляд, киберпанк как жанр нельзя рассматривать вне эпохи, в которой он зародился.
А родился он среди засилья оптимистичной фантастики, где всё шикарно, люди покоряют космос и становятся сверхлюдями, наука и технологии всячески решают все наши проблемы, оптимистичный взгляд в будущее и всё такое. По сути, массовая культура в целом имела такой уклон в том или ином ключе.
И тут появляется жанр, который идёт против всей этой культурной системы. Жанр, который как бы вопрошает: с чего вы взяли, что в будущем всё будет хорошо? Допустим, у нас будут технологии лечения любых болезней, возможность летать в космос, делать из себя сверхлюдей. И что дальше? Киберпанк предложил свой ответ: а ничего не изменится. Проблемы людей — в людях, а не в недостатке технологий. И, что немаловажно, сами технологии там не демонизируются. По правде сказать, я не видел в классических произведениях киберпанка посылов в духе «это всё из-за технологий». Фактически, главный посыл киберпанка в том, что люди останутся такими же недалёкими, какими они всегда были, вопреки технологическому подъёму цивилизации. Я бы сформулировал это как один громкий крик «хватит выставлять технологии панацеей от социальных проблем!»
Брюс Стерлинг в своё время написал самый короткий киберпанк-рассказ в мире «Оставаться человеком стало слишком дорого.», и он высказывает, на мой взгляд, ту же самую мысль.
В то время такая мысль была очень свежа и резко отличалась от всей тогдашней фантастики. Это, на мой взгляд, и есть причина, по которой его считали контркультурным и, в своё время, необычным жанром. По сути, киберпанк сам по себе так же маргинален, как и его персонажи.
Все эти «лоу лайф хай тэк» и прочие лозунги — просто ярлыки, которые стали навешивать уже позже. Они лишены культурного контекста, в котором киберпанк появился. Между «Low life» и «High tech» очень не хватает подчёркнутого слова «вопреки», чтобы этот слоган стал ближе к изначальным идеям, которые породили жанр.
Я, разумеется, говорю только про «западный» киберпанк, в противовес «японскому», который немного про другое.
Обсудим?

Information

Rating
Does not participate
Registered
Activity