В первой части мы начали рассказывать о балансе юнитов в нашей игре жанра 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. Защита базы – помогает игроку не беспокоиться о каждом юните врага и сосредоточиться на стратегии. Подойдет для тех, кто не любит метаться по всему полю и предпочитает действовать в промежутках между волнами врагов.
Таким образом, в игре все построено так, чтобы игрок всегда имел инструмент как для решения «навязанных» ему проблем (новая башня как «антидот» против нового противника или новой карты), так и имеет дополнительные возможности проявить свой талант в близких ему областях, тем самым переломив ход сражениям.
Мы рассказали поднаготную, как все было задумано, но, конечно, не всем игрокам до конца понятны преимущества разных башен и бонусов перед другими. О том, какие средства мы для этого вводили и собираемся ввести (спасибо за полезные комментарии хабре в том числе!), мы расскажем в следующий раз, а также затронем вопросы написания бота и утилиты для бета-тестирования игры. Про монетизацию и продвижение также задумана отдельная статья.
Автор: Ineshi