Reverse Design: Diablo 2. Особенности генерации предметов

Мы подготовили перевод очередной части книги Reverse Design: Diablo 2, которая разбирает все подробности дизайнерских решений, которые пошли в основу этой культовой игры. В этот раз речь пойдет о случайном генераторе предметов в игре и о том, как игрок может повлиять на то, какая вещь выпадет ему из монстра.

Секторный рандом

Секторная (Slice-of-pie, SOP) случайность является типом рандома, у которого есть несколько возможных вариантов исхода, каждый из который может случиться, при каждом повторении события. Вместо того, чтобы пытаться привести примеры из повседневной жизни, мы постараемся сразу же дать несколько примеров того, как это применяется в Diablo. Этот тип случайности является определяющим для большинства шагов случайной генерации лута, включая самый первый шаг. Когда враг умирает, игра смотрит на уровень монстра и перебирает все предметы, которые ниже или равны уровню монстра. Это значит, что из врага может выпасть предмет 35 уровня, 6 уровня, или ничего — но каждый из этих вариантов случается с разной вероятностью.

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

Это становится крайне важным на поздних стадиях игры, потому что из высокороуровневых врагов выпадает не только крутой лут, из них также может выпасть любой лут более низких уровней. Другими словами, разработчики Diablo 2 постоянно нарезают "пирог" на все более мелкие кусочки, вместо того, чтобы изменить содержимое каждого из этих кусочков.

Третьей особенностью секторного представления случайных событий является тот факт, что если размер одного из секторов увеличивается или уменьшается, то все остальные сектора тоже должны будут изменить размер. Почему это так важно? В Diablo 2 у игрока есть возможность повлиять на шансы выпадения предметов. Одной из наиболее известных механик игры является система "нахождения магических предметов"(Magic find), с помощью которой игрок может увеличить шансы на нахождения топовых предметов. Пользователь не только может увеличить сектора с пометкой "редкий" и "«уникальный" предмет, но к тому же и заметно уменьшить шансы выпадения обычных предметов. Мы куда подробнее остановимся на этой механике ниже, однако важно знать, что это не единственное место, где игрок может повлиять на секторное распределение случайных событий. Игрок также может влиять на количество выпадающих предметов, правда для этого нужны другие игроки, и у данного процесса есть определенные сложности.


Изменение количества и размера секторов

Первое, что происходит при создании предметов из трупов врагов, это проверка на то, выпало ли хоть что-то. Этот момент идеально подходит для того, чтобы начать разбираться с генерацией предметов в Diablo 2(и использованием секторного рандома). Когда враг умирает, игра бросает кубик, чтобы узнать выпал ли из него какой-нибудь предмет. Размер сектора "ничего не выпало" зависит от определенной переменной, привязанной к локации, а не на какого-то параметра самого монстра. Когда игрок проходит Diablo 2 в одиночку, то стандартный шанс на то, что не выпадет ничего для большинства локаций находится в районе 62%. При подключении к игре, или локации, дополнительных игроков, шанс не получить ничего уменьшается.

Игроки Шанс на отсутствие лута
1 100/160(~62%)
2

38/98(~48%)

3 19/79(~24%)
4 10/70(~14%)
5 6/66(~9%)
6 3/63(~4%)
7 2/62(~3%)
8 1/61(~1%)

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

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

Названия мета-таблиц достаточно точно отражают их содержание. “Act 1(H) Junk” - это бесполезный мусор, “Act 1 (H) Good” - это достаточно неплохой предмет, относительно уровня монстра. “Act 1 (H) Equip A” - это то, что нужно игрокам, в эту категорию входят те предметы, которые помогут игроку улучшить своего персонажа. К сожалению, у игроков нет возможности как-то повлиять на то, какой из вариантов игры выберет. Увеличение количества персонажей на карте уменьшает вероятность того, что из монстров не выпадет ничего, однако это не приводит к серьезному увеличению шанса на выпадения крутых предметов.

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

Однако у этой системы рандома есть еще несколько "узких мест", появление которых разработчики не предусмотрели. Эти проблемы возникают из-за неравного распределения предметов по различным Treasure Class'ам(TC). Ниже можно увидеть график, который показывает только сетовые и уникальные предметы из treasure class 30, которые выпадают из врагов примерно 40 уровня.

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

Огромное количество предметов в этом treasure class'e означает, что даже если игроку повезет и ему выпадет TC51, то шанс на то, что ему попадется именно тот предмет, который ему нужен крайне мал из-за количества возможных вариантов. Это не самая распространенная проблема, однако она влияет на шансы игрока найти какой-то нужный ему предмет экипировки. И нельзя сказать, что так и было задумано разработчиками. Они, скорее всего, хотели минимизировать шанс найти элитный дроп и в этом они преуспели. Однако вряд ли им хотелось уменьшить шансы выпадения предметов из TC51, так что скорее всего это произошло по недосмотру.


Экономика высоких уровней

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

Выше вы можете наблюдать шансы на выпадения TC из монстров, из которых они могут упасть с наибольшей вероятностью. К примеру, Griswold — это монстр из которого с наибольшей вероятностью выпадет TC 6, и это происходит примерно в 25% случаев, при смерти этого монстра на нормальном уровне сложности. Баал — это монстр из которого легче всего выбить предмет из TC 87, правда падает он лишь в 0,1% случаев.

Здесь стоит отметить, шансы на выпадение предметов были получены путем умножения стандартных шансов на количество дроп-слотов, которые есть у монстра. Из обычных монстров зачастую падает лишь один или два предмета, но из боссов частенько валится 4 или больше, если конечно у них нет слотов, которые могут выдавать результат "нет дропа". Баал не является монстром, у которого стоит максимальный встроенный шанс на выпадение предметов TC 87, однако из-за того, что из него выпадает больше предметов, то и шанс на получения TC 87 можно считать выше.

Эти дроп-рейты означают, что в среднем игроку будет падать один предмет из TC 87 за каждые 1000 убийств Баала. И это если учесть, что все эти забеги будут полными, то есть из Баала всегда будет выпадать по одному предмету на каждый имеющийся у него дроп-слот. Если прибавить сюда еще и вероятность выбора сектора с "нет дропа", то шансы на предмет ТС 87 становятся совсем уж смешными.(Стоит отметить, что это средние значения. Во время моих симуляций забегов на Баала, я частенько сталкивался с отрезками, когда TC 87 не выпадал в течении двух или трех тысяч убийств подряд — что должно быть знакомо хардкорным игрокам) К тому же для достижения этих вероятностей, все забеги должны включать в себя восемь игроков, которые будут бороться за один и тот же лут.

В Diablo 3 эту проблему исправили за счет того, что лут для каждого игрока генерировался отдельно, но сейчас мы разбираем ту игру, которая была создана разработчиками, а не ту, которую им хотелось бы создать. Лучшие предметы в Diablo 2 крайне редки и игроки готовы соревноваться с друг с другом за то, чтобы получить их. Дэвид Бревик подметил, что, по его мнению, некоторые предметы было слишком уж сложно получить, особенно предметы из высоких TC и самые редкие руны. Он сказал, что благодарен команде разработчиков Diablo 3, которым удалось удалось дать игрокам хоть какие-то шансы на получение топовых предметов благодаря нескольким ивентам, которые заметно повышали дроп-рейты на ограниченное время, или при соблюдении определенных условий.

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


Magic find и секторный рандом

Последним шагом при создании предметов в Diablo 2 является определение качества этого самого предмета — он может быть обычным, магическим, редким, сетовым или уникальным. Это последний пример секторного рандома в очень длинном списке. И этот тот самый случай, когда у игрока есть определенный контроль над результатами.

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

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

Смысл этих концепций в том, чтобы заставить игроков искать более сбалансированный билд и стараться правильно подбирать скиллы и предметы для своего персонажа. Как мы увидим в следующей главе книги, у игрока гораздо больше контроля над тем, насколько быстро он может убивать врагов, чем над тем, какая награда из них будет падать. Magic find помогает пользователям получить хоть какую-то толику контроля над наградой и любому персонажу не помешает хоть немного MF'a. Однако стоит помнить, что в Diablo 2 гораздо важнее, чтобы ваш персонаж был способен хорошо сражаться.


Итоги главы о секторном рандоме

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

Предыдущие части:

  1. Вступление.
  2. История жанра ролевых игр.
  3. Базовые характеристики.
  4. Элементальный урон и синергия.
  5. Обзор Амазонки.
  6. Обзор Некроманта.
  7. Обзор Паладина и Убийцы.
  8. Обзор Друида и Волшебницы.
  9. Обзор Варвара.
  10. Историческое наследие action-игр.
  11. Особенности движения персонажей в игре.
  12. Эффекты контроля.
  13. Подведение итогов экшн-механик и проблемы интерфейса.
  14. Реализация рандома в Diablo.