Есть замечательная серия статей про баланс на хабре. С нее я и начал постройку модели. Чуть позже я захотел немного свободы от математических формул. Чуя что изменения, например, в анимации повлияют на параметры атаки - в следствии чего, придется переписывать балансировку.
Решил покопаться в ресурсах суцествующих игр. Вот что я нашел в одной:
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>(); }
Волны содержат подволны (для нескольких точек возрождения) и задержку перед рождением. Подволны содержат:
- Тип юнитов
- Количество
- Частоту появления
- Задержку перед стартом
- Идентификатор точки появления
- Коэффициент переопределения жизней
- Коэффициент переопределения полученных монет
Комментарии
Отправить комментарий