Pull to refresh

Comments 29

World of Tanks — классический пример современного баланса маркетинга и «патент Кислого» как способ привлечения игроков денег.
Дисбаланс создается намеренно!
Да, давно пора сделать баланс: все танки станут круглыми, с одинаковой скоростью и одинаковым оружием.
Различаться будет только броня и хп от уровня к уровню: (10*lvl) мм брони и (100*lvl) хп.
Баланс? Да.
Стало интересно? /irony
PS особенно прекрасно упоминание «патента кислого» в контексте «Если вероятность того, что юнит выиграет бой составляет три к одному, большинство считает, что он должен победить, хотя с вероятностью 25% случится обратное. И если юнит проигрывает, они чувствуют себя обманутыми.»: текст патента доступен, но читать его могут не только лишь все, проще довериться ноющим блоггерам, которые не умеют в матстатистику. Просто прикинуть, сколько серверов нужно для обсчёта режима угнетения в танках тоже дано не каждому.
Посчитайте ПИКОВУЮ(когда он затыкается и очередь растет) производительность одного балансировщика ВоТ по доступным данным, сопоставьте с озвученной ВоТ логикой и будете сильно удивлены.
Вряд ли буду удивлён: если какой-нибудь марафон и половина выезжает на определённом классе, а в параметрах балансера — выпустить в бой 4 (или сколько там их сейчас?) классе — то да, для определённого класса будет очень долгое ожидание.
То же и в кораблях: появляется задача на линкоры — в очереди висит под 300 линкороводов и единицы на остальном.
Линкороводы будут висеть до таймаута, пока балансер не сменит паттерн и не выкинет в бой, к примеру, больше половины ЛК с обоих сторон.
Мне казалось, ограничение по классу есть только для артиллерии
О, снова про шаротанки вспомнили
А что с ними не так?
На мой взгляд, отличная модель сферического баланса в ваккуме.
Просто прикинуть, сколько серверов нужно для обсчёта режима угнетения в танках тоже дано не каждому
Хмм, мне видимо не дано. Сессионная статистика есть, при матчмейкинге подтянуть данные об игроке и скорректировать какой-нибудь параметр точности/пробития/… на 5-7%, сохранив его на ближайшие N боёв — не вижу больной проблемы.
Starcraft2 — как пример отсутствия баланса и того, как игроки и некоторые стримеры водят за нос команду разработчиков для смены баланса, как они считают, в правильную сторону.
Раса Терранов принципиально отказывается играть всеми юнитами. Мол будем играть только пехоту или только технику. И просят близов постоянно, что то сделать с Протосами, мол уж очень простая раса эти Протосы, а Терранам ой как сложно против них играть.
На просторах ютуба проживает небезызвестный стример комментатор — который как выяснилось расист и ненавидит расу Простосов. Пол года пускал сопли на ютубе, какие Протосы имба, и как надо помочь остальным расам.
В итоге что мы получили в игре: раса Зергов второй год подряд доминирует на всех турнирах, Протосы с горем пополам приспособились играть, а Терраны плачут, что Протосы имба.
Так что водить разработчиков за уши — это очень плохая идея. Игрокам нужно приспосабливаться, а не стараться поменять баланс в свою пользу.
Ну и кто у нас такой минусатор? Неужели сам великий комментатор на Хабре обитает или есть его адепты?
Где аргументы?

То есть вы утверждаете, что близзард изменили баланс потому, что посмотрели несколько видео русскоязычного комментатора на ютубе? Смешно. По поводу вселенской несправедливости — советую посмотреть видео Harstem'а, у него целая рубрика посвещяна жалобам на баланс. И научитесь уже играть в свое удовольствие, а не ныть на каждом углу (даже на Хабре, лол).

Все знают что зерги имба, а самый дисбалансный матчап — это Зерг против Зерга. Потому что неважно какую тактику выберет противник, Зерг всегда выигрывает.


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

Мол будем играть только пехоту или только технику.
Принципиальное отличие от других рас в том, что апгрейды атаки/брони у терран отдельные для пехоты и меха, соответственно чтобы не отставать по стоимости войска и апгрейдам приходится выставлять приоритеты.
раса Зергов второй год подряд доминирует на всех турнирах
Небезызвестный фанат Альфа начал свой крестовый поход после ребаланса в начале 2019 и прихода меты чарджзилоты/архоны, отчего вдруг на супертурнире всея Кореи 2019 случилось 6 протоссов. Алсо статистически в SC:BW винрейт у зергов выше, что никоим образом не мешало Флешу доминировать на всех турнирах.
Вердикт: вы плохо разбираетесь в Старкрафте (настолько что выдумали расу с одной буквой С в названии), не в курсе того, что в настолько тщательно разобранной игре всегда доминируют выдающиеся игроки (не нравится пример из корейского BW: July был единственным зергом, укатывавшем в бетон терран в первых сезонах GSL, не нравится пример из SC — посмотрите на результаты Arslan Ash) и даже не пытаетесь аргументировать.
Очень странно, что про шахматы так мало написано. А ведь, на самом деле, — абсолютно несбалансированная игра. Белые имеют преимущество первого хода, которое для чёрных вообще ничем не компенсировано, хотя и в HS, и в HotA очень много сил потрачено на то, чтобы сбалансировать игроков, которые ходят первыми, с теми, что ходят вторыми.

И вот, в шахматах уже скоро 200 лет как спорят, насколько же чаще выигрывают игроки белыми, а в последнее время уже заявляют, что баланс перекошен в сторону чёрных.
Может кто-нибудь привести примеры для расчета баланса в играх? Например, для Тетриса или тех же World of Tanks, ну или для сферический юнитов в вакууме. Интересно на примере посмотреть как можно сбалансировать игру, чем юниты будут отличаться друг от друга и как их сбалансировать
Взгляните здесь
Если нужны более губокие и полные данные — посмотрите на курсы гейм-дизайнеров.
Или: ваша игра не настолько справедлива, как вам кажется, потому что генераторы случайных чисел несправедливы», — говорит Шрайбер.

Генераторы случайных (псевдослучайных, если точнее) чисел справедливы, начиная ровно с того момента, когда разработчики, использующие эти генераторы, будут сохранять начальный Seed генератора для каждого типа объектов (золотого лутобокса, например). В большинстве донатных помоек этого не делается ввиду того, что уменьшит прибыль, так как вероятность 10% получить топ приз с сохранением Seed при открытии 100 золотых лутбоксов, последовательно по 1, будет больше, чем без сохранения Seed.

Вот вам доказательство от питона


>>> import random                                                                                                                                                                                                                   >>> sum([random.random() < 0.1 for i in range(1000)]) / 1000                                                                                                                                                                        0.101  # без сброса сида больше

>>> sum([random.seed() or random.random() < 0.1 for i in range(1000)]) / 1000                                                                                                                                                       0.096  # а со сбросом сида меньше

Это ни в коем случае не шутка, а серьезное и весомое доказательство.

Можно не ёрничать. Я успел прочитать ваше "P.S. Если что, это шутка", до того как вы отредактировали коммент.


Теперь по существу. Серьёзное и весомое доказательство — это формула Пуассона в применении к игровым механикам. Она применяется для расчётов, когда вероятность P мала, а число N велико, и выполняется условие P * N < 10
Допустим, вероятность выпадения топ приза составляет 5% (вроде бы как 1 из 20)
1) Каждый раз, когда игрок открывает 1 лутбокс, он запускает новую серию испытаний, состоящую из 1 испытания. Вероятность того, что выпадет топ приз составляет 0.0488 из 1.
2) 10 лутбоксов — новая серия из 10 испытаний. Вероятность того, что выпадет топ приз составляет 0.3935 или 39,35%. Обратите внимание, что 39,35% — это шанс успеха серии, а не выпадения топ приза.
3) 20 лутбоксов — новая серия из 20 испытаний. Вероятность того, что выпадет минимум 1 топ приз составляет 0.6321. Хотя казалось бы она должна быть поближе к 1.
4) 100 лутбоксов — новая серия из 100 испытаний. Посмотрим, каковы наши шансы получить
1 топ приз или больше — 0.9933
2 топ приза или больше — 0.9596
3 топ приза или больше — 0.8754
4 топ приза или больше — 0.735
5 топ призов или больше — 0.5595
6 топ призов или больше — 0.384
7 топ призов или больше — 0.2378
8 топ призов или больше — 0.1334
9 топ призов или больше — 0.06807
10 топ призов или больше — 0.0318


То есть, если вы ожидаете, что открыв 100 лутбоксов, вы получите 5 топ призов с вероятностью, близкой к 100%, то вы ошибаетесь. Вы получите 5 и более призов только в 56% серий. То есть, открыв 100 раз по 100 лутбоксов вы получите 5 и более топ призов в 5 595 случаях из 10 000.
Это всё справедливо в случае, если в каждой из 4-х серий запускается генератор с произвольным сидом, то есть начинается новая серия испытаний, как обычно и происходит в играх с механикой лутбоксов.


В случае с сохранением сида ситуация меняется, так как все ваши испытания составляют одну непрерывную серию. Давайте теперь посчитаем, сколько раз вы получите 500 (вероятность 0.05 в 10000 испытаниях) и более топ призов в непрерывной серии из 10 000 испытаний ("непрерывный" аналог серии 100 по 100). Здесь уже для расчётов формула Пуассона не применима, так как P x N = 0.05 x 10 000 = 500 > 10. Для больших N используется теорема Лапласа.
500 топ призов или больше — 0.49999.
Как-то жиденько по сравнению с 0.5595 для "5 топ и более из 100". Но это только на первый взгляд. Давайте проверим вероятность получения в серии более 400 призов.
400 топ призов или больше — 0.99998. Сравните с 0.735 для "4 топ и более из 100".
420 топ призов или больше — 0.99991.
440 топ призов или больше — 0.99709.
460 топ призов или больше — 0.96709.
470 топ призов или больше — 0.91619.
480 топ призов или больше — 0.82119.
490 топ призов или больше — 0.67719.
Выглядит гораздо внушительнее, чем в 100 сериях по 100 лутбоксов.


Игроки давно уже заметили эту особенность в некоторых играх и копят лутбоксы, для того, чтобы открыть максимальное количество за 1 попытку (непрерывную серию). Приведу реальный пример: коллекционная Idle RPG "Clone Evolution". В ней есть казино, в котором представлены 8 различных видов призов. У каждого из них своя вероятность выпадения. Самые ценные призы — это редкие фиолетовые персонажи, которые нужны для создания легендарных оранжевых персонажей. Вероятность выпадения такого редкого персонажа где-то 0,15%. Игроками эмпирически было установлено, что для практически гарантированного получения необходимо иметь 800 жетонов (попыток), которые сливаются в сериях по 10 спинов, причем все эти 800 жетонов надо было потратить единовременно, ни в коем случае не выходя из интерфейса казино. Почему так? Ответ выше, в математике. Была прервана серия, так как перезайдя в интерфейс казино, сгенерировалось новое значение сида. Игроки интуитивно "просекли фишку" и использовали себе во благо.


Вы сами можете проверить приведенные цифры, используя онлайн-калькуляторы
Формула Пуассона
Теорема Лапласа

import random

lootboxes = 100
series = 100

# непрерывные серии
results = []
for i in range(series):
    random.seed()
    drops = []
    for j in range(lootboxes):
        drops.append(random.random() < 0.1)
    results.append(sum(drops))

print("Same seed min drops", min(results))
print("Same seed max drops", max(results))
print("Same seed avg drops", sum(results) / len(results))

# новый сид на каждом лутбоксе
results = []
for i in range(series):
    drops = []
    for j in range(lootboxes):
        random.seed()
        drops.append(random.random() < 0.1)
    results.append(sum(drops))

print("Refreshing seed min drops", min(results))
print("Refreshing seed max drops", max(results))
print("Refreshing seed avg drops", sum(results) / len(results))

Результаты:


Same seed min drops 3
Same seed max drops 18
Same seed avg drops 9.79
Refreshing seed min drops 4
Refreshing seed max drops 18
Refreshing seed avg drops 10.17

Ох ты, если сид обновлять, то это выгоднее! Время опровергать весь ТеорВер!


Надо бы еще проверить, когда выпадет больше орлов — если одну монетку подбросить 100 раз, или 100 монет по одному разу.

Обратите внимание, что 39,35% — это шанс успеха серии, а не выпадения топ приза.

Объясните терминологию, пожалуйста. Чем отличается «шанс успеха серии» от «шанса выпадения топ приза»?

Теория вероятности так не работает. Обе ваших формулы являются апроксимациями, точную формулу даёт только распределение Бернулли.


Наблюдения игроков могут быть связаны со следующими эффектами:


  1. игроки могли попросту ошибиться, в статистике неспециалисту это сделать очень легко;
  2. рандом может быть "подкручен" разработчиками;
  3. разработчики могли в свою очередь использовать приближенные формулы.

Во всех этих трёх случаях сброс seed оказывается ни при чем.


Возможен и четвёртый вариант — вы "напоролись" на особенности генерации псевдослучайных чисел, из-за которых ваши попытки перестали быть независимыми. Но в таком случае моделирование на Питоне должно этот самый эффект легко воспроизвести, а он что-то не воспроизводится...


PS


Ну и да, если вдруг 4й вариант окажется верным — то как раз сброс seed будет давать более честный рандом, поскольку будет делать испытания независимыми; а вот его сохранение будет честный рандом перекашивать.

По мне баланс в игре, это «возможность добиться одного результата, используя различные механики»
Для примера
Если взять мир MMO, ну например World of Warcraft. То в ПВП очень часто можно наблюдать дисбаланс классов. В свое время, когда я играл. Довольно частая проблема была в том что палладины когда начинали проигрывать в битве, окутывали себя заклинанием неуязвимости, которое было на них около 30 сек, что по меркам боя пвп просто огромное количество времени. И за 30 секунд паладин мог убежать, отлечить себя. Когда у другого класса такой возможности не было. И сколько ты не прикладывай усилий, паладина ты не убьешь, если конечно игрок который за палладина не сделает ошибку.
Или возьмем Warlock, который навешивает проклятья, и урон растягивает по времени. Как хорошо бы ты не играл, ты не нанесешь достаточно урона персонажу, в то время как он тебя убьет.
К чему я это. С моей точки зрения баланс должен давать равную возможность в битве всем классам. Битва должна быть битвой навыков игроков, а не математической предопределенностью.
Вот этот баланс и убил ВоВ. Фишки отобрали, все усреднили, трюки прицельно убрали.
Вот тут, как раз нужно мастерство геймдизайнера. Всегда есть искушение все усреднить.
А вот сделать так, чтобы был самобытный геймплей(крайне странно будет выглядеть маг который в ближнем бою сворачивает баранкой война), каждый игрок чувстовал мощь своего класса, тут нужно мастерство, и незаурядные способности.
Почему-то в статье не затронута проблема 50/50. Когда средний процент побед сводится к 50%. В том же overwatch, можно успешно побеждать раз за разом, получая себе в команду адекватных игроков (не супер игроков, но просто нормальных), лишь ради того, чтобы, поднявшись в рейтинге, начать получать совершенно неадекватных игроков до тех пор, пока твой рейтинг не понизится, а процент побед не упадет до 50%.
Плюсану. Если тащер — то на тебе тиму овощей и страдаешь. Если овощ — ты в тиме тащеров и кайфуешь.
К черту 50/50!

Sign up to leave a comment.