Одна из идей в моде "Защита брони в % и в минимальном поглощаемом уроне, больше не будет ненужной и неэффективной брони". У меня есть некоторые мысли по этому поводу. В большинстве игр сейчас броня либо flat armor (как в готике), либо процентая (резисты к элементам в диабло2...) Но обе эти системы имеют недостатки. В конце я напишу про третий вид брони, которая этих недостатков лишена.
Flat armor
Тут идет просте вычитание урона, т.е. по чуваку с броней 100 наносят 150 урона => 150 - 100 = 50 урона он получит. Проблема в том что если вначале раздобыть 50 армора от режущего, то волки из грозного противника превращаются в игрушку, т.к. банально не могут пробить броню. И наоборот предположим у босса атака 1500, тогда нет особо большой разницы сражаться с ним в трусах или в топовой паладиновской броне на 250 защиты. Разница между 1500 и 1250 урона невелика.
Недостатки:
* слабые враги наносят 0 урона
* против сильных врагов, броня почти бесполезна
* Дот/переодичный урон не реализуешь, т.к. он наносит мало урона за тик и просто заигнорится броней. Люди делают доты с игнором брони, но это выглядит крайне неуклюже
Процентная броня (ака резисты)
Несмотря на то, что используется практически повсеместно, имеет явный недостаток. Она растет экспоненциально, т.е. вначале почти не дает выживаемости, зато на высоких процентах получаются невероятные цифры.
Предположим у нас есть чар с 100 хп, его бьют 10 раз по 10 урона.
Без брони => 100 / 10 = 10 => здоровья хватит на 10 ударов
с 40% резиста => 100 / 6 = ~17 => здоровья хватит на 17 ударов
с 80% резиста => 100 / 2 = 50 => здоровья хватит на 50 ударов
Т.е. разница между между 17 и 50 ударами огромная.
Предположим мы просто одели шлем и броник по 40% каждый. Если одеть их по отдельности они дадут 1.7x выживаемость (effective hp => ehp), но если одеть их вместе то получим 5х ehp. Из-за этого экпоненциального роста разработчики вводят резист капы/ограничения, типа 70% максимальный резист...
res/hits/ehp
10% => 11.1 hits => 1.1x ehp
20% => 12.5 hits => 1.25x ehp
30% => 14.2 hits => 1.42x ehp
40% => 16.6 hits => 1.66x ehp
50% => 20 hits => 2x ehp
60% => 25 hits => 2.5x ehp
70% => 33.3 hits => 3.3x ehp
80% => 50 hits => 5x ehp
90% => 100 hits => 10x ehp
95% => 200 hits => 20x ehp
Недостатки:
* Экспоненциальный рост, практически не дает ничего вначале и дает огромную выживаемость на высоких процентах.
Упорядоченная процентная броня (название из головы)
В варкрафт 3 я увидел классную реализацию брони, которая затем перешла в доту 2. По сути это та же самая процентная броня, только рост у нее линейный, а не экспоненциальный. Идея тут в том что мы получаем плоские значения на шмотках (шлем +7 брони, плащ +3 брони) но они преобразуются в процентный резист.
Формула из доты
resistPercent = armor => ( (0.05 * armor) / (1 + 0.05 * Math.abs(armor)) )
Допустим у нас есть чар с 100 хп, в шлеме на +7 брони и плаще на +3 брони, т.е. всего 10.
резист = ( (0.05 * 10) / (1 + 0.05 * Math.abs(10)) ) = 0.33 = 33%
ehp = hp / (1 - resistPercent) = 100 / (1- 0.33) = 100 / 0.66 = 150;
flat armor / resist% / ehp
0/0/100
10/33%/150
20/50%/200
30/60%/250
40/66%/300
50/71%/350
60/75%/400
Т.е. мы линейно увеличиваем нашу броню и получаем
линейный рост ehp. Хотя сам резист растет нелинейно, и кажется что нет смысла накапливать броню после 20-30, но из таблицы видно, что за каждые 10 брони, мы увеличиваем наше хп против определенного типа урона на 50%.
Т.е. по сути никакого капа не существуют. Хочешь быть в 2 раза прочнее против физики? Собирай себе 20 защиты от физики. Хочешь быть в 4 раза прочнее против магии? Собирай 60 защиты от магии. Не надо никаких пробиваний брони, просто делаешь спел "молния игнорирует 20 брони", и идет простое вычитание 60 - 20 = 40 => 66% резиста => 3x ehp. С негативными значениями брони эта формула тоже отлично работает.