ТАБЛИЦА БАЛАНСА

ТАБЛИЦА БАЛАНСА

Не помню точно, но вроде Билл Гейтс говорил, что иногда на работу надо нанимать ленивых людей — они обязательно будут думать над оптимизацией процессов.

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

Поэтому и рождаются подобные таблицы)

Основа баланса в данном случае принцип «Камень, ножницы, бумага». В игре не должно быть Noob Saibot-ов.

Я ввожу три класса космических кораблей:
- Снайпер бьет танк
- Танк бьет перехватчика
- Перехватчик хватает за жопу снайпера


В данной (первой) таблице показано распределение базовых значений, которые регулируют ядро баланса.

В следующей таблице задается общий параметр для всех характеристик (значение 130). Этот параметр увеличивается с получением нового уровня.

Например:
100 на 1lvl,
130 на 2lvl,
150 на 3lvl,
160 на 4lvl,
165 на 5lvl
и т.д.

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

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

130 / 6 * 2 = 43

Далее, чтобы внести немного разнообразия и привести цифры к нормальному виду, формула преобразует их уже в реальные (итоговые) характеристики, которые будут отображаться в интерфейсе игрока. Параметры из средней таблицы умножаются на свою константу для каждой характеристики. НО, в третьей таблице в строке скорости меня не устраивала слишком большая разница в показателях скорости, поэтому я решил поэкспериментировать :)

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

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

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

Все это конечно записано формулами и просчитывает характеристики заново каждый раз при изменении общего параметра из средней таблицы.

Что касается констант 100 (для дпс) и 300 (для брони) — подумалось, что в среднем для уничтожения корабля нужно 3 попадания, для начала пусть будет так.

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

Посмотрим на все таблицы сразу.

Далее каждый из параметров можно делить, создавать новые формулы и ответвления, можно добавлять новые навыки и показатели корабля. Можно ввести дополнительную таблицу расчета радиальной скорости и шанса попадания по кораблю на орбите и т.д. И если понадобится — лучше уж пусть формула считает! :)

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

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

Карочи.
Вот за что я люблю математику и функции, так за автоматизацию)

Характеристики на 3 уровне.