Добрый день, я решил сделать игру. Я понимаю, что вы не раз видели такие вопросы на форумах и уже устали отвечать на них «купи книжку по программированию», но мой вопрос не об этом.
Итак я достаточно хорошо понимаю все технические детали создания игры которую задумал. Меня интересует вопрос составления игрового баланса. Я вот хочу сделать простую, даже очень простую пошаговую стратегию. В моих планах одна раса и 3-5 видов юнитов. Ну или допустим две расы, но это пока максимум.
Собственно вопрос, как сделать игру сбалансированной. Есть «классическая» система камень ножницы бумага, где допустим есть юнит А Б В, где А валит Б, Б выигрывает у В, а В силен против А. Есть вариант регулирования «возможностями». Например А вдвое мощнее Б, но втрое дороже стоит. Ну или Б дальше ходит. Или что-то еще.
На сколько я могу осознать задачу готового рецепта создания баланса быть не может. Но может есть хотя бы способы его как-то оценить и сказать «вот этот юнит слишком силен и дешев». Или еще что-то типа того.
В общем я буду благодарен любым советам и ссылкам и направлениям поиска. Матан приветствуется. Пока гуглю какое-нибудь приложение к этому вопросу теории игр.
Теоретически, «баланс» означает, что размер (в условной метрике) решения для каждого варианта одинаковый. Напишите алгоритм решателя, сформулируйте метрику и запускайте считаться.
Видимо моих воспоминаний университетских курсов недостаточно, чтобы применить вашу подсказку к идее. Алгоритм решателя это что-то вроде AI который будет гонять разные стратеги игры? Для всех стратегий размер не может быть одинаковым, ведь есть оптимальные стратегии где победа ближе и не оптимальные где дальше. Как вводить метрику оптимальности?
В общем вы не могли бы как-то шире раскрыть вашу мысль? Я буду очень благодарен.
Напишу, как я понял amarao.
Допустим, урон — это imba * 2.
А защита — это imba * 1.7.
Т.е. если у юнита 22 атаки и 32 брони, то у него 22 * 2 + 32 * 1.7 imba.
Где imba — тот самый размер баланса.
Как в большинстве подобных игр, с распределением юнитов по ролям: толстый юнит ближнего боя, тонкий дальнего, лечащий/воскрешающий, бьющий по области, ослабляющий врагов. Итого уже 5 видов, дальше можно надобавлять усиливающего своих, бьющего редко но мощно по одной цели, игнорирующего броню, ну и так далее. Таком образом, эффективно не спамить самого мощного, а именно комбинировтаь разных. Ну а как именно каждый из них будет влиять на бой — тюнить цифрами.
Натравливать ИИ друг на друга с разными наборами юнитов (но одинаковой стоимостью армии) множество раз, оценивая зависимость коэффициента побед от преобладания какого-то юнита. А затем, основываясь на результатах, ослаблять параметры преобладающего юнита (или увеличивать цену) в самых победных наборах. До тех пор, пока не перестанут попадаться однозначно «победные» наборы. Ну это, конечно, при условии, что игра настолько проста, что тактика игры ИИ не сильно отличается от игрока. Дальше возможна такая же схема, но на основе статистики человеческих боёв.
Я недавно читал, что именно такую схему применяют для изменения баланса в WOT. К сожалению ссылки не нашел сходу, но смысл именно такой — накапливаем статистику по выживанию юнита в бою/исхода боя. Смотрим перекосы, и ослабляем «слишком сильные» классы, и усиливаем «слабые». При этом можно учитывать роль юнита (танк, ДД, хил/ светляк, проддержка, тяж).
Я как-то искал материалы по составлению баланса, но ничего толкового не нашёл. Самому тоже придётся этим занятся через несколько недель. Могу только поделиться своими соображениями.
Если каждого юнита представить набором характеристик таких как урон, скорость и стоимость, то перемножение всех этих величин даст некую оценку юниту (точнее перемножить все «хорошие» характеристики и разделить на «плохие», в данном случае стоимость).
Если выравнить эти оценки юнитам, то возможно получим баланс.
Другая идея это составление кросс таблицы (матрицы), где столбцы враги, а ряды юниты, а в ячейках расчёт того, как эффективно данный юнит уничтожит данного врага. Это для подхода камень-ножницы-бумага. Должно быть, чтобы каждый юнит имел максимум эффективности против конкретного врага.
Третий вариант это просто играть и делать изменения на глаз. Для очень сложных игр просто невозможно просчитать баланс (таких как стар крафт).
> Если выравнить эти оценки юнитам, то возможно получим баланс.
Их нельзя выравнивать. Потому что полочится скучно. Надо выравнивать для всей рассы сразу.
А если расса одна, то да, возможно стоит выровнять. Иначе все будут спамить самого эффективного юнита.
Ну а вообще. Кол-во стратегий должно быть максимально большим. Тогда интересно играть)
> Другая идея это составление кросс таблицы (матрицы), где столбцы враги, а ряды юниты, а в ячейках расчёт того, как эффективно данный юнит уничтожит данного врага
Клевая идея. А то иногда получается что «против лома нет приема». Надо чтобы был у каждой рассы другой лом ;)
В любой игре, как и в реальной жизни есть разные ресурсы. В реальности это время и деньги. В играх это часто какое-то золото, игровое время и т.д.
Для этого нужно запрячься в эксель ;)
Чтобы был баланс нужно:
1) Для каждого юнита высчитать его эффективность. Полезность/стоимость
2) Определить общую меру для все юнитов рассы.
3) СДелать так, чтобы в сумме у расс были одинаковое кол-во «поинтов».
Допустим, чтобы был баланс, нужно посчитать, сколько поинтов будет у каждой рассы после там 30 ходов.
Для этого загружаем линейное уравнение в эксель и просчитываем солвером все стратегии развития.
По результатам очки должны быть примерно равными. Тогда будет баланс.
Для тренеровки можете попробовать ввести такую модель для какой-то игры которую вы знаете хорошо.
На ДТФ есть несколько статей по игровому балансу — почитайте их. Материал неплохой.
Лично, я баланс регулирую в калькуляторе характеристик, т.е. делаю заготовку расчёта характеристик для каждого юнита и прогоняю в тестовом бою. И так для каждого юнита.
Почему именно так? Потому что позволяет изначально понять читерские варианты.
Думаю, это одна из самых интересных и творческих моментов в игре — продумывание баланса. Стратегии никогда не писал, зато это мой любимый жанр в плане поиграть, так что, по своему опыту скажу — в понятие сбалансированности игры нужно внести в том числе и возможный рельеф. Даже в одной из самых сбалансированных стратегий — в старкрафте 1, существуют «имбалансные карты», где одной рассе играть проще, чем другой, не смотря на то, что близард потратила ни один год на балансировку, а баланс старкрафта второго вообще не отделим от карт, на которых играют.
Мне понравилось предложение Eternalko, а именно — приглядитесь к играм, которые вы хорошо знаете.
Здесь, я бы повёл речь не только о самой игре (т.е. юниты, их характеристики и т.п.), но и о разработчиках — многие из них имеют свои блоги, в которых описывают свой опыт и проблемы, с которыми пришлось столкнуться. Кроме того, если блогов нет, можно попробовать связаться напрямую.