К основному контенту

Баланс волн в Tower Defence



Есть замечательная серия статей про баланс на хабре. С нее я и начал постройку модели. Чуть позже я захотел немного свободы от математических формул. Чуя что изменения, например, в анимации повлияют на параметры атаки - в следствии чего, придется переписывать балансировку.
Решил покопаться в ресурсах суцествующих игр. Вот что я нашел в одной:



JSON:
[
  {
    "type": "grey",
    "frequency": 1200,
    "count": 10,
    "gold": 4,
    "health": 500,
  },
  {
    "type": "flyer",
    "frequency": 1200,
    "count": 10,
    "gold": 4,
    "health": 488,
  },
  {
    "type": "grey",
    "frequency": 1200,
    "count": 10,
    "gold": 4,
    "health": 807,
  }
]

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

Я, недалеко ушел от этого подхода. Башни, имеют постоянные значения урона, враги -начальные значения, которые могут корректироваться настройками уровня.

Башни.
Постоянные значения урона, я задавал используя формулы подобные тем что в статье (на самом деле уже не вспомню). Еще привинтив "треугольник" (Есть 3 типа юнитов, один тип более подвержен одному урону и стоек к другим).

Уровень.
Задается начальное количество денег.

Волны.

public class SubWave
{
    public int unit = 0;
    public int count = 5;
    public float freq = 1.5f;
    public float delay = 0f;
    public int node = 0;
    public int hp = 0;
    public int gold = 0;
}

public class Wave
{
    public int delay = 5;
    public List<SubWave> subWaves = new List<SubWave>();
}

Волны содержат подволны (для нескольких точек возрождения) и задержку перед рождением. Подволны содержат:
  • Тип юнитов
  • Количество
  • Частоту появления
  • Задержку перед стартом
  • Идентификатор точки появления
  • Коэффициент переопределения жизней
  • Коэффициент переопределения полученных монет

Комментарии