Вот наконец-то готов немерянно длинный и подробный ответ (несколько дней писал):
Предположим такую несложную схему: Два воина сражаются в ближнем бою. Просто лупят друг друга ни на какие специальные приёмы не отвлекаясь. Шанс попасть по противнику равен 50%. А и З - атака и защита, увеличивают шанс попасть по противнику и шанс уклониться от атаки на соответствующее количество % П - урон при попадании Б - броня, уменьшающая урон Ж - количество жизни, которое нужно довести до 0, чтобы противник помер Бой ведётся по раундам, за каждый раунд противники бьют друг друга по 1 разу. Среднее количество раундов, необходимое, чтобы противник 1 угробил противника 2 будет равно:
(100*Ж2) / ((50+А1-З2)*(П1-Б2))
Равные по силе противники будут убивать друг друга за равное количество раундов, то есть:
(100*Ж2) / ((50+А1-З2)*(П1-Б2))=(100*Ж1) / ((50+А2-З1)*(П2-Б1))
Вот такая будет формула для расчёта баланса в этом простейшем случае.
Теперь определим ценность первого удара. Если первым всегда атакует противник 1, то он угробит противника 2 на 1 раунд раньше, и формула будет такая:
(100*Ж2) / ((50+А1-З2)*(П1-Б2)) -1=(100*Ж1) / ((50+А2-З1)*(П2-Б1))
Если первым атакует противник с большей инициативой (И=0..100), то такая формула:
(100*Ж2) / ((50+А1-З2)*(П1-Б2)) - (И1/100)=(100*Ж1) / ((50+А2-З1)*(П2-Б1)) - (И2/100)
И наконец, если противник 1 обзавёлся предположим аркебузой, которая стреляет 1 раз за Н раундов, атака при стрельбе обратно пропорциональна расстоянию Р до цели, и противнику 2, чтобы вступить в схватку, необходимо преодолеть разделяющие их расстояние Р со скоростью С. В этом случае, к началу ближнего боя Ж второго противника уменьшится на величину:
((50+А1(стрельбы на расстоянии Р/2)-З2(от стрельбы))*(П1(от стрельбы)-Б2(от стрельбы))*Р) / (100*Н*С2)
Всю эту замечательную строчку мы подставляем в выведенную ранее формулу (Ж2-...). На этом пожалуй стоит остановиться, не уверен, что у меня получится учесть в формулах магию, манёвры и бой более чем двух противников. Но и этого вполне достаточно, чтобы делать какие-то выводы. Для пущей простоты воспользуемся самой первой формулой:
(100*Ж2) / ((50+А1-З2)*(П1-Б2))=(100*Ж1) / ((50+А2-З1)*(П2-Б1))
Для начала рассмотрим один частный случай, из которого может получиться несколько любопытных заблуждений. Есть два абсолютно равных противника:
Противник 1 (А=10 З=10 П=10 Б=0 Ж=100) Противник 2 (А=10 З=10 П=10 Б=0 Ж=100)
Теперь если мы у противника 2 будем изменять А и З так, чтобы их сумма оставалась постоянной (например, А=15 З=5), или точно также менять П и Б (П=3 Б=7), то увидим, что противники остануться по прежнему равны (не верите - посчитайте). Из этого можно бы сделать вывод, что А имеет абсолютно такое же значение, что и З, а П то же, что и Б. Однако такая фигня уместна только в этом частном случае. Например, прибавляя 10 А или 10 З противнику 2, мы получим разные результаты. В первом случае противник 2 станет сильнее в 1,2 раза, а во втором - в 1,25 раза. П и Б ещё круче, если увеличить П противника 2 на 10, он станет вдвое сильнее, а если на 10 увеличить Б, то будет вообще непобедим. Следовательно: неправильно считать, что можно сохранить точный баланс, распределив, например, Х очков развития между характеристиками даже и с какими-то коэффициентами. Также, не будут равны заклинания, увеличивающие или повреждающие характеристики.
Далее, возьмём теперь уже трёх противников:
Противник 1 (А=10 З=10 П=10 Б=0 Ж=100) Противник 2 (А=0 З=0 П=25 Б=5 Ж=30) Противник 3 (А=40 З=0 П=5 Б=0 Ж=150)
Противник 1 равен по силе противнику 2, и равен по силе противнику 3. Но, если будем сравнивать противника 2 и противника 3, то выясним, что равенства никакого. Противник 2 для противника 3 абсолютно непобедим! Следовательно: затруднительно (а может быть и невозможно) сгенерить нескольких героев с разными характеристиками так, чтобы они были равны между собой.
И такой мой личный вывод: точный математический баланс может быть очень интересным развлечением для генерации ограниченного числа противников с фиксированными характеристиками, как например в стратегиях. Для ролевых игр с большой свободой и разнообразием существ, противников и перков-умений такая вещь, видимо, невозможна, либо требует недоступных мне математических и статистических познаний.
|