Как я могу предотвратить доминирование небольших числовых преимуществ в балансе встречи?

27

Я некоторое время возился с игрой, и у меня изрядное количество проблем с чем-то:

У меня есть два персонажа, каждый из которых имеет атрибуты (около десяти) в диапазоне (от 1 до 20). Я хочу использовать эти атрибуты, чтобы сгенерировать «бросок» так, чтобы более высокий бросок выиграл эту конкретную схватку. Стоит отметить, что два персонажа не наносят вред / защищают друг друга. Они оба катятся, чтобы посмотреть, пройдут ли они то, что, я думаю, можно назвать проверкой навыков. Они оба катятся, чтобы пройти / потерпеть против общей ценности. Они не взаимодействуют друг с другом.

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

Я попытался взвесить атрибут «наиболее релевантный» для теста на уровне 80%, а сумму других атрибутов - на уровне 20%. Я также попытался сравнить средние значения, чтобы получить относительную разницу, и использовать ее, чтобы усилить более слабый характер. Оба подхода привели к значительным преимуществам, которые я пытаюсь устранить (например, если я запускаю схватку 5000 раз, она вполне регулярно дает одну сторону, выигравшую все 5000).

Кажется, что добавление компонента «удачи» имеет значение только в том случае, если он каким-то образом взвешен в пользу менее значимого персонажа, и я не нашел там хорошего баланса.

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


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

На данный момент бросок генерируется как

0.8 * (mainAttribute) + 0.2 (1/3 * subAttA + 1/3 * subAttB * 1/3 subAttC)

В настоящее время это производит числа в районе 4,0. Атрибуты генерируются случайным образом между указанными диапазонами. В текущем тесте используется один символ с атрибутами от 2 до 4, а оппонент между 3 и 5. Как и ожидалось, это дает средние значения, близкие к 3 и 4 соответственно.

С этим преимуществом в одно очко я хотел бы видеть более сильный выигрыш двух в области от 55% до 60% времени, при этом увеличение до выигрыша в 80% случаев со средним преимуществом атрибута: 5 или 6, 90% при преимуществах 7 или 8, оставляя место для маловероятного выигрыша, когда разрыв увеличивается. Я бы предпочел, чтобы никогда не было гарантированных побед, но, возможно, все становится очень маловероятным - на случай выигрыша в 99,5% или 99,6% случаев, когда разрыв становится очень большим.

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

Моя следующая попытка состояла в том, чтобы взвесить их относительные силы, взяв в среднем все характеристики каждого, разделив их друг против друга, и используя это значение, чтобы дать небольшой толчок меньшему персонажу. Это немного сгладило ситуацию, но все же имело ярко выраженную тенденцию производить такие вещи, как 5000 побед для одного парня из 5000 попыток.

ffenliv
источник
2
Вы говорите «роль сгенерирована», но затем публикуете формулу, которая всегда будет генерировать фиксированное число. Где случайность?
Филипп
1
Так что, если я вас правильно понимаю, единственная случайность в вашей игровой механике - это случайный выбор основного атрибута?
Филипп
2
Но, как предполагает @Philipp, 5000 попыток дадут те же самые результаты? Или вы генерируете новые атрибуты каждой симуляции
Felsir
1
Как именно один из двух победит, если они не взаимодействуют друг с другом? Кажется, здесь отсутствуют некоторые данные?
Эрик
1
Бросок, который производит каждый, сравнивается с целью, которой они должны достичь. Если один достигает этого, а другой нет, тот побеждает. Если они оба достигнут этого, побеждает более высокий из двух. Если ни один не достигает, ни один не получает точку. В маловероятном даже галстуке они разделили точку. «Не взаимодействуя», я имел в виду не наносить удары друг другу или защищаться друг от друга в традиционном смысле, как это было в начале некоторых обсуждений.
ффенлив

Ответы:

36

Проблема с вашим подходом заключается в том, что вы решаете результат боя в тот момент, когда решаете основную характеристику. Когда у вас есть 4 основных характеристики, а у одного из них боец ​​только лучше, его шанс на победу всегда равен 1 к 4, независимо от того, насколько велики различия на самом деле. Если вам нужны более детальные результаты, вам нужна более детальная случайность.

Прежде всего, я думаю, что вы можете оставить свой случайный выбор для основного атрибута, и вы также можете сохранить свою формулу, если хотите. Это число, которое показывает, какое преимущество имеет этот комбатант в этой конкретной схватке. Для остальной части этого поста, я буду ссылаться на это как просто power.

Метод, который я использовал во многих играх и который мне очень помог, когда дело доходит до дуэли между двумя вещами с определенным power, состоит в том, чтобы бросить случайное число с плавающей запятой между 0и powerдля обоих и посмотреть, кто бросил выше. Вот список ожидаемых результатов этого метода. Проценты не рассчитываются, а генерируются экспериментальным путем, выполняя 100000 боев за комбинацию и количество итераций и подсчитывая, кто выиграл, как часто:

PowerA | PowerB | Win chance of A
  9    |   1    |    94.5%
  8    |   2    |    87.5%
  7    |   3    |    78.6%
  6    |   4    |    66.6%
  5    |   5    |    50.0%
  4    |   6    |    33.3%
  3    |   7    |    21.5%
  2    |   8    |    12.5%
  1    |   9    |    5.5%

Приятной особенностью этого алгоритма является то, что он масштабируется независимо от того, с какими большими числами вы имеете дело. Вероятность 0,3 против 0,7 такая же, как у 3 против 7, 300 против 700 или 3 000 000 000 против 7 000 000 000.

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

| A | B | Iterations
|   |   |       1 |     2 |     3 |     4 |     5 |     6 |     7 |     8 |     9 |
-----------------------------------------------------------------------------------
| 9 | 1 |   94.5% | 99.3% | 99.9% |100.0% |100.0% |100.0% |100.0% |100.0% |100.0% | 
| 8 | 2 |   87.4% | 96.3% | 98.8% | 99.5% | 99.8% |100.0% |100.0% |100.0% |100.0% | 
| 7 | 3 |   78.7% | 89.2% | 94.0% | 96.6% | 97.8% | 98.9% | 99.2% | 99.6% | 99.7% | 
| 6 | 4 |   66.8% | 74.3% | 79.2% | 82.9% | 85.7% | 88.0% | 89.9% | 91.2% | 92.5% | 
| 5 | 5 |   50.0% | 50.0% | 50.0% | 50.0% | 50.0% | 50.0% | 50.0% | 50.0% | 50.0% | 
| 4 | 6 |   33.6% | 25.6% | 20.9% | 17.1% | 14.7% | 12.0% | 10.2% |  8.9% |  7.5% | 
| 3 | 7 |   21.4% | 10.7% |  6.0% |  3.5% |  2.0% |  1.2% |  0.7% |  0.4% |  0.3% | 
| 2 | 8 |   12.7% |  3.7% |  1.2% |  0.4% |  0.1% |  0.1% |  0.0% |  0.0% |  0.0% | 
| 1 | 9 |    5.5% |  0.7% |  0.1% |  0.0% |  0.0% |  0.0% |  0.0% |  0.0% |  0.0% | 

Результаты 100% и 0% в приведенной выше таблице являются иллюзией из-за различий в округлении. Если число powerбойцов не равно 0, всегда есть вероятность, что они выиграют. Такого просто не было в приведенном выше тесте, поэтому вы можете ожидать, что он будет ниже 1: 100000.

Вы также можете заметить некоторые небольшие неровности, которые могут быть связаны с перепадом настроения java.lang.Random и могут не появиться при повторном запуске кода с другим начальным числом.

Программа, которую я использовал для создания этой таблицы (Java).

public class Main {

    private static Random random = new Random();
    private static final int SAMPLES = 100000;

    public static void main(String[] args) {        
        for (int i = 1; i < 10; i++) {
            double powerA = 10.0 - i;
            double powerB = i;
            System.out.print("| ");
            System.out.print((int)powerA);
            System.out.print(" | ");
            System.out.print((int)powerB);
            System.out.print(" |   ");

            for (int iterations = 1; iterations < 10; iterations++) {
                int wins = 0;
                for (int j = 0; j < SAMPLES; j++) {
                    if (fight(powerA, powerB, iterations)) wins++;
                }
                System.out.print(String.format("%2.1f", 100.0 * (double)wins / (double)SAMPLES));
                System.out.print("% | ");
            }
            System.out.print("\n");
        }       
    }

    private static boolean fight(double powerA, double powerB, int iterations) {        
        double sumA = 0.0f;
        double sumB = 0.0f;     
        for (int i = 0; i < iterations; i++) {
            sumA += random.nextDouble() * powerA;
            sumB += random.nextDouble() * powerB;

        }       
        return sumA > sumB;
    }
}

Если вы хотите использовать этот код в своей игре, он лицензируется в соответствии с WTF Public License Version 2, опубликованной Sam Hocevar .

Philipp
источник
Это интересный подход. В некоторых из моих попыток я шел на полпути к этому. Я подключу это и попробую. Большое спасибо.
ффенлив
10
Проценты в вашей первой таблице могут быть вычислены точно так же, как 1 - powerA / ( 2 * powerB ).
Кайл
2
@Kyle Это работает только до тех пор, пока powerA < powerB. Когда powerA станет больше, вам нужно переключиться на powerB / (2 * powerA).
Дорус
1
Я не уверен, что StackExchange ToS позволяет вам отказаться от обязательной лицензии сайта на контент и код, даже если ваша лицензия более разрешительна, чем их. Конечно, невозможно определить, является ли это предложенным MIT или все еще CC.
Ларс Виклунд
5
@LarsViklund Вы начинаете обсуждение вне темы, но нет, это неверно. Лицензия на stackexchange не является эксклюзивной, что означает, что я все еще могу свободно отдавать свою интеллектуальную собственность на любых других условиях, когда захочу. Мои материалы имеют двойную лицензию в соответствии с CC-BY-SA (согласно требованиям Stackexchange) и WTFPL. Вы можете выбрать, при каких условиях вы хотели бы использовать мои вклады.
Филипп
13

Ваша ошибка заключается в использовании подхода, основанного на игре в кости. Вы на компьютере, вы можете использовать любую систему, которая вам нравится. Составьте таблицу, которая превращает разницу в значениях в% вероятности выигрыша, а затем вы можете установить значения на абсолютно все, что вам нравится, например

Difference (A-B) | %chance A wins
-----------------|---------------
+5 or greater    | 100%
+4               | 95%
+3               | 85%
+2               | 70%
+1               | 55%
0                | 50%

(Вам нужно сделать только половину таблицы, просто всегда выбирайте A как тот, у кого более высокий показатель)

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

Джек Эйдли
источник
2
Хотя в настоящее время я работаю с системой, основанной на принятом ответе, это довольно просто, и может быть хорошим решением для меня. Я знал, что старый добрый StackExchange придет за мной.
Ффенлив
5

Честно говоря, это довольно глубокий вопрос с точки зрения игровой механики. Но есть несколько вещей, которые могут помочь.

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

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

Основанием для этого является то, почему многие игры постоянно проходят балансирование оружия, классов и статистики. World или Warcraft, Destiny, Diablo, Battlefield: любой тип игры в любом жанре часто проходит баланс и настройку с течением времени.

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

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

Джесси Уильямс
источник
Кроме того, я думаю, что это отличный вопрос и может привести к очень интересным дискуссиям игровой механики. Вполне возможно, что это может в конечном итоге стать основанным на мнении, поэтому важно быть осторожным с такими касательными (эта игра делает это лучше, чем эта игра и т. Д.), Но есть некоторые основополагающие принципы, которые могут быть поучительными, поскольку все больше людей публикуют сообщения.
Джесси Уильямс
Забавно, но сначала у меня была механика «попадания» и «повреждения», но я отказался от нее по причинам, которых я больше не помню (а это было только вчера. Моя память немного ... плохая) Я должен быть ясен, персонажи не нападают / не защищают друг друга. Там нет компонента повреждения. Это проверка навыков, где оба проверяются по общему значению, чтобы увидеть, прошел ли бросок .. Нет взаимодействия между двумя конкурирующими.
ффенлив
2

Есть две большие вещи.

Во-первых, помните, что вы находитесь на компьютере. Вы можете сделать любую систему, какую захотите. Не нужно ограничивать себя броском d20, хотя это легко понять игрокам. Такие вещи, как бросание костей 6 d6, легко выполнять на компьютере, и они дают гораздо меньше случайных результатов.

Во-вторых, если взглянуть на другие системы, такие как D & D, то становится очевидным, что они просто значительно уменьшают влияние атрибутов. Вместо того, чтобы иметь базовый показатель, добавьте 80% его значения к правилу, уменьшите его и сделайте добавление более тонким. Например, в D & D, если у вас есть 18 ловкости, вы получаете только 4 в качестве бонуса к классу брони.

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

Yudrist
источник
1d20 или 6d6 или 5d4 - результаты не более или менее случайны, вы только меняете диапазон. Случайный случайный. Масштабирование диапазона и домена недостаточно для балансировки системы. Это, вероятно, только вытянет вещи дольше.
Джесси Уильямс
8
@JesseWilliams, это не правда. 1d20 имеет равные шансы получить любое из возможных значений. С 5d4 у вас гораздо больше шансов получить 12 или 13, чем 20
Роб Уоттс
Несколько рулонов также скрывают недостатки в генераторах чисел, поэтому это особенно важно для компьютеров. Фактически, объединение бросков на побитовом уровне является основой многих генераторов.
Юдрист
Я стою исправлено.
Джесси Уильямс
3
@RobWatts все еще не более или менее случайный, это просто другой дистрибутив. Наличие информации о предыдущих «бросках» не позволяет вам лучше прогнозировать будущие результаты (игнорируя недостатки в ГСЧ), так что это так же случайно.
chbaker0
1

Как насчет этого: Добавьте константу, например 1000, ко всем соответствующим атрибутам. Тогда относительная разница становится очень маленькой.

Alex
источник
1

Знай свои номера

Добавим немного к ответу Филиппа , а именно, что rand [x] по сравнению с rand [y] не всегда дает то, что ожидаешь. Ниже таблицы, где мы сравниваем A с B. И A, и B имеют значения 1 ... 10. Мы сравниваем двумя способами (примечание: rand () в этом случае генерирует целые числа, т.е. rolls):

  1. rand [A]> rand [B]
  2. rand [A] ≥ rand [B] (то есть больше или равно)

Дополнительно сравниваем

  1. rand [A * 1000000]> rand [B * 1000000]
    (в данном случае не имеет значения,> это или>, поскольку они так близко). Эти большие цифры в скобках.

Клетки содержат%. Каждый результат содержит 1 миллион итераций (сделан с использованием Dyalog APL ).

┌────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┐
 A      B  1 (1000000)│ 2 (2000000)│ 3 (3000000)│ 4 (4000000)│ 5 (5000000)│ 6 (6000000)│ 7 (7000000)│ 8 (8000000)│ 9 (9000000)│10(10000000)│
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
 1 (1000000)│ >0(50) 100  >0(25) 50  >0(17) 33  >0(13) 25  >0(10) 20   >0(8) 17   >0(7) 14   >0(6) 13   >0(6) 11   >0(5) 10
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
 2 (2000000)│>50(75) 100 >25(50) 75 >17(33) 50 >12(25) 38 >10(20) 30  >8(17) 25  >7(14) 21  >6(13) 19  >6(11) 17  >5(10) 15
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
 3 (3000000)│>67(83) 100 >50(67) 83 >33(50) 67 >25(37) 50 >20(30) 40 >17(25) 33 >14(21) 29 >12(19) 25 >11(17) 22 >10(15) 20
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
 4 (4000000)│>75(87) 100 >62(75) 88 >50(62) 75 >37(50) 63 >30(40) 50 >25(33) 42 >21(29) 36 >19(25) 31 >17(22) 28 >15(20) 25
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
 5 (5000000)│>80(90) 100 >70(80) 90 >60(70) 80 >50(60) 70 >40(50) 60 >33(42) 50 >29(36) 43 >25(31) 38 >22(28) 33 >20(25) 30
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
 6 (6000000)│>83(92) 100 >75(83) 92 >67(75) 83 >58(67) 75 >50(58) 67 >42(50) 58 >36(43) 50 >31(38) 44 >28(33) 39 >25(30) 35
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
 7 (7000000)│>86(93) 100 >79(86) 93 >71(79) 86 >64(71) 79 >57(64) 71 >50(57) 64 >43(50) 57 >38(44) 50 >33(39) 44 >30(35) 40
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
 8 (8000000)│>88(94) 100 >81(87) 94 >75(81) 87 >69(75) 81 >63(69) 75 >56(62) 69 >50(56) 62 >44(50) 56 >39(44) 50 >35(40) 45
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
 9 (9000000)│>89(94) 100 >83(89) 94 >78(83) 89 >72(78) 83 >67(72) 78 >61(67) 72 >55(61) 67 >50(56) 61 >44(50) 56 >40(45) 50
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
10(10000000)│>90(95) 100 >85(90) 95 >80(85) 90 >75(80) 85 >70(75) 80 >65(70) 75 >60(65) 70 >55(60) 65 >50(55) 60 >45(50) 55
└────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┘

Если посмотреть на A = 2 и B = 3 (и 1 миллион тестов):

  • rand (2) больше чем rand (3) в 17% случаев
  • ранд (2000000) больше ранда (3000000) в 33% случаев (уведомление о масштабировании ./ .. целочисленное округление)
  • rand (2) больше или равно rand (3) в 50% случаев
  • (ранд (2000000) также больше или равен ранду (3000000) в 50% случаев)

Сюрпризы могут быть такими:

  • rand (2)> rand (3) только в 17% случаев
  • rand (10)> rand (10) в 45% случаев
  • rand (6)> rand (5) через раз

На самом деле, я мог бы решить этот вопрос по-другому, просто набрав вручную таблицу 10x10 с хорошими желаемыми процентами (может быть, кто-то хочет и неровности?) Затем, если необходимо, интерполируйте между двумя значениями, чтобы получить точный процент, скажем, по какой-то причине 53. Затем легко сгенерировать попадание с вероятностью 53%, 0 или 1, просто выполнив rand (100) и протестировав если он меньше или равен 53 :-).

То есть по линии Джек Aidley упоминает.

Штормград
источник
1
Вы используете генератор случайных чисел, который генерирует целые числа? Мой ответ использует RNG, который генерирует числа с плавающей запятой двойной точности между 0.0и 1.0. В этом случае разница между >и >=незначительна. Вы можете указать это.
Филипп
Да, это часть предполагаемого сообщения, чтобы просто указать на различное поведение числовых пробелов, например. целые числа с малым значением (грубая гранулярность) и целое число с большим значением (и действительно, также с плавающей запятой) с тонкой гранулярностью. Я вставлю "целое число" где-то, спасибо за определение. Я на самом деле указываю на эту пренебрежимость: «(в данном случае не имеет значения,> это или>, поскольку они так близки»). Часто числа находят удивительные значения (для человеческого ума), если система не поощряется к поиску баланса. Вообще говоря, ofc, не обязательно в этом случае.
Штормград
0

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

Например, если два игрока следуют процедуре:

  • Бросить кубик
  • Добавьте их модификатор в бросок кубика.

и повторять до тех пор, пока одна сторона не победит другую, тогда вы получите числа в своем диапазоне: вот шансы на победу с данным числовым преимуществом для их модификатора:

0   50%
1   57%
2   64%
3   70%
4   76%
5   81%
6   85%
7   89%
8   92%
9   95%
10  97%

источник
0

Персонажи не бросают вызов друг другу для превосходства. Они бросают вызов требованию. Что делать, если оба проходят требование Кто выигрывает? Я удивлен, что вы не оспорили логику настолько, что даже пошли на вычисления с ней.

В любом случае, вот две вещи, которые могут принести вам пользу.

Выиграй случай с преимуществом:

Если проходной балл / проверка умений - это бросок 10. A бросок 40. B бросок 42. Если победить должен только один. Начиная с равного A 50% Win / B 50% Win. Вы можете добавить%, чтобы выиграть шанс, основанный на количестве преимуществ. Ролл B имеет преимущество (42-40) / 40 = 5% в плане крена. Добавление этого напрямую увеличивает вероятность выигрыша B на 55%. Или вы можете определить свой шанс выигрыша на процент преимущества. Скажем, за каждое 100% -ое преимущество вы добавляете 10% -ный шанс на победу. Таким образом, если A бросает 10, а B бросает 20. Тогда A выигрывает 40%, а B выигрывает в 60% случаев.

Концепция честной случайности:

При стандартной 30% -ой вероятности выигрыша вы можете в итоге выиграть 38 проверок из 100.

Некоторые люди хотят дополнительного шага в справедливости и уверены, что 30% -ый шанс всегда выигрывает ровно 30 из 100 столкновений и достаточен для случайности, когда не знаешь, какие столкновения в последовательности являются выигрышем, а какие проигрышем.

Это особенно полезно для хорошо просчитанной игровой экономики. Потому что случайный показатель в 70% шанс выиграть. Скажите, что у моба 70% шанса сбросить 5 золота. Мобы могут в конечном итоге сбросить золото 81 раз из 100. Это приводит к потере баланса между доходами и расходами. И в зависимости от того, сколько субъектов / экземпляров используют такие списки, неизбежно возникает инфляция и / или дефицит. Конечно, многие люди даже не имеют приблизительной оценки полного изложения затрат / затрат своей экономики. Многим людям достаточно набрать «большинство» экономических баллов. И оставьте некоторые переменные поколения, которые не рассчитываются, и сохраняйте несоответствие со временем, даже с большой случайностью.

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

Зачем беспокоиться об этом, так как закон больших чисел выравнивает вещи в долгосрочной перспективе?

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

helena4
источник
Мне особенно нравится последнее предложение. Захватить откуда-то еще: я считаю, что, например, соотношение «в: выход» у «Викинг Лото» составляет около 4: 1 в долгосрочной перспективе (где можно заменить «длинный» на «большой»); он имеет почти спорное (но вполне определенный) поведение конструкции, и она функционирует. Никто не может выполнить математику ниже, если сначала не будет точно определено поведение проекта. Числа, как правило, неконтролируемы без контроля ...
Штормград
@ Штормград конечно. Если дизайна / теории не хватает - математика бесполезна. Это но инструмент. Я видел, как дизайнеры с пятым классом по математике добились хороших результатов. Они просто нанесли на карту то, что они хотели сделать логически, и пошли к математическим людям (обычно кодировщикам) для инструментов / совета, как сделать математические биты. Как-то все же удается не быть очевидным для всех - чем больше у вас проблем с планом - тем больше головной боли вы увидите при строительстве. Просто захватывая какую-то систему и настраивая ее, вы упускаете суть. Если вы просто соглашаетесь с тем, что работает в первую очередь, это не очень креативно.
helena4