Геймдизайн. Математика. Бернулли

Ну что, геймдизайнеры… Пригодилась математика все-таки. Нет, конечно, можно настроить баланс выпадения предметов просто по наитию, но ведь лучше подкрепить свои тыки пальцем в небо какими-то вычислениями. Желательно чтобы они имели смысл и были логически верными, а не как в школе, когда ответ знаешь и осталось придумать какое-нибудь решение. На самом деле все просто: вам нужна одна простая формула. Знакомьтесь, формула Бернулли!

Геймдизайн. Математика. Бернулли

Не все так плохо

Наверное стоит начать с того, зачем она вообще нужна. Формула Бернулли позволяет найти вероятность появления некоторого события определённое количество раз при нескольких независимых испытаниях. Она помогает избавиться от большого числа вычислений — сложения и умножения вероятностей — при достаточно большом количестве испытаний. Стало ли понятнее? Не думаю…

На самом деле формула только выглядит страшно. С ней очень просто работать, не сложнее числа сочетаний и размещений. Давайте будем разбирать на примере, ведь так проще и понятнее.

В игре есть карточка (назовем её “Сила духа”), которая выпадает с вероятностью 10%. Игрок открывает 50 карточек. Мы хотим, чтобы он вытащил из них 2 карточки “Сила духа”. Какова вероятность, что это произойдет?

Задача для воображаемой игры

Расчехляй калькулятор

Мы уже готовы считать и полны уверенности в себе. Однако, перед тем как начать, давайте разберем что такое n! и зачем она на нас кричит. На самом деле это факториал —математическая операция, представляющая собой произведение натуральных чисел от 1 до n. Например 3! = 1 * 2 * 3. А вот 100! посчитать ручками проблемно, но как же славно, что в вашем калькуляторе есть соответствующая кнопочка. Теперь можно и к подсчетам перейти.

Итак, n = 50, k = 2, p = 0.1, q = 0.9 (потому что q = 1-p). Все переменные на руках, теперь заряжаем это в формулу и получаем 7.79%. Все работает! Остальное игрок докупит в магазине и вообще, целых 7%! В World of Warcraft встречаются шансы выпадения меньше 1%. Так ведь? Не совсем. Хочу тебя расстроить — мы посчитали лишь шанс точного выпадение именно 2-х карточек при 50 попытках. Что если игрок вытащит 3 карточки? Ведь это тоже будет выполнять условие “игрок получит 2 карточки”.

На самом деле нам нужно посчитать формулу Бернулли для всех подходящих нам исходов и сложить полученные вероятности, чтобы получить итоговую вероятность. Нам подходят:

  • Выпало 2 карточки
  • Выпало 3 карточки
  • Выпало 50 карточек
Геймдизайн. Математика. Бернулли

Итак. Посчитали. Получили 78.5%. Довольно весомый результат! Почти гарантировано игрок сможет получить 2 карточки за 50 попыток. Что дальше? А что хотите — говорите, что это много или мало. Если вы хотите сделать какой-то супер джекпот в игре, то делайте так, чтобы вероятность не была выше 5-10%. Если хотите сделать что-то более регулярное — то 60+% вам подойдут.

Вот пример на редкость выпадения: в настольной игре нужно создать правило для получения джекпота. Его вероятность должна быть не более 3%. В игре используется кубик d6. Решение: бросаем кубик два раза. Должно выпасть два раза подряд число 3. Вероятность этого равна 2.78% — условие выполняется.

А вот и пример про что-то регулярное. Игрок открывает 100 коробок со случайными патронами. Если вероятность выпадения патронов для пистолета 10%, то с какой вероятностью из 100 коробок игрок получит хотя бы 10 для пистолета? Считаем по формуле и получаем ответ — 54,87%. Вот так все просто.

Геймдизайн. Математика. Бернулли

Бонус в студию

Если вы думали, что я заставлю вас все считать вручную, то вы жестоко ошибаетесь! Конечно же я подготовил для вас гугл табличку, которая все считает сама — нужно только исходные данные ввести. Как ввести, если у вас есть права только для чтения документа? Сделайте себе копию. Берите и пользуйтесь, мои дорогие. Надеюсь, эта табличка поможет вам не один раз.

А если хочешь узнавать еще больше интересных и полезных штук по гейм-дизайну, да и не только, подпишись на наш телеграмм-канал. Там я пишу про гейм-дизайн и прочие интересные вещи, а также у нас есть: крутой CMO, который расскажет тебе за маркетинг и бизнес, опытный HRD с подборками вакансий, и наш квалифицированный мемолог-переводчик, делающий канал не только познавательным, но и веселым. Мы ждем тебя, присоединяйся!

Подписался на Gamedev Dungeon и стал применять статьи в работе
Подписался на Gamedev Dungeon и стал применять статьи в работе
4242
12 комментариев

Неужели на ДТФ интересный пост по теме. Спасибо большое автору. Только на днях общался с челом, который уверял что только в нашей стране увязывают программирование и математику, а она типо нах не нужна. Я привел свой пример по рандомизация уникальных идентификаторов (пример из моей старой разработки) на что он ответил что это частный случай и такое требуется раз на тысячу задач… А мол все мировые разработчики это в основном гуманитарии и художники… Не стал спорить, попросил как гуманитария показать что-нибудь стоящее из своего, но он слился.
Пы .Сы. Математика - царица всех наук!

5
Ответить

А если как тех арт шейдаки пилишь стилизованные, то там математика ещё сильнее нужна. По крайней мере векторные операции хотя бы.

1
Ответить

Комментарий недоступен

Ответить

Комментарий недоступен

1
Ответить

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

1
Ответить

Респект за статью! К сожалению, повышать грамотность среди геймдизов очень даже нужно. А то у некоторых расчеты как у синоптиков - "Либо выпадет, либо нет, че пристал?!" :)

1
Ответить

так это база, в корейских ммо рандом так и работает, либо заточилось, либо хуй, другого не дано

Ответить