💥 Buckshot Roulette: пораскинем мозгами? 🤯

Сегодня вместе предлагаю обсудить нашумевшую игру про «русскую рулетку» Buckshot Roulette (2024): почему простоватый геймплей так затягивает, как игра заставляет игрока думать и почему дилер очень неправ. Как всегда, приятного чтения!

$60К

Для тех, кто про игру слышит впервые, предлагается обучающая кампания. Милейший дилер быстренько объясняет правила. Вот дробовик, вот набор патронов: несколько боевых и часть холостых. Они в случайном порядке попадают в дробовик. А потом игроки по очереди стреляют.

Попал по противнику — убрал единичку здоровья.

Можно попробовать стрельнуть по себе: если там холостой патрон, то ты сохранишь ход.

Правила просты и понятны? Распишитесь — и пора играть!

А чтобы игра была веселее, когда оружие перезаряжается, обеим сторонам подбрасываются полезные предметы. Лупа позволит подсмотреть следующий патрон. Нож — удвоить урон. А пиво — сбросить текущий патрон без выстрела.

Запоминая количество боевых и холостых патронов, грамотно используя комбинации предметов, нам без труда удастся выиграть чемоданчик денег. Конец? Или это только начало...

Этюды в багровых тонах

Самое интересное начинается в бесконечном режиме. Победа в трёх раундах подряд удвоит сумму. Игрок в каждом раунде всегда ходит первым — это преимущество. Но если мы проиграем — то потеряем всё.

В стимовской версии тут больше предметов: например, появился инвентор, меняющий тип следующего патрона на противоположный.

Поэтому хитрые комбинации предметов типа лупа+инвентор+нож дают гарантию в два урона.

Если хотите, я предлагаю вам чуть-чуть подумать, пока мы обсуждаем, как же подчинить упрямую вероятность.

Этюд 1. 1+2

Вот классическая ситуация, с которой вы столкнётесь кучу раз.

Предметов нет, у вас с противником по 2 здоровья, в магазине осталось три патрона: один боевой и два холостых. Как поступить?
Выстрелить в себя, ведь шанс промахнуться и сохранить ход — 2/3.
Выстрелить в противника, несмотря на шанс попасть 1/3.

Запомните свой ответ, к этой задачке мы вернёмся позже. А пока давайте посмотрим на более абсурдную ситуацию.

Этюд 2. Очень гениальный план

Не успеваете вы хоть что-то сделать, как дилер достаёт и заряжает целую пулемётную ленту. Вы замечаете, что там 100 патронов и только 1 из них боевой. У вас с противником по 1 здоровья и лупа.

В голову врывается мысля. На каждом ходу имеет смысл стрелять в себя, ведь шанс стрельнуть в себя холостым и сохранить ход выше, чем попасть в противника. А когда останется 2 патрона, лупа посмотрит следующий патрон и гарантирует победу. Здорово придумано?

Попробуйте оценить шансы на выживание при такой стратегии.
99%
98%
51–97%
50%
3–49%
2%
1%

Решение

Никаких сложных расчётов тут делать не нужно. Боевой патрон может быть на одной из 100 позиций. Мы стреляем в себя 98 первых патронов. Значит, только в 2 случаях из 100 мы выживем: если боевой патрон последний или предпоследний. Так как все случаи равновероятны, то это даёт шанс в 2/100 = 2%.

Почему же так получилось? Мы ведь действовали оптимально на каждом ходу! А может, остальные стратегии ещё хуже? Скоро мы это обсудим.

Этюд 3. Поножовщина

Что может быть скучнее случая 1+1 и 2 единиц здоровья? Когда в магазине по одному боевому и холостому патрону, шансы выиграть или потерять очко здоровья равны. И никто не умрёт.

Легенда: 🟩 — наш ход, 🟥 — ход противника, 🏆—  нанесли урон врагу, 💀 — нас ранили.
Легенда: 🟩 — наш ход, 🟥 — ход противника, 🏆—  нанесли урон врагу, 💀 — нас ранили.

Но что, если у вас обоих игроков есть нож (удваивающий урон при применении)? Меняет или это что-то?

💥 Buckshot Roulette: пораскинем мозгами? 🤯
В магазине 1 боевой, 1 холостой, у вас и противника 2 здоровья и нож. Как поступить?
Выстрелить в противника.
Использовать нож и выстрелить в противника.
Выстрелить в себя.
Использовать нож и выстрелить в себя???

Решение

Нужно понять, что меняет нож. А именно, создаёт разницу при стрельбе в противника и себя. Если мы достаточно разумны, то не будем использовать нож при стрельбе в себя, а, значит, потеряем лишь 1 здоровья вместо потенциальных 2 от противника. На следующий этап могут прийти новые полезные предметы, которые увеличат шансы на победу.

Если стрельнем в себя, то точно не умрём. По крайней мере, один ход 😅
Если стрельнем в себя, то точно не умрём. По крайней мере, один ход 😅

Что ж, вернёмся к нашему первому этюду. Если вы вдруг изменили своё мнение, вот вам возможность переголосовать:

Предметов нет, у вас с противником по 2 здоровья, в магазине осталось три патрона: один боевой и два холостых. Как поступить?
Я всё ещё выстрелю в себя, так как шансы промахнуться больше.
Я всё ещё выстрелю в противника, несмотря на шансы на текущем ходу.
Я передумал и решил выстрелить в себя.
Я передумал и решил выстрелить в противника.

Для решения нам понадобится обратиться к крайнему средству, а именно к... математике! А точнее, теории игр. Страшно? :)

Чуть-чуть обозначений, и мы выведем формулу победы. Пусть R[n,m] — это средняя ожидаемая разница в здоровье между игроками, когда в магазине n боевых и m холостых патронов. A[n,m] и B[n,m] — это две стратегии: выстрелить во врага или в себя. Тогда если в игре нет предметов, ходы описываются вот такой красивой формулой:

💥 Buckshot Roulette: пораскинем мозгами? 🤯

При стратегии A у нас шанс n/(n+m) снять единичку здоровья у противника. Вне зависимости от результата, ход перейдёт ко врагу и уже тот будет снимать у нас здоровье, поэтому появляется знак минус. При стратегии B мы можем потерять лишнее здоровье, но с шансом m/(n+m) сохранить ход.

Немного магии преобразований, и получим:

D здесь — это дискриминант: если D > 0, то надо стрелять во врага, если D < 0, в себя.
D здесь — это дискриминант: если D > 0, то надо стрелять во врага, если D < 0, в себя.

Теперь возьмём наш случай: n = 1, m = 2:

💥 Buckshot Roulette: пораскинем мозгами? 🤯

R[1,1] = 0, так как у обоих игроков шансы получить по пуле равны. R[0,2] = 0, потому что нет боевых патронов. Отсюда D = 1 и R[1,2] = 1/3.

Вот это неожиданность! Если стрелять во врага, то шанс 2/3 выиграть очков здоровья и лишь 1/3 проиграть. Но почему? А всё дело в том, что надо учитывать не только текущий ход, но и будущий. Действительно, если мы стреляем во врага, а тот стреляет в ответ, у нас появляется ещё один ход! Где с шансом 1/3 как раз будет лежать патрон. Дело раскрыто :)

Итого:. A = 1/3 🏆 + 2/3 * (1/2 🏆 + 1/2 💀)  = 2/3 🏆 + 1/3 💀. B: 1/3 💀 + 2/3 * (1/2 🏆 + 1/2 💀)  = 1/3 🏆 + 2/3 💀.
Итого:. A = 1/3 🏆 + 2/3 * (1/2 🏆 + 1/2 💀)  = 2/3 🏆 + 1/3 💀. B: 1/3 💀 + 2/3 * (1/2 🏆 + 1/2 💀) = 1/3 🏆 + 2/3 💀.

Кстати, в игре дилер при такой ситуации стреляет в себя. Казалось бы, такая большая голова, а в математику не может...

Повзрываем?

Но теперь, возможно, у вас возник другой вопрос. Неужели вся так называемая игра — это ложь? Ведь можно просто составить таблицы оптимальных ходов для каждой ситуации.

Тут я могу ответить одно:

💥 Buckshot Roulette: пораскинем мозгами? 🤯

Давайте сделаем очень грубый подсчёт. Обычно дилер кладёт холостых и боевых поровну, или холостых на 1 больше. С учётом инвентора, это где-то 30 ситуаций. У каждого из двух игроков может быть итого 8 предметов из 9 видов — это (9^8)^2 вариантов. И перемножив получим, что нужно просчитать всего лишь

46 000 000 000 000 000
вариантов.

Конечно, многие варианты — это крайности: вряд ли вам попадутся все предметы одного вида. И всё же число великовато, чтобы всё вместить в голову.

Такие числа возникают из-за комбинаторного взрыва: при комбинации даже небольшого количества вариантов (количества и видов предметов) числа возводятся в степень, что и даёт кучу нулей.

Так что думать над каждым ходом всё ещё придётся :P

Buckshot Roulette — отличная игра. При своём небольшом контенте она умудряется генерировать миллионы уникальных ситуаций, заставляя сотни тысяч людей заниматься в уме математикой. Что может быть прекрасней? :)

Конечно, игра не без недостатков. Мне вот очень не хватает сохранения для затяжных боёв. Хотя я понимаю: тогда будет искушение скопировать сделанное сохранение. Некоторым покажется визуал грязноватым.

И всё же Майк Клубника хайпанул, и, может, люди теперь откроют для себя его другие, артхаусные и немного пугающие, проекты. Ну и ждём мультиплеер.

Статья про игру Buckshot Roulette (2024)

142142
48 комментариев

Зашел прочесть статью про игру, получил краткий математический ликбез...

31

ДТФ образовательный :)

10

Это всё очень хорошие рассуждения, но мы не знаем, насколько игра мухлюет с вероятностями. Может быть такое, что игра при сортировке патронов отдаёт предпочтение холостым в начале. Нужна статья от кого-то, кто отревёрсит код игры.

9

Это было бы немного разочаровывающе :(

2

Не особо сильно она меня затянула. Проиграл только самую первую дуэль, пока не разобрался. Игра очень легкая, а бот порой совершает очевидно глупые вещи. Я жду здесь мультиплеер, поиграю с друзьями. А выбивать ачивку "набть 10к денег" просто скучно.

2

бот порой совершает очевидно глупые вещи

25

С людьми будет явно интереснее :)

1