Рандом

Материал из Posmotreli
Перейти к навигации Перейти к поиску
Склифосовский.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.

(link)

Рандом и даммаку — плохое сочетание (игра: I Wanna Kill the Kamilia 3).

Вызывает бурю негодования рандом и в играх 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 числами).