Иногда «реальное» случайное событие кажется несправедливым и расстраивает игроков. Например, вероятность того, что противник с вероятностью 20% нанесет двойной урон («критический удар»). Таким образом он мог сделать 4 критических удара подряд с вероятностью 1/725. Это не так мало, как кажется.
Я надеюсь, что вероятность может быть скорректирована после каждого удара. Если игрок только что получил критическое попадание, вероятность следующего удара уменьшается. В противном случае оно увеличивается.
Есть ли математическая модель для такого поведения?
mathematics
random
probability
Лай Юй-Сюань
источник
источник
Ответы:
Возможно, вы захотите полностью переосмыслить, какие «критические попадания» делают в вашей системе и почему вы их используете. «Ну, другие РПГ используют их!» не является уважительной причиной. Одним из предупреждений о перекосе является необходимость применять все больше и больше специальных правил.
Любой случайный бонус лишает прямого тактического навыка игрока и добавляет к стратегическому планированию (разгрузка предметов РПГ, расстановка приоритетов в статистике снаряжения и т. Д.). Из-за этого смещения фокуса вы должны решить, о чем ваша игра, прежде чем беспричинно применять старые стандарты, такие как критические и беспорядочные.
Мое предложение состоит в том, что если вы хотите, чтобы случайность принимала какое-либо участие в вашей игре, тогда слава в ней, пусть она будет случайной.
Но если вы действительно хотите добавить больше произвольных правил, вы можете просто начать обратный отсчет, когда произойдет первый критический момент , и во время этого обратного отсчета все дополнительные критические значения уменьшатся до 50%, а затем до 25% и так далее. Каждый критический, конечно, сбрасывает обратный отсчет . Это дает вам два места для настройки ваших произвольных правил: сколько времени занимает обратный отсчет и сколько накоплений накапливается при каждом критическом событии. Комбинация этих двух элементов управления позволяет вам четко избежать невысказанной проблемы «что если босс получает критическое, то нормальное, а затем второе критическое значение?» что простая проверка цепочки не исправит.
источник
В Dota 2 используется PRD (псевдослучайное распределение), которое не оказывает существенного влияния на ожидание, но уменьшает шансы на полосу, например полосу ударов. Посмотрите на это, объясняет все подробно. http://www.youtube.com/watch?v=KdS-K_rosCI
источник
Я думаю, что это тот случай, когда попытка быть слишком умной приведет к спирали настроек и настроек генератора случайных чисел, что сделает его очень сложным.
Ответ может быть в вопросе: если игрок может расстроиться из-за слишком большого количества критических ударов подряд, ну, прямо уменьшите шансы на это. Если ГСЧ получает 4-й критический результат подряд, вы можете, например, перебросить его. Или даже обеспечить соблюдение
critical = false
.источник
Один довольно распространенный подход, который вы можете использовать, который должен дать результаты, к которым вы стремитесь: вместо того, чтобы бросать кубик каждый раз, вместо этого выбрать карту: предположим, у вас есть шанс 1/10 «критического отказа», шанс 4/10 отказа, шанс 4/10 успеха и шанс 1/10 «критического успеха». Тогда вместо того, чтобы бросать (метафорический) d10 и обрабатывать результат, вместо этого перетасуйте стопку из десяти (виртуальных) карточек результатов и раздайте их одну за другой всякий раз, когда вам нужно получить такой результат. Когда у вас кончатся колоды, просто перетасуйте и начните разыгрывать снова. Это все еще может генерировать спина к спине критических сбоев, но это гарантирует, что будет успех (и критические успехи) в течение некоторого разумного промежутка. Если вы хотите, чтобы все было не так очевидно (и не возражаете против небольшого шанса последовательных экстремальных результатов), вы всегда можете «удвоить» свою колоду; собрать стопку из двадцати карт, которая содержит две копии каждого результата, и перемешать их вместо этого.
источник
Байесовский вывод имеет дело с ситуацией совсем немного. Вы начинаете с распределения вероятностей для происходящего события, а затем, когда это происходит, вы обновляете эту вероятность до новой. Это априорная и последующая вероятности соответственно. Часто наиболее полезно просматривать это в виде дерева (взял это из интернета).
В дереве ветви представляют вероятность принятия этой ветви, а узлы - это событие. Итак, в вашем случае давайте сделаем A, B, C событиями критического удара с помощью атак A, B и C соответственно. Тогда P и NP будут события получения другого или нет. Мы замечаем, что в точке (B -> P) есть шанс 25% получить еще один критический удар, учитывая, что вы получили один последний ход. Конечно, ваше дерево не будет выглядеть так, но это лучшее, что я мог сделать за 5 минут.
источник
Я думаю, что уже есть несколько хороших ответов, приведенных выше, но я бы предложил другой подход.
Когда игрок наносит критический удар, вы даете ему небольшую награду, чтобы побудить к дальнейшей игре. Вроде как, как наркоман будет оставаться за покерным столом «чуть дольше» после выигрыша руки. Когда враг получает удар от критического удара, это может вовсе не увеличивать игровой опыт, а просто вызывать чувство несправедливости, особенно если это заставило его проиграть бой.
Таким образом, мое предложение было бы просто сохранить криты для игрока и вообще не использовать их для врагов. Ведь игрок является героем и должен быть благосклонен самими богами для достижения величия :)
источник
Вот случайные, но не полностью случайные методы, которые я использую.
1) Сумка в случайном порядке. Положите все действительные результаты в сумку, выберите один случайным образом и удалите его из сумки. Повторяйте до тех пор, пока пакет не опустеет, затем снова наполните пакет. Чтобы добавить обратно в случайности, пополните сумку, когда в ней осталось только Х предметов.
2) Прогрессивные проценты. Первый бросок X% вероятности, если неудача, второй бросок X + Y%, затем X + 2Y% и т. Д. Сбросьте до X% в случае успеха. И начальное значение, и прогрессия могут быть скорректированы (даже нелинейные).
3) Внутренние перезарядки. Бросьте X & шанс, если успех, не бросайте в течение следующих N секунд или M попыток или чего-либо еще. Может сочетаться с другими методами. Чтобы добавить больше случайности, сделайте несколько проверок событий с разными клоунадами, то есть сделайте 2 броска по 25% с внутренним временем восстановления 3 и 7 секунд, в отличие от 1 броска с 50% с icd 5 с (не совсем такая же вероятность, но вы можете вычислить и сопоставьте, если это важно).
4) Предварительно свернутый интервал. Вместо проверки процента по каждому событию, просто выберите, когда события происходят. Например, «этот босс атакует каждые 1d4 + 4 атаки». Работает хорошо, когда вы хотите, чтобы что-то происходило относительно последовательно и в некоторой степени случайно, но вы не хотите возвращаться назад к событиям. В некоторых случаях частный случай методов (2) плюс (3). Опять же для большей случайности вы можете иметь 2 или более перекрывающихся последовательностей.
источник