Про урон мы поговорили в предыдущей статье. Продолжим колупать баланс на примере защиты. Постараюсь без воды.
Среди игроков и некоторых модмейкеров ходит молва, мол рост эффекта от брони идёт по убывающей полезности.
Таблице ниже даёт интуитивное представление, что каждая следующая единица брони даёт всё меньше бонуса (спойлер, данный вывод ошибочен). И чем брони больше, тем бессмысленнее её дальнейший апгрейд. Для тех, кто не знает, поглощение по умолчанию высчитывается по формуле = 1-1/(armor*0.06+1)
Таблице ниже даёт интуитивное представление, что каждая следующая единица брони даёт всё меньше бонуса (спойлер, данный вывод ошибочен). И чем брони больше, тем бессмысленнее её дальнейший апгрейд. Для тех, кто не знает, поглощение по умолчанию высчитывается по формуле = 1-1/(armor*0.06+1)
Броня | Поглощение урона | +поглощение относительно предыдущей брони |
0 | 0,00% | |
1 | 5,66% | +5,66% |
2 | 10,71% | +5,05% |
3 | 15,25% | +4,54% |
4 | 19,35% | +4,1% |
5 | 23,08% | +3,72% |
6 | 26,47% | +3,39% |
7 | 29,58% | +3,11% |
8 | 32,43% | +2,85% |
Но вывод о том, что эффективность снижается - ошибочен.
Это может показаться контринтуитивным, но рассмотрим на нескольких примерах.
Это может показаться контринтуитивным, но рассмотрим на нескольких примерах.
Предположим, что у нас есть юнит А с бронёй, которая поглощает 50% урона.
Мы хотим за счёт повышения поглощения брони сделать этого юнита в 2 раза живучее при физических атаках.
Вопрос: какое должно быть новое поглощение урона, чтобы юнит А стал в 2 раза эффективнее?
Ответом будет: 75%.
Юнит, поглощающий 75% урона живёт вдвое дольше, чем юнит, поглощающий 50%.
Мы хотим за счёт повышения поглощения брони сделать этого юнита в 2 раза живучее при физических атаках.
Вопрос: какое должно быть новое поглощение урона, чтобы юнит А стал в 2 раза эффективнее?
Ответом будет: 75%.
Юнит, поглощающий 75% урона живёт вдвое дольше, чем юнит, поглощающий 50%.
А если мы хотим удвоить выживаемость у юнита с 98% поглощения? Тогда мы выставим ему 99% поглощение урона.
Юнит с 99% поглощение выдержит вдвое больше ударов, чем юнит с 98% поглощения.
Юнит с 99% поглощение выдержит вдвое больше ударов, чем юнит с 98% поглощения.
Понимаете где собака зарыта?
Нужно смотреть не на то, сколько броня поглощает, а на то, сколько урона остаётся.
Нужно смотреть не на то, сколько броня поглощает, а на то, сколько урона остаётся.
Так, если юнит А поглощает 98% урона, то до него доходит 2% урона.
А если юнит Б поглощает 99% урона, то до него доходит 1% урона.
Следовательно юнит Б выдержит в 2 раза больше ударов, чем юнит А = 2%/1%
А если юнит Б поглощает 99% урона, то до него доходит 1% урона.
Следовательно юнит Б выдержит в 2 раза больше ударов, чем юнит А = 2%/1%
Поэтому если мы знаем, что юнит имеет, предположим, 80% поглощения урона и 250 ед. здоровья, то мы можем расчитать его выживаемость в бою с рукопашным уроном по следующей формуле:
выживаемость = hp / (1-def) = 250 / (1-0.8) = 250 / 0.2 = 1250 ед.
Т. е. юнит сможет выдержать 1250 ед. физического урона перед своей гибелью.
выживаемость = hp / (1-def) = 250 / (1-0.8) = 250 / 0.2 = 1250 ед.
Т. е. юнит сможет выдержать 1250 ед. физического урона перед своей гибелью.
Помните таблицу поглощения урона в начале статьи? Давайте теперь трансформируем показатель поглощения в множитель выживаемости по формуле
множитель_выживаемости = 1/(1-поглощение):
множитель_выживаемости = 1/(1-поглощение):
Броня | Поглощение урона | Множитель выживаемости | Рост выживаемости |
0 | 0,00% | 100% | |
1 | 5,66% | 106% | +6% |
2 | 10,71% | 112% | +6% |
3 | 15,25% | 118% | +6% |
4 | 19,35% | 124% | +6% |
5 | 23,08% | 130% | +6% |
6 | 26,47% | 136% | +6% |
7 | 29,58% | 142% | +6% |
8 | 32,43% | 148% | +6% |
Другими словами, каждая единица брони в Warcraft 3 даёт юниту дополнительные 6% выживаемости (относительно базового значения) против физических атак.
Так, юнит с 100 ед. брони будет иметь дополнительные 600% выживаемости (т. е. он будет в 7 раз более живучим за счёт поглощения .85.71% урона)
Так, юнит с 100 ед. брони будет иметь дополнительные 600% выживаемости (т. е. он будет в 7 раз более живучим за счёт поглощения .85.71% урона)
Вывод
Как видите, эффективность брони растёт линейно. Ни о какой убывающей полезности речи не идёт.
Как этим пользоваться
Если вы планируете какую-то способность или предмет, работающую по аналогии с бронёй (уклонение, защита от магии и прочее), и планируете дать этому апгрейду множество стадий (например - 60 уровней предмета), то задайте верхнюю и нижнюю границу рейтинга защиты, интерполируете её удобным для вас образом, и затем конвертируйте её в эффект.
Предположим, что я хочу ввести для RPG карты амулет уклонения,
Пусть 1-й уровень этого амулета повышает выживаемость героя в битве без магии на 20%,
Пусть 10-й уровень этого амулета повышает выживаемость героя в битве без магии на 150%
Пусть эффект амулета распространяется на другие уровни по линейной интерполяции
Пусть 1 ед. рейтинга уворота обеспечивает 1% дополнительной выживаемости (т. е. 20 рейтинга уворота даёт 20% доп выживаемости)
Пусть 1-й уровень этого амулета повышает выживаемость героя в битве без магии на 20%,
Пусть 10-й уровень этого амулета повышает выживаемость героя в битве без магии на 150%
Пусть эффект амулета распространяется на другие уровни по линейной интерполяции
Пусть 1 ед. рейтинга уворота обеспечивает 1% дополнительной выживаемости (т. е. 20 рейтинга уворота даёт 20% доп выживаемости)
Получим следующую таблицу:
Уровень амулета | Рейтинг уворота |
1 | 20 |
2 | 34 |
3 | 49 |
4 | 63 |
5 | 78 |
6 | 92 |
7 | 107 |
8 | 121 |
9 | 136 |
10 | 150 |
Теперь трансформируем рейтинг уворота в шанс увернуться от атаки по формуле =1 - 1 / (рейтинг_уворота * 0.01 +1)
Уровень амулета | Шанс увернуться от атаки |
1 | 16,67% |
2 | 25,62% |
3 | 32,84% |
4 | 38,78% |
5 | 43,75% |
6 | 47,98% |
7 | 51,61% |
8 | 54,77% |
9 | 57,55% |
10 | 60,00% |
Следите за суммарной выживаемостью
Если у юнита множество защитных факторов, следите за тем, чтобы выживаемость юнита от физических атак не возрастала многократно относительно выживаемости против заклинаний.
Предположим, что юнит блокирует 75% физического урона и имеет 75% шанс увернуться от атаки
Таким образом его выживаемость от физических атак = 100% / (100%-75%) / (100-75%) = 1 / 0.25 / 0.25 = 16
Т. е. такой юнит сможем впитать в себя в 16 раз больше урона от физических атак, но в то же время если у него нет сопротивляемости к магии, то от неё он будет погибать в 16 раз быстрее, чем от физических атак, что сделает эффективность магов к концу игры многократно выше эффективности бойцов, наносящих урон не заклинаниями.
Если вы этого не планировали, то такой эффект следует нивелировать каким-либо способом.
Первый способ. Например, вы могли бы помимо брони сделать рост защиты от заклинаний.
Второй способ. Также вы могли бы вражеским воинам сделать рост физического урона к поздним стадиям игры значительно выше, чем у них растёт урон от заклинаний.
По своему опыту могу сказать, что это не самый приятный геймплей, когда одни противники тебя за час не могут уничтожить, ибо атакую физикой, а другие унчтожают с одного прокаста, так как атакуют магией.
Если у героя билд расчитан на защиту от физических атак, то было бы лучше, если бы против физиков он сражался, к примеру, процентов на 40% эффективнее, а не на 400%.
Таким образом его выживаемость от физических атак = 100% / (100%-75%) / (100-75%) = 1 / 0.25 / 0.25 = 16
Т. е. такой юнит сможем впитать в себя в 16 раз больше урона от физических атак, но в то же время если у него нет сопротивляемости к магии, то от неё он будет погибать в 16 раз быстрее, чем от физических атак, что сделает эффективность магов к концу игры многократно выше эффективности бойцов, наносящих урон не заклинаниями.
Если вы этого не планировали, то такой эффект следует нивелировать каким-либо способом.
Первый способ. Например, вы могли бы помимо брони сделать рост защиты от заклинаний.
Второй способ. Также вы могли бы вражеским воинам сделать рост физического урона к поздним стадиям игры значительно выше, чем у них растёт урон от заклинаний.
По своему опыту могу сказать, что это не самый приятный геймплей, когда одни противники тебя за час не могут уничтожить, ибо атакую физикой, а другие унчтожают с одного прокаста, так как атакуют магией.
Если у героя билд расчитан на защиту от физических атак, то было бы лучше, если бы против физиков он сражался, к примеру, процентов на 40% эффективнее, а не на 400%.
4 - (4 * .5) = 2; 100 / 2 = 50 тычек для убийства
4 - (4 * .75) = 1; 100 / 1 = 100 тычек для убийства