Боевой баланс
| |
Santehnick | Дата: Вторник, 27 Августа 2013, 16:09 | Сообщение # 1 |
уже был
Сейчас нет на сайте
| Здравствуйте уважаемые форумчане. Пишу сюда, в надежде, что кто-нибудь сможет мне помочь. Суть игры, сражения между двумя игроками. Изначально мне требуется получить простой боевой баланс между двумя игроками, но довольно прозрачный, на данном этапе у игрока есть 3 характеристики сила/ловкость/выносливость, каждую из которых он может прокачивать по мере игры. Эти характеристики порождают в свою очередь дополнительные характеристики, таким образом
Сила - урон Ловкость - шанс увернуться от удара Выносливость - жизни персонажа
Баланс должен состоять в том, что увеличивая любую из этих характеристик (сила/ловкость/выносливость) на равное количество очков, результат боя не должен меняться. Это говорит о том, что 10 Силы = 10 Ловкости = 10 Выносливости, то есть если один игрок прокачал 10 силы, а другой прокачал альтернативный стат например 10 ловкости, то они должны быть равны, иметь вероятность победы друг над другом в районе 50%.
То есть, игрок с характеристиками
сила 10 ловкость 3 выносливость 3
Должен быть равен игроку
сила 3 ловкость 10 выносливость 3
Теперь давайте решим подобную простую задачу, чтобы посмотреть, что два игрока на теории равны между собой.
Пусть у каждого игрока будет по 40% блока, тогда их вероятность нанести удар (мимо блока) равняется 60%. Пусть у первого игрока будет урон равен 10 единиц. У второго игрока урон равен 7 единиц, а также он имеет 30% шанс на уворот. Таким образом получаем, что второй игрок имеет на 30% большую выживаемость в бою, но при этом на 30% более слабый урон. Посчитаем
Урон первого составит 10*0,6*0,7=4,2 урона
где 10 - это урон первого 0,6 - вероятность нанести удар мимо блока 0,7 - вероятность попасть по противнику, поскольку второй имеет 30% шанс уклониться от удара, то вероятность попадания первого по второму 1-0,3 = 0,7
Урон второго составит 7*0,6=4,2 урона
где 7 - урон второго 0,6 - вероятность нанести удар мимо блока
Казалось бы, теоретический баланс достигнут, оба игрока равны между собой, но как бы не так. Написав боевой калькулятор и проводя бои в автоматическом режиме, выходит, что второй игрок имеет преимущество, просто за счет того, что шанс уклониться от удара рассчитывается раньше, чем попадание. Если простыми словами, то событие "уворот" наступает раньше, чем событие "попадание", т.е. если у одного выпал шанс увернуться, а у второго выпало попадание по противнику, то естественно предпочтение отдается тому, у кого выпал шанс увернуться. Не знаю как еще попроще объяснить, ну то есть событие "уворот" перекрывает ровно половину ударов, которые могли бы быть засчитаны, за счет того, что рассчитывается первым. То есть если первому игроку в нашей ситуации добавить 15% уворота, тогда они будут равны на практике, но не равны на теории, естественно это неправильно и делать этого нельзя. Еще на первый взгляд может показаться, что раз шанс уворота в два раза эффективнее удара, то можно шанс уворота умножать дополнительно на коэффициент 0,5, тоесть 30*0,5 = 15%, но это те же грабли, только наоборот. Делать этого нельзя, потому что есть еще выносливость и тогда ловкость против выносливости будет несбалансированной. То есть грубо говоря нужно как-то сделать, чтобы шанс увертывания против силы должен быть в два раза слабее, так как рассчитывается раньше и быть при 30% как бы 15%, но при этом против выносливости шанс увертывания должен быть те самые 30%, только тогда достигается баланс.
Следовательно мне нужно уравнять их шансы, какие предложения?
|
|
| |
Valter | Дата: Вторник, 27 Августа 2013, 21:58 | Сообщение # 2 |
почетный гость
Сейчас нет на сайте
| Здравствуйте.
Вывод: 10 уворота != 10 удара.
Вносить корректировки, умножение на коэффициент 0.5, отнюдь не грабли, а необходимость.
Может наведёт на мысль: Почему в играх за 1 очко прокачки - дают одну силу или 10 хп, почему не 1 хп? Ваша ситуация аналогична.
Либо за прокачку давайте меньше ловкости, либо применяйте коэффициент. Либо меняйте принцип боя:
Не каждый равен каждому, а КНБ - камень ломает ножницы, ножницы режут бумагу и т.д.
|
|
| |
beril | Дата: Понедельник, 02 Сентября 2013, 14:31 | Сообщение # 3 |
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
| Я так понял 1 ед ловкости = 1% уворота?
Цитата (Santehnick) иметь вероятность победы друг над другом в районе 50%. Возможно стоит ввести рандом? К примеру: верхний и нижний порог урона, ну и т.д
Накодил? Убери за собой! Инвентарь в Unity(UI) Инвентарь в Unity(GUI)
|
|
| |
Ordan | Дата: Вторник, 03 Сентября 2013, 02:43 | Сообщение # 4 |
Главный зомби
Сейчас нет на сайте
| Цитата (Santehnick) ну то есть событие "уворот" перекрывает ровно половину ударов, которые могли бы быть засчитаны, за счет того, что рассчитывается первым. Потому что надо с начало делать проверку попал ли игрок по врагу если попал то враг делает уворот, сработал? значит не попал, несработал? попал
Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)
Мои проекты ТЫК Мои видяхи на ютубэ ТЫК
Если ты споришь с идиотом, вероятно тоже самое делает и он.
|
|
| |
|