April 21, 2023

Ремейк данжей

Автор: @VinderX

люти гемор

Оглавление


Вступление

Да вы и сами знаете, о чём я буду говорить.

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

Я уважаю Тёму, как разработчика. Я же в конце концов и сам своего рода разработчик. И потому мне больно смотреть, как с #идейными тегами раз за разом ему преподносят тупые и нереализуемые предложения. Постоянно приходят красивые "улучшения", авторы которых никогда не задумываются о том, что их идеи хоть и звучат красиво, но на деле несут больше вреда, чем пользы. Каюсь, я тоже страдал такой хернёй.

Почему бы наконец не подумать о том, чего же данжам не хватает на самом деле?

Чего стоит просто обдумать свою идею?

Сразу вспоминаю свою обидную историю. Я в игру вернулся около месяца назад. И как пришел, так сразу выяснил, что на моём уровне без хщ в пвп играется только в роли пассивного отгребателя пощёчин. Чо делать? Пошёл фармить гримуар.

Я фармил его недели две-три, и за это время успел потратить в Хогвартсе 12 ключей. Кто-то скажет - мало. И я бы тогда ответил - идите лесом. Это стоило мне кучи денег, слитых на ауке, и кучу потраченного времени. А что казалось самым обидным - Гримуар я все таки выбил. Сразу после того, как купил его за 20к. Еще и ключ дропнулся с первого мага.

Казалось бы, к 12 походу я возненавидел Хогвартс всей душой. Но нет. Я был готов сходить в него еще столько же раз. Я вижу, что вся моя ненависть направленна не к данжу. Всегда в том был виноват либо дроп с сундука, либо больной процесс получения ключа.

Вспоминая свои походы, могу отметить, что даже к сотому прохождению данж не надоедает.

А всё почему? Да потому что он на самом деле нескучный.

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

Если мы хотим улучшить данж, нам следует помнить о нескольких нетрудных правилах:

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

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

Конечно в плане понимания баланса я могу быть слеповат, так что учитывайте.

И сразу предупреждаю, статья будет о-о-очень длинная.


1 Основные механики

1.1 Генерация и перемещение

пример данжа

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

Но ему всё равно есть, куда расти.

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

схемы 1 и 2 соответственно

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

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

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

На самом деле, алгоритм достаточно хорош. Похлопаю Тёме. В основном он хорош тем, что он прост и принципиально не допускает ошибок.

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

1.2 Узловое перемещение

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

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

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

Суммируя, можно сказать следующее: будем идти, пока не встретим что-нибудь на пути

то, как реализовано сейчас (плохо)
то, как можно было бы реализовать (хорошо)

Конечно же, такой подход имеет несколько ньюансов.

Первый - такой способ перемещения выглядит быстрее. Да не проблема! Пусть длительность переходов зависит от количества пройденных клеток.

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

Второй - получается, что мы должны видеть, что происходит впереди. Отсюда вытекает следующая идея.

1.3 Освещение путей

пример освещения пути. Пример актуален только в рамках осматриваемого коридора

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

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

Как вариант, можно освещать не всю дорогу, а только участок до ближайшего глаза.


2 Контент данжа

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

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

2.1 🚧 Баррикады

пример работы баррикад

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

Взаимодействовать с баррикадой можно только находясь на соседней с ней клетке. Сквозь баррикаду нельзя пройти. Если рядом с игроком несколько баррикад, ломаться будут сразу все (игрок ломает их секретной техникой кунг-фу, подпрыгивая в воздух и снося всё вокруг)

Имеет свои эксклюзивные версии в некоторых данжах, например:

  • 🪸 - Бухта русалок
  • 🪨 - ТС, Оазис, Шахта кобольдов
  • ⛓ - Заброшенная тюрьма

2.2 ☠️ Враги

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

2.3 ▪️ Фейковая стена

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

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

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

2.4 🏮 Фонари

пример работы фонаря (пардон, сундук неправильно поставил)

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

2.5 🪧 Указатели

пример указателя (выглядит как табличка)

Указатели располагаются в тех местах, из которых можно идти в 3 или 4 направления сразу. Могут быть замещены любым другим объектом интереса.

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

2.6 🕸 Замедляющие коридоры

целых 3 подряд идущих замедляющих коридора

Перемещение по ним занимает 7,5 секунд за каждую клетку вместо 5.

Такие коридоры (имхо) не сильно замедлят прохождение данжа, зато немного его скрасят.

Имеют различные вариации в зависимости от данжей:

  • 🕸 - Шахта кобольдов, Логово троллей
  • 🌵 - Оазис
  • 🟦 - Бухта русалок
  • 🟧 - Хогвартс / Замок Голубая кровь
  • В остальных данжах отсутствуют (либо придумайте текстуру сами)

2.7 💈 Алтари

Появляются начиная с 3 этажа данжа (появление в более ранних этажах сделает их прохождение слишком простым) (Об этажах ниже)

Как дополнительная идея - пусть появляются только в комнатах.

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

Список возможных эффектов:

  • ☘️ Лиственный круг: снижает весь получаемый урон на несколько процентов
  • 🪶 Перьевой пояс: уменьшает длительность перемещения на 20%
  • 🦢 Грация: замедляющие коридоры перестают работать
  • ☄️ Метеоритные перчатки: уменьшает шанс промаха на 50%
  • ♥️ Жажда крови: увеличивает урон на несколько процентов
  • 🪬 Третий глаз: около 30% полученного урона конвертируется в ману

2.8 📡 Маячки

Расходник, который можно получить ровно таким же путём, как и любой другой.

При использовании данж запоминает текущее местоположение и добавляет кнопку "📡 К маячку", при нажатии которой игрок придет к месту, где он этот маячок поставил. Больше одного маячка поставить нельзя (запрещаю). Забрать маячок тоже нельзя. В общем, одноразовое удовольствие, так что придется закупать сразу несколько.

2.9 Скелеты игроков

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

Исключительно декоративная фигня

(Хогвартс онли) Зеркала

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

(Хогвартс онли) Фонтаны

Те же самые фонтаны, но для данжа. Восстанавливают половину маны, после чего исчезают.

(Храм онли) Бронированные двери

Тоже самое, что и фейковые стены \ баррикады, но с другой текстурой 🪟. При попытке пройти моментально ломаются с криком ЩИЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ

(Аргент-святилище онли) Новые алтари

  • Мегаброня: увеличивает показатель брони
  • Медпак: восстанавливает часть здоровья
  • Невидимость: увеличивает мобам шанс промахнуться

3 Коллекционные предметы

Самое главное, что наталкивает на написание этого пункта - такая механика уже давно реализована в игре, но почему-то до сих пор слабо развита. Хотя на самом деле причины ясны - всё до сих пор лежит на плечах игроков, а те не хотят кидать свои идеи. Штош. Будем развивать идею.

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

3.1 Простые коллекционные

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

  • Шахта кобольдов:
    • Алмазная кирка (ржавая)
    • Рубин (неровный)
  • Логово троллей
    • Счастливый билет
  • Воровской притон
    • (ничо не придумал)
  • Бухта русалок
    • Гребень
    • Рыбный шашлык
  • Заброшенная тюрьма
    • Мыло
    • Значок надзирателя
  • Оргриммар
    • (не шарю за варкрафт, кто умный придумайте чо нибудь)
  • Хогвартс
    • Кубок огня (бракованный)
    • Потерянный нос
    • Смирительная рубашка
  • Тёмная сторона
    • (тож хз чо писать, слабо шарю за зв)
  • Нинтанго
    • (и тут)
  • Ассоциация
    • Гейм-бой
    • Лосьон для волос
    • Сердце киборга
  • Аргент-святилище
    • Плюшевый палач
    • Жёлтый череп
  • Айнкрад
    • (сао не смотрел, не шарю)
  • Храм айкидкарадзюдо
    • Учебник боевых искусств
    • Повязка Рэмбо
  • Оазис
    • Плод быдлоцвета
    • Двойная лейка
    • Пёстрый букет
  • Эксвестрия
    • (хз)
  • Три подбородка
    • (хз)

3.2 Древние свитки

Тут, по сути, не прикажешь.

Не напишут - не добавишь.

Так что этот пункт скорее для игроков - пишите свитки! Да даже анекдотов накидать, и то читать приятно.

3.3 Раковины

Те же древние свитки, но в аудио/видео формате. Ситуация, по сути, аналогична древним свиткам, моё дело предложить идею.

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


4 Комнаты

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

Эта тема настолько популярна, что присутствует чуть ли не в каждой второй идее про данжи. Серьезно. Если кому-то не лень посчитать, скиньте мне потом статистику.

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

Алгоритм, я думаю, достаточно очевиден даже исходя только из двух вышевставленных примеров. Берём какую-нибудь узловую клетку, опустошаем пространство 3х3 с выбранной клеткой в левом верхнем углу и ставим что-нибудь интересное в центр. Вуаля! Комната готова. Да, придется в коде прописать возможность взаимодействовать с объектом в центре из клеток по диагонали от него, но, я надеюсь, это не составит труда.

Но возникает вопрос - что поставить в центре?

Да, туда будет вполне уместно воткнуть сундук или выход, но и ограничиваться ими я не хочу.

4.1 Боссы

Важнейшее нововведение, связанное с комнатами

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

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

Важное замечание - Босс (и все перечисленные ниже сундуки, которые требуют ключ с босса) не спавнятся на первом этаже данжа. Об этажах расскажу чуть позже.

Все новые сундуки можно открыть только при соблюдении двух условий:

  1. В наличии есть Потрескавшийся ключ (он, естественно, при открытии тратится)
  2. Обычный сундук уже открыт

4.2 📚 Библиотека

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

4.3 🔨 Кузня

При открытии дропается данжевое оружие, имеется повышенный шанс на хорошую редкость.

4.4 🧵 Примерочная

Аналогична кузне, но со шмотками


5 Этажи

У нас было два босса, семьдесят пять замедляющих коридоров, 5 комнат с различным мусором, библиотека, очевидно пустая, и целое море всевозможных мобов, а так же с десяток зелий, маяков, запасная броня и оружие, и много, МНОООООООГО свободного времени. Не то, чтобы было прямо таки необходимо пройти этот третий этаж Шахты кобольдов, но если уж захотел выбить Запечатанный гримуар, то к делу надо подходить серьёзно.

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

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

Кто-то хотел дать возможность при входе выбирать этаж. Зачем? Чем они будут отличаться?

Я решил подойти к идее более оригинальным путём.

5.1 Открытие этажей

Хорошим вариантом будет оставить этажи эксклюзивом для отрядов.

Для начала, в штабе придётся построить Бурильню. На первом уровне она будет открывать доступ ко 2 этажу, на втором - к 3 этажу и так далее при необходимости добавить 4+ этажи.

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

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

5.2 Смысл от этажей?

С увеличением этажа будут изменяться некоторые его характеристики:

  • Размер. Длина данжа умножается на его уровень. Да, звучит безумно, поэтому тут на усмотрение разработчика.
  • Количество комнат, соответственно, умножается пропорционально размеру
  • Враги становятся чуть сильнее
  • Возможны несколько сундуков и выходов
  • Увеличивается шанс выпадения ключа
  • Добавляются некоторые объекты, которые были недоступны на первом этаже.

В итоге, этажи предоставляют игроку сразу два сценария прохождения:

  1. Хочешь пройти данж быстро? Первый этаж
  2. Нужен лут? Выбирай этаж повыше

Заключение

Честно говоря, я немного недооценил трудоёмкость статьи. Её написание заняло несколько дней, и даже сейчас я чувствую, что получилось сыровато. Я надеюсь, что мой труд хотя бы не пропадёт. Может, кому-то он понравится. Кто-то подчерпнёт идей и напишет лучше. Кто-то найдёт, что добавить.

Всё таки моя цель - не дать чёткое тз, а показать направление. И с этой целью я справился.

Всем добра