Рандом

Материал из Posmotre.li
Перейти к: навигация, поиск
Склифосовский.pngВкратце
Генератор случайных чисел в играх.
Великий Бог Рандома собственной персоной
« x: Кто такой Рандом?
y: Рандом Намбер Генераторович (Random Number Generator) — про этого великого субъекта знает гугл, его и спрашивай.
z: А ещё у него есть бабка Ивентия, которая радует нас уже целую неделю.
»
— Разговор на форуме «Героев войны и денег»

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

Но стоит добавить перетасованные карты или бросаемый кубик, как всё сразу становится разнообразнее: например, персонаж стреляет по врагу, но промахивается. Или корабли управляемого игроком флота не получают попутного ветра. Или наоборот, игрок «прикупил» два туза, или попал прямо в голову супостату.

Всё это называется рандóм, от англ. random — «случайный». Понятие «случайный» означает «непредсказуемый, но укладывающийся в статистику» — другими словами, выпадение кубика случайно, принятое противником решение — нет. Разумеется, только если речь идёт об идеальном или хотя бы достаточно опытном противнике, конечно; новичкам свойственно принимать необдуманные, не обоснованные ничем решения, ставящие порой профи в тупик.

Источники случайности в настольных играх[править]

Игральные кости для ролевых игр. Верхний ряд: додекаэдр (d12), икосаэдр (d20). Второй ряд: икосаэдр (d20), два десятигранника для десятков и единиц (d10/d100), икосаэдр (d20). Нижний ряд: тетраэдр (d4), два кубика (d6), октаэдр (d8).

Чаще всего используется игральная кость. Роль игральной кости обычно играют правильные многогранники или близкие к ним геометрические тела.

Основная статья: Нестандартные кости
  • Один из двух — кубики удобнее монеты, поэтому обычно используют чёт или нечет на бóльшей кости.
  • Один из трёх или пяти — т. н. «чиж», призма со скруглёнными основаниями (ибо упасть она должна на бок).
  • Один из четырёх — тетраэдр. Тетраэдр падает вершиной вверх, поэтому помечают не грани, а вершины. Или рисуют по три числа у рёбер, берётся то, которое стоит прямо. Реже октаэдр, у которого одной цифрой помечена пара граней — это удобнее (лучше катается), но в DnD есть и обычный октаэдр d8.
  • Один из шести — куб. Тот самый игральный кубик. Куб — самый удобный из многогранников: прост в изготовлении, хорошо катается, быстро успокаивается, читается, даже если наедет на препятствие. Поэтому геймдизайнеры стараются подстраивать механику под кубик.
    • Также могли встречались варианты куба, обеспечивающие один из трех, один из четырех. Если один из трех, то было по две грани с каждым значением. Производились и в СССР, например в игре «Ягодки» из набора «Три цыпленка» (Изд-во «Малыш», 1982 г.). В вариантах «один из четырех» (из пяти) добавлялись либо грани «переброс», либо два (одно) значения дублировались. В СССР/России изредко встречались в журнальных играх «кинь-двинь» в виде развертки. Т. е. для изготовления самостоятельно.
  • Один из восьми — октаэдр.
  • Один из десяти — так называемый пятиугольный дельтоэдр: неправильный додекаэдр, у которого две грани стянуты в точку. Реже икосаэдр, у которого одной цифрой помечена пара граней.
  • Один из двенадцати — додекаэдр.
  • Один из двадцати — икосаэдр.
  • Один из ста — два десятигранника, на одном написано «00, 10, 20…», на другом — «0, 1, 2…» Некто Зокки придумал 100-гранник «зоккиэдр», однако он больше показуха: очень большой, долго не успокаивается[1], непонятно, как считать результат, если уткнулся в препятствие[2], и нет гарантии равномерного распределения.
  • Нечасто встречаются полуправильные многогранники: берут правильный и делят грань на меньшие куски. Чаще всего — чтобы получить неравномерное распределение с заданными характеристиками (Formula D).

Также используют колоду карт или вертушку (волчок, рулетку). Настольные ролевые системы Deadlands и Savage Worlds, в частности, известны использованием карт; а в первой кастование заклинаний вообще моделируется покерными комбинациями.

Поскольку даже в неслучайных играх приходится выбирать, кто начинает или в какие ворота играть, используют бросание на пальцах, монету, «угадай, в какой руке» или «угадай, с какой стороны секундная стрелка».

В компьютерных играх[править]

Настольные ролевые игры принципиально используют рандом. Из них рандом переполз в CRPG. Вообще-то, случайность используется везде, даже в шутерах. Просто шутер за одну секунду «пытает удачи» едва ли не десяток раз, и работает центральная предельная теорема, гарантирующая малый общий разброс. А вот в RPG (настольных и компьютерных), где рандом часто решает, взорвалась бомба или была обезврежена, был крит или нет, неудачный рандом вызывает кучу ругани[3].

Если компьютерный генератор случайных чисел с изъянами — например, у него сильные последовательные корреляции — это называют корейский рандом, в честь корейских MMORPG, в которых это стало «притчей во языцех». Пуассон показал: даже если случайность самая что ни на есть случайная и независимая, раз в год может быть так, что выпадут три или четыре последовательных крита[4]. Однако корейский рандом задолбал ролевиков настолько, что иногда статистику искусственно сглаживают: если в прошлый раз был крит, в следующий раз вероятность крита уменьшится; если, наоборот, долго не было — вероятность увеличивают[5].

Цифровые компьютеры устроены так, что один и тот же код с одними и теми же данными даёт один и тот же результат. Поэтому для низкокачественных — пригодных для игр не на деньги — случайных чисел используют труднопредсказуемый алгоритм. Но всё-таки это алгоритм и потому он детерминированный, поэтому его предсказуемость применяется с пользой. Инициализируем на двух машинах генераторы одной и той же затравкой — и они будут выдавать одни и те же числа (на этом основан мультиплеер Doom[6]). Такая предсказуемость используется и в Elite, позволяя одним числом записать целую галактику, аналогичный принцип применяется и в Spore.

Вызывает бурю негодования рандом и в играх Paradox Interactive: как бы ни сильна была бы ваша армия, она ничто, если на кубике «1 против 6». Очень яркий пример «Святого Рандомия».

Когда нужны высококачественные случайные числа (например, в криптографии или азартных играх), ищут источники настоящей случайности, например, таймеры, счётчики команд, движения мыши. Лучшим источником считается выброс частиц радиоактивными веществами.

Терминология, связанная с рандомом[править]

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

Святой Рандомий — когда победа или поражение слишком зависит от случайности.

2d6+1 — характерная запись формул, непонятная тем, кто совсем с настолками не знаком. Означает «бросить два шестигранных кубика и к сумме прибавить 1».

Примечания[править]

  1. Сам Зокки рекомендовал бросать его в сосуд с водой, что не слишком-то удобно.
  2. В некоторой мере этому подвержены и другие многогранники, кроме тетраэдра и куба. Для последних всё просто: застрял у препятствия — нижней считается та грань, которая лежит на препятствии. Ролевики, подскажите, как вы поступаете с застрявшими у препятствия додекаэдрами и икосаэдрами.
    • Комментарий ветерана: да я, когда мастерю, вообще любой игральный кубик велю бросать заново, если он не лёг ровно. Дайс упал со стола на пол — незачёт, переброс. Дайс натолкнулся на препятствие, но лёг ровно — зачёт.
    • Комментарий ветерана № 2: насколько я знаю, так делают все. Неясно — значит, переброс. Если остановился у препятствия, но лежит ровно и показание дайса читается однозначно — в нашей компании это принималось за легитимный бросок.
    • Комментарий ветерана № 3: Подтверждаю слова предыдущих ораторов. В варгеймах мы поступаем точно так же.
    • Комментарий ветерана № 4: Если на столе есть что-то, у чего дайс может застрять (то есть, почти всегда), использую для бросков пустую обувную коробку. И не застрянет, и не укатится.
    • Комментарий ветерана № 5: А ещё можно использовать т. н. Dice tower, он же кубомёт.
  3. Ой, сколько было мата с той стороны, когда в DotA авантюрный прыжок Мортред, Призрачной убийцы закончился удачно из-за двух критов подряд — при том, что Dota 2 сглаживает рандом.
  4. Пуассон рассмотрел статистику несчастных случаев от удара лошадиным копытом и сказал: все эти всплески — 3 или 4 смерти — в пределах статистики и ничего предпринимать не надо.
  5. Псевдослучайное распределение в DOTA2
  6. Там есть аж два генератора — синхронный P_Random и асинхронный M_Random, оба реализованы таблицей на 256 значений (причём не перестановкой, а какими попало 256 числами).