Баланс карт жанра Hero Defence

Добавлен , не публикуется

Пролог

Статья вышла спонтанно, давно хотел написать, а тут такая возможность. Вообщем делая свой второй Hero Defence, я пришел к выводу что баланс решает половину игры. И решил пойти математическим путем решения проблемы. Скажем так – эксперимент в стране Неведения. Почему – потому что автор ни черта не шарит в математике, но обладает хорошей логикой. Писать буду максимально просто, чтобы было понятно таким же как и я.
замечу, что написание статьи ведется параллельно с балансированием собственной карты)

Часть 1. Вступление

Итак, давайте отбалансируем карту довольно популярного жанра – херо дефенс(там где героем обороняем что-нибудь, и возможно потом осаждаем сами что-нибудь). Допустим у вас имеется уже карта со всеми наворотами, с рабочим геймплеем и различными фишками. И все вроде хорошо, но у вас проблемы с крипами. Причем серьезные. А проблемы могут быть следующие:
  • вы сделали карту и крипов, но чтобы нормально играть, без проблем пройти карту – нужен фулхаус игроков. Будем считать что вы успешно сделали карту, если добились хотя бы такого.
  • В начале игры сложно, потом раскачка, а потом все богами по карте ходят, взглядом убивая все живое и не очень. Это проблема также является проблемой геймплея, и как очевидно и понятно – означает что у вас в середине игры только есть момент игровой схватки: то есть момент, когда игра идет как надо, нет аврала от напастей тварей или же нет сверхкрутых перцев, которые все выносят одним ударом.
  • У вас все хорошо в начале игры, а потом начинается невыносимый для 4-6 человек Ад, но при этом игра фулхаусом – сущий пустяк пройти карту.
Продолжать можно долго, но придет это все к одному: прежде как недовольствовать на крипов, проверьте геймплей и игровые события. Возможно где то просто стоит выпустить поменьше крипов, или же наоборот, прибавить и к без того прущим тварям еще парочку.
Я не рассматриваю карты с волновой системой атаки, онли постоянная атака тварей на вашу базу. Почему – потому что в какой-то мере баланс разнится и зависит не от такого большого кол-ва факторов.
Проверили геймплей и события? Отлично, отключайте их. Оставляем только основу: когда после старта начинают валить самые первые крипы на стартового героя. Отсюда мы начнем плясать. А отключили мы все – чтобы это не сбивало нас при последовательном балансе. Вы сами потом увидите, что проще определить параметры эвента, когда уже ясно с какой кучкой крипов герой справляется.

Часть2. Коэффицент баланса.

Давайте сразу к делу. Делайте все как написано, можете прямо параллельно)
  • Открывайте MS Excel. Да-да, именно он нам во всем и поможет. Он нам понадобится для наглядности и простоты высчитывания. Надеюсь базовые знания у вас имеются для работы с этим.
  • Делаем таблицу характеристик героя игрока
Сила атаки героя | Здоровье | Защита | Время на убийство
Это была шапка таблицы. Поясню что к чему:
  • Сила атаки – это сила атаки, которая отображается в игре. То есть если в РО у боевой единицы(героя) сила атаки стоит 57, кол-во граней кости 2, кол-во костей 1 и основная характеристика - 15, то его игровая сила атаки будет равняться 73-74(можете проверить). Нам в таблицу нужна нижняя грань ,то есть число 73.
  • Здоровье - это также игровое здоровье нашего героя. То есть тут вам нужно указать то здоровье, которое будет у героя в самом начале, при старте игры. Узнать его можно, поставив героя на кfhте в редакторе и нажав Enter - в окне свойств отобразится его уровень ХП и маны. У меня это значение равнялось 75.
  • Защита - верно, также ставим игровую. Если лень бегать смотреть в игру постоянно, для простоты работы скачайте StatHero, он заметно облегчит процесс подсчета игровых параметров боевой единицы. У меня значение защиты равняется 0
  • Время на убийство - это значение появится у нас позже. Оно будет показывать сколько времени потребуется настроенному нами крипу убить нашего героя.
Я делаю расчет для крипа и героя первых уровней, то есть самые базовые значения используются.
Итого у нас получается таблица в экселе:
Сила атаки героя Здоровье Защита Время на убийство
73 75 0 <пусто>
Коэффицент баланса
Честно говоря не ожидал что приду к данному коэффиценту. Абсолютно путм логических экспериментов я вывел… Ладно, давайте к делу. По ходу выведем.
  • Создайте такую же таблицу рядом. Это будет таблица нашего крипа. Но добавим туда один столбец: получаемый (крипом) урон.
Сила атаки крипа | Здоровье | Защита | Получаемый урон | Время на убийство
-Получаемый урон - показатель получаемого крипом урона, зависящий от единиц защиты.
Далее у вас начинается эксперимент. Сейчас внимательно следите за манипуляциями, тк будем оперировать двумя таблицами.
  • Итак я подставил в столбец Силы крипа 10, здоровье выставил 200 (смотрел относительно наносимого героем урона), и защиту поставил на 1. Получилось:
Сила атаки крипа Здоровье Защита Получаемый урон Время на убийство
10 200 0 <пусто> <пусто>
-Давайте высчитаем получаемый крипом урон от одного удара героя. Делаем это через формулы в экселе(надеюсь все пользоваться умеют). Для этого мы из силы атаки героя вычитаем процент отраженного защитой крипа урона. То есть:
“”
Получ. Урон = 73 – 73/100%*1 = 72,27
“”
где 73 – атака нашего героя, (73/100%*1) – процент отраженного урона броней в 1 единицу. Не сложно ведь, да?
  • Пишем результат в таблице крипа, получаем:
Сила атаки крипа Здоровье Защита Получаемый урон Время на убийство
10 200 0 72,27 <пусто>
Не плохо. Идем дальше. Теперь посчитаем время на убийство героя. Для этого поделим здоровье героя на силу атаки крипа.
“”
t1 = 75/10 = 7.5 секунд.
“”
То есть при схватке 1 на 1 нашего героя и крипа, крипу понадобится 7,5 секунд чтобы вальнуть героя. Великолепно, не останавливаемся, Пишем значение в таблицу героя и идем дальше!
Сила атаки героя Здоровье Защита Время на убийство
73 75 0 7,5
Считаем время на убийство крипа по тому же принципу: делим здоровье крипа на полученный им от героя урон.
“”
t2 = 200/72,27 = 2.77
“”
Получается что герой при схватке вальнет крипа за почти 3 секунды. Заполняем ячейку:
Сила атаки крипа Здоровье Защита Получаемый урон Время на убийство
10 200 0 72,27 2,77
Прекрасно. А теперь посчитаем Коэффициент баланса
Для этого поделим время на убийство героя на время на убийство крипа. То есть t1 разделим на t2
“”
КБ = t1/t2 = 2.7
“”
Коэффициент баланса между героем(сначала именно «героем») и крипом на первом уровне равен почти 3.
Вот оно, то что мы искали. Наверно я кому и не открыл этим глаза, и вы спросите «ну и что это нам даст». А даст нам это вот что.

Результат

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

Часть 2. Заметки

Любой баланс – это 20% расчетов/подсчетов/выставления значений и 80% теста. Дада, теста. Написание ниже в принципе для толстолобиков и начинающих, поэтому особо глаза я никому не раскрою, скорее приведу лишь доводы и факты.

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

Никогда не пытайтесь сами тестить карту, делать для этого АИ, звать друзей или расспрашивать недовольных неотбалансенной картой случайных игроков в Гарене. Вы – разработчик, и у вас должна быть команда, если нет – ищите хотя бы несколько тестеров, которые смогут как-нибудь более менее отписываться по карте. Вы никогда сами не сможете собрать все багги карты, потому что вы не будете в нее просто играть. Вы будете знать все что происходит на карте как часовщик знает часы. Вы не отловите очевидностей, из-за которых геймеры просто не признают вашу карту. Многие не плохие в своем роде проекты загибались именно из-за плохого баланса: крипы сильные становятся незапно, босс легкий, арты не собирается, спел не кастуется куда надо, голд не тому игркоу дали, абилка хоткей не тот имеет, иконка зеленая – список можно продолжать еще долго. Вы как автор карты не увидите этого, в этом я вас могу заверить. И дело не в слепоте, а в том, что вы все в карте знаете. В этом плане вы должны подстраиваться под игроков: если вы знаете что скоро будет хитрый крип какой-нибудь и нужно закупится трумечом – то игроки должны понять это интуитивно, и вы должны добится того, чтобы игроки всегда были ко всему готовы в карте. Нет, давайте скажем точнее – чтобы игроки всегда сидели как на иголках. А если этого не будет, а будет просто тупое месиво, а потом раз – и какой-нибудь дракон на команду футманов нападет – всё, игра пропала. Фиксируйте все что вам скажут в плане недочетов карты. Только так можно довести ее до ума, очевидно.

Для удобства баланса карт жанра Херо Дефенс используют также следующую фичу: цельные числа характеристик. То есть максимально используют значения кратные 10 или 100. С созданной нами раньше таблицы, данная фишка будет в разы полезнее и облегчит нам конечную задачу. Всегда проще ориентироваться в круглых числах – намного точнее можно предугадать нужные значения для той или иной характеристики. Например у героя 100 хп, но атака 25, у крипа хп 50, но и атака 50 – мы без таблицы можем сказать что при равной скорости боя им обоим понадобится одинаковое кол-во времени на убийство друг-друга.

Многие карты содержат в себе код, фиксирующий кол-во игроков и выдающий крипов в карту в зависимости от этих игроков. Делайте это, любой уважающий себя маппер должен делать эту систему, если он хочет чтобы карта была реиграбельной. Многие хотят играть одни например а карта выдает тварей для героев 12 игроков. Долго тут естественно не поиграешь. Важно помнить что кол-во игроков может снижаться во время игры, и нужно быть готовым к этому моменту: снижать кол-во гадов динамично во время игры.
  • Балансировка Эвентов и геймплея – это очень важный момент. Если эвент заключается в нанесении урона героям, то этот урон не должен превышать урона, который могут получить герои игроков за одну обычную волну крипов в момент этого эвента. Потому что у нас игра рассчитана не на избежание неких событий, а на убивание тварей. Если эвент заключается в повышение характеристик героя – то это не должно быть повышением больше чем на половину например. Но смотрите – не просто так не должно быть больше\меньше\шире\выше. Немаловажную роль играет длительность эвента. Момент баланса Эвентов опредяет только тест карты в режиме живой игры: случайные игроки порой смогут из обычного эвента выдать вам фатал вашей карты.

Старайтесь точить карту под схватку герой-толпа, а не под герой-крип. Почему – потому что ни в одном Херо Дефенсе герой не остается с крипом 1 на 1, а если вы заточите игру под бой герой -крип, то очевидно, что толпой ас просто съедят. Тут не важно, один вы играете или нет – мы помним, что на каждого игрока у нас выдается одинаковая толпа гадов, и помочь кто-либо вам вряд ли сможет так сразу.

Что вам упростит работу над картой в плане теста и балансирования – так это организация собственной работы, а именно: в карте каждая вещь должна нести одну функцию. Если эвент – то он появится только в один определенный момент, если пушка стреляет и отталкивает, то это делает только эта пушка. Другая пушка делает другое, но она тоже может стрелять и отталкивать. Важно чтобы ничего в этом клубке не пересекалось, в противном случае изменение одной системы(незначительно) может убить все остальные рабочие системы.

Важно помнить о таком факторе в бою как dps(damage per second). Рассматривая бой 1 на 1, дпс играет важную роль, если мы не меняем в характеристиках боевой единицы ничего кроме него - это очевидно. Для балансирования б/е с изменением нескольких важных для боя факторов параметров можно использовать метод "зависимости" или "привязки". Суть метода заключается в формировании зависимости параметров по одному главному параметру. Допустим повышение dps на 0.10 влечет за собой понижение hp на 10 ед. и понижение силы атаки на 2 ед. Эта зависимость строится на основе начальных параметров балансируемой боевой единицы.

В вашей карте наверняка будут иметься заклинания различного рода действия. И пассив, и инкриз, и хил, и прочее. Очень хорошо делать их после основного баланса, то есть когда юниты сбалансированны друг к другу "на легке". Таким образом у вас будет меньше путаницы кто кого сильнее какими спеллами: 2 ветви баланса будут идти параллельно, так сказать накладываясь друг на друга. Но здесь важно не прогадать: если у одного юнита 2 АОЕ спелла и две пассивки, то абилки 2ого юнита по дамагу\инкризу\хилу должны приблизительно равняться тем двум АОЕ спеллам и 2ум пассивкам. Проще говоря - физический эффект должн быть приблизительно одинаков. Причем настроится эта одинаковость должна за счет манакоста и кулдауна абилки. Тут закономерность простая:
  • низкий дамаг - низкий манакост - быстрый кулдаун
  • средний дамаг(не АОЕ) - средний манакост - средний кулдаун
  • средний дамаг(АОЕ) - высокий манакост - средний/медленный кулдаун
  • большой дамаг - высокий манакост - медленный кулдаун
Естественно это не принципиальные законы, а очевидные решения в балансе спеллов. Никто не ограничивает вас в решении параметров кулдауна и манакоста: данные зависимости приведены для наглядного и простого примера.

Продолжать писать очевидности, которые по идее каждый автор Херо Дефенса знает и чувствует, можно было бы еще долго, но я хотел отметить основные моменты, возникающие при создании карт данного жанра. Главным вашим оружием в балансе будет живой тест, или же одиночный, когда его действительно может хватить. Порой тест релизной версии карты выдает шокирующий результаты: триггер с боссом отключен например, или БольшаяКрутаяПушка не стреляет по боссу. И тут вы начинаете рвать на себе волосы, ругаться непристойно, и выкидываете карту с 90% готовности. Да, Баланс это чертовски трудно для карт данного жанра, так как учитывать надо максимально всё. Но результат, который получится на выходе будет вашим личным приятным достижением. Никто не говорил что будет все быстро: для хорошей карты слова тест и баланс – бессмертные спутники, но благодаря им, карта может в дальнейшем высокой реиграбельностью.

Заключение

Надеюсь в итоге все пришли к какой либо финальной мысли. Как и что, где и почему, зачем и для кого. Я буду очень рад если кто-то действительно оценил текст по достоинству и взял что-то себе на заметку. Выводить формулы может каждый. Поверьте, важно просто знать чего ты хочешь получить в итоге. Спасибо за внимание!
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
34
какая то муть -_-
У меня тоже вечно были какие то баги с балансом (карта другого жанра), но тут банально я делал так - вот гер имба, надо подрезать, а тут крип слишком слабый - надо усилить и так далее ))
Методом проб и ошибок, а также бесчисленных тестов - баланс медленно но верно улучшался )
32
Методом проб и ошибок
ага. Так оно и есть. Но нужно процесс то ускорять. И понимать почему делать так или иначе. Я делился скажем так граблями, на которые наступал сам лично.
23
Сейчас оценим это ты из-за ZM статью сделал? :D
16
окинул взглядом, потом вчитался, коэффициент баланса - вещь полезная не только для херо дэфэнсов, спасибо за статью.
32
Kakashi23, ну почти. На ранних стадихя я все же создавал баланс путем высчитывания различных цифр, позже корректировал на тестах))
SkiL, не за что)
23
толпой ас
Толпой *в*ас
Хм, хорошая статья. Просто, полезно и со вкусом.
25
Fakov, можно многое упростить в вашей статье, используя это.
30
А как насчёт скорости атаки? Или у тебя у всех скорость 1 удар/секунду?
25
Да, надо брать дпс. И использовать Unit Balancer, выложенный выше.
К тому же учитывать, что в конце у героев будут мощные абилки и постепенно увеличивать коэффициент мощи монстров.
32
Rewenger, ЮнитБалансер больше подходит для ПвП боев, имхо. Расчет для боя Герой-Толпа не нем не сделать(можно только сделать Герой - Единица Толпы)
Ориентировать ДПС можно как раз будет по времени, которое нужно для убийтсва этого юнита. Вообще каждый может посидеть пару часов и загнаться на таблицу зависимости для своей карты самостоятельно, дабы учесть собственные нюансы. Я лишь привел пример, который позволяет проще и быстрее ориентироваться в балансе Херо Дефа.
25
Вы сейчас хрень сказали. Вы и в своём способе не считаете расчёт "герой-толпа" в правильной форме. Да и посчитать в правильной форме не так уж сложно (но и надёжно не посчитаешь, разумеется); умножением ДПС крипа на необходимое число. В бою 1*1 - на единицу, в невыгодном положении - на 6, в выгодном положении (около стены или в проходе) - на 2-4. Против стреляющих... в худшей ситуации - сколько их там всех есть, на столько и умножаем.
Да, и чтобы посчитать, за какое время герой убьёт "толпу", надо будет после убийства одного крипа с указанным дпс отнимать по единице из общего коэффициента ДПС, пока он не будет равен нулю, притом в ситуации типа "окружение" крипам может подходить пополнение.
Но, чтоб вы знали, одно из необходимых условий годной HD - интересные и качественные способности (а лучше - много). А интересные способности, разумеется, включают в себя: 1) Сложные АОЕ с необычными эффектами 2) Пассивки, зачастую необычные, типа прибавления бонусов после смерти ближайших крипов итп 3) Сплеши 4) Необычные сингловые абилки, переходящие в АОЕ при соблюдении некоторых условий.
С учётом упора на сложные способности баланс цифорками делать приблизительно бесполезно, лучше это делать для ТД.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.