В первой части мы начали рассказывать о балансе юнитов в нашей игре жанра TD, которая неплохо себя показала, добравшись до топовых мест в своих жанрах US, RU и др. Appstore, получила фичеринг в разделе «Игры» в RU Google Play и в New&Noteworthy в 60 странах Appstore.
В данной статье мы затронем тему создания новых типов башен по принципу «от рассмотренной ситуации – к юниту», расскажем о расчете параметров крипов и дадим описание бонусов.



Вычисление параметров башен.
1. Граничное условие – первая башня должна почти убивать первого крипа в одиночку, оставляя у него ХП на один выстрел.
2. У стреляющей башни обязательно есть следующие параметры: радиус обстрела, скорость перезарядки, урон от снаряда.
3. Каждая башня должна хорошо уничтожать определенные типы крипов, и несколько хуже – другие типы.
4. Приблизительная величина, по которой можно вычислить ценность башни = среднее суммарное время атаки крипа, попавшего в ее радиус, умножить на урон в секунду.
5. Башни обязательно должны создавать «связки», в которых они действуют лучше, чем по одиночке.



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

Если же говорить про виды башен, то для создания разных путей прохождения уровней общие принципы действия башен должны сильно отличаться. Во-первых, кроме чисто атакующих, должны быть башни «поддержки». Во-вторых, типы атак башен должны отличаться не только наносимым уроном или скорострельностью, но и качественными особенностями (зависимость наносимого урона от различных факторов). Однако, так или иначе полезность башен можно свести к общему критерию.

Общий показатель башни, по какому можно оценить ее «убойность» (К): DPS*R/Price (урон в секунду умножить на радиус обстрела и делить на цену башни).

Базовая башня в нашей игре – подающий, у нее нет спец-способностей.


Скорострельность базовой башни – 2 выстрела в секунду, урон за 1 выстрел – 10 единиц (снимает 10 ХП), базовый урон в секунду – 20, радиус – 2.3 тайла, цена – 60. Получаем K=2.3*20/60 около 0.75

Рассмотрим другие башни, используемые в игре.

а) Сплешевик/ядрометатель

Имеет атаку по площади (юниты в определенном радиусе от места попадания снаряда получают урон). Урон башни зависит от того, на скольких юнитов он распределяется (сколько крипов находилось в зоне поражении). Для одного юнита:
урон – 3.5*15*0.5*3/100=0.75, т.е. фактически не отличается от базовой башни.

Аналогичная ситуация с 2-3 юнитами (суммарный урон для 1 юнита будет 3.5*15=52.5, для двух – 2*2*15=60, для трех – 3*1.8*15=81), но видим закономерность – чем больше юнитов в зоне атаки, тем больший суммарный урон они получат. Для 5 и более юнитов эта формула будет 15*N, а при радиусе сплеша в 0.6 тайлов, на участке размером 1.2 тайла может быть 8-9 противников.

б) Боксер

Выбивает противника с поля одним ударом. Должен быть выгоден против врагов с большим ХП и невыгоден против слабых. Его урон колеблется в зависимости от ХП юнита, от 0 до ХП самого мощного юнита (кроме босса). Радиус неважен, т. к. успевает сделать только 1 выстрел.

Возьмем среднюю скорость крипа = 0.8 тайла в секунду. Тогда 2.3 тайла юнит пройдет примерно за 3с. Базовая башня за это время сможет нанести урон =3*20, тогда как боксер, в перерасчете на 3с — 300*3/5, т. е. порядка 180. Однако, для слабых юнитов, например, для базовых, эта цифра будет 75*3/5=45, т. е. меньше, чем базовая башня.

в) Боулингист

Имеет линейную сплеш-атаку. Сила атаки шара – 27, выстрел – 1 раз в 2 секунды. Итого, урон на 1 юнита в секунду – 13.5. Это меньше, чем у базовой башни, но учитывая, что боулингист начинает атаковать с 5 тайлов, то при средней длине цепочки юнитов, идущих с промежутком порядка 1с, он может одновременно атаковать 5-6 юнитов. Таким образом, 1 юнит может наносить от 13.5 до 81 урона в секунду, а учитывая цену башни (80 монет), он при хорошем раскладе будет в 3 раза эффективнее базовой башни (20 урона в секунду за 60 монет против 80 урона в секунду за 80 монет).

Минусы башни также видны невооруженным глазом – юниты должны идти как раз по линии его атаки.



г) Отбивающий

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



Связку «1 подающий+1 нападающий» можно свести к аналогии «атакующая башня с бОльшим радиусом атаки». Если брать радиусы атаки, то у базовой башни она равна 2.3*2=4.6 тайла, у связки 2.3+2 (расстояние между подающей и отбивающей башнями)+3(радиус атаки отбивающей башни) =6.3, т. е. На 36% больше. Учитывая, что отбивающая башня усиливает урон от переданного мяча на 10%, получим увеличение урона примерн�� на 40%.

Сумма связки: 95 монет против 60 у одиночной башни, т. е. на 58% больше. Однако, в случае ограниченного числа мест для установки башен рядом с путем движения крипов, 1 отбивающий может сосредоточить огонь от 2-3 подающих, стоящих в отдалении, а также дешевая цена отбивающей башни позволяет ей «затыкать дырки» в обороне.

Баланс «связок» башен.
1. подающий +цепочка отбивающих
По сути, такая связка аналогична одной башне с большим полем обстрела. Учитывая, что каждый новый отбивающий увеличивает площадь обстрела примерно на половину площади круга обстрела отбивающего, то получаем связку башен, выгодную при убийстве крипов, идущих с большими промежутками, или одиночными крипами, которые идут из разных точек. Конструкция балансируется небольшим уменьшением урона мяча при передаче его от подающего к подающему. При передаче 90% урона в цепочке из 5 башен до цели дойдет 60% урона.
2. несколько подающих+отбивающий
Такая связка оправдана в ситуациях, когда есть одна удачная точка, куда можно поставить башню, и много подающих в отдалении. Балансируется такая конструкция ограничением мячей в секунду, которые может принимать отбивающий.
3. Общая связка – несколько подающих на одного отбивающего, плюс от него идет цепочка отбивающих. Самый «имбовый» (слишком хороший для игрока) вариант. Дисбаланс убирается введением ограничения на число принимающих мячей отбивающим и пределом усиления урона от мяча отбивающих (даже на 3м уровне).

д) Чирлидерша

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

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

Итого, если взять замедление скорости движения врагов на 20%, и радиус действия около 3 тайлов, то движущийся по прямой крип по умолчанию преодолеет 6 тайлов за 6/0.8с=7.5, а при замедлении – на 6/(0.8/1.2)=9с.
Если посчитать, что в это время его будут атаковать минимум 2 башни, то разница в полученном юнитом уроне будет 1.5с*20*2=60. По сути связка 2 атакующих+замедляющая башня эквивалентна 3 атакующим. Однако, учитывая что сама по себе замедляющая башня не имеет ценности, то ее цена должна быть меньше цены базовой башни. Итого, цена башни-замедлителя 50 монет (у базовой башни, напомним, – 60 монет).

е) Капитан команды

Аналогично можно расчитать действие юнита, не ослабляющего врагов, а усиливающего башни игрока.
Для игрока важно видеть визуальное усиление башен, поэтому наиболее логично будет сделать увеличение скорости атаки башен.Так появился «капитан» – юнит, усиливающий скорострельность башен, действующих в зоне его атаки. Его параметры расчитываются сходным образом, чтобы начиная от определенного числа башен (минимум 2 сплешевика/боулингиста) поставить капитана было выгоднее, чем N+1 башню.

Базовый коэффициент усиления у капитана – 20%, радиус – 3 тайла. Учитывая, что логично ставить капитана, когда у нас установлены хотя бы 2-3 сильные башни, можно высчитать его стоимость. Допустим, у нас есть 2 башни-сплешевика и боулингист. Суммарная их цена – 2*100+80=280, урон в секунду – (если в радиус атаки сплешевика попадает 5 юнитов ) – 15*5*0.5=37.5, у боулингиста – 13.5*3 – если считать, что в радиус атаки попадает 3 юнита. Суммарный урон составляет около 115 единиц в секунду. При его увеличении на 20% получаем дополнительные 23 урона в секунду, что на 15% больше, чем урон от базовой башни. Тогда адекватная цена капитана, при учете того, чтобы его использование «окупилось», начиная с 3 поддержки 3 сильных башен, – 60*1.15= около 70 монет. И самое главное: по мере улучшения или установки новых башен в радиусе действия капитана, он становится все более и более выгодным.



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

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



Противники (крипы).
Понятно, что в игре также должен быть более чем один вид противников. По сути, на каждого опасного противника найдется своя контр-мера в виде новой башни, но и самые сильные башни должны иметь свои слабые места.

Рассмотрим эволюцию противников в игре подробнее.

1. Базовый крип (фитнессист), не имеет особых талантов, легко уничтожается всеми башнями.

2. Быстрый крип (бегун), если движется в одиночку, то башне со сплеш-уроном в него тяжело попасть.

3. Крип с большим количеством ХП (регбист), для его уничтожения как раз и нужен юнит «боксер».

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

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

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

7. И наконец, самый опасный крип – каратист. На время выбивает башню с поля. Обычно выбивает наиболее ценные башни, расположенные ближе всего к нему. Это заставляет игрока не увлекаться чрезмерными апгрейдами башен, и не допускать зависимости всей обороны от одной единственной башни. Хорошая контр-мера каратисту – юнит «капитан», который находясь далеко от точки появления каратиста, усиливает слабые башни, которые, в свою очередь, остаются такими же малопривлекательными для каратиста, но имеют теперь бОльший урон в секунду.

8. Крип босс. Появляется в конце каждого эпизода. Имеет чудовищно много ХП, низкую скорость, а главное снимает все очки жизни базы, если вдруг до нее дойдет. Из особенностей – в 3 и 4 эпизоде боссы увеличивают скорость движения, если их долго не атакуют, что побуждает игрока все время держать этого крипа под о��нем. Обычно появляется вместе со «свитой», другими крипами, которые заставляют игрока отвлекаться от босса и усиливать оборону по всему полю (что исключает вариант продажи башен в той части пути, которую босс уже прошел).


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

Бонусы.
Бонусы делятся на несколько типов:
1. Позволяющие переломить критическую ситуацию, когда только внешнее воздействие сможет помочь.
2. Упрощающие жизнь игрока в сложных ситуациях, если он сам правильно действует.
3. Перманентно действующие, позволяющие пропускать некритичные ошибки, позволяют игроку немного расслабиться.

Также можно их разделить по времени действия:
1. Одноразовые
2. Действующие определенный период
3. Постоянно действующие

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

1. «Остановить время» и переломить ситуацию – заморозка. Останавливает врагов, давая время башням на их уничтожение.


2. Град – уничтожает противников в определенном радиусе одним ударом. Придется по душе «тактикам», кто привык быстро и точно действовать в аркадных играх.


3. Ложный кубок – некий антипод «града», помо��ает направить врагов по ложному следу. Явно понравится любителям обмануть туповатый ИИ. Кстати, только бонусы 2 и 3 требуют точки «прицела», поэтому, по сути, являются достаточно сложными бонусами, особенно 3й.


4. Усиление атаки – помогает уничтожить толпу врагов без установки дополнительных башен. Понравится тем игрокам, которые недооценили врага, но при этом не хотят суетиться и прибегать к экстренным мерам.
5. Удвоение дохода. Поможет тем, кому все время не хватает денег на установку башен. По сути, также поможет тем, кто играет стратегически верно, но допускает небольшие просчеты с точной установкой башен, и хочет в будущем их исправить.
6. Защита базы – помогает игроку не беспокоиться о каждом юните врага и сосредоточиться на стратегии. Подойдет для тех, кто не любит метаться по всему полю и предпочитает действовать в промежутках между волнами врагов.


Таким образом, в игре все построено так, чтобы игрок всегда имел инструмент как для решения «навязанных» ему проблем (новая башня как «антидот» против нового противника или новой карты), так и имеет дополнительные возможности проявить свой талант в близких ему областях, тем самым переломив ход сражениям.

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