Рандом
Короче, Склихосовский! Генератор случайных чисел в играх. |
« | x: Кто такой Рандом? y: Рандом Намбер Генераторович (Random Number Generator) — про этого великого субъекта знает гугл, его и спрашивай. z: А ещё у него есть бабка Ивентия, которая радует нас уже целую неделю. |
» |
— Разговор на форуме «Героев войны и денег» |
В большинстве настольных и компьютерных игр без случайности скучновато. Во-первых, очень сложно разработать правила, при которых игра будет просчитываться с большим трудом, чтобы в большинстве ситуаций было хотя бы два в равной мере выгодных для игрока хода, или хотя бы кажущихся таковыми; очень быстро находится идеальная стратегия, позволяющая достичь наивысшего результата, которого невозможно достичь никаким другим способом. Самым известным примером, наверное, являются крестики-нолики. Во-вторых, если игрок хочет играть в шахматы, он, внезапно, может поиграть в шахматы, а не в жалкую пародию на них. Ведь за шахматами тянется продолжительная история их развития из банального варгейма до абстрактной, но динамичной игры. Большинство же игроков просто хочет с интересом убить время.
Но стоит добавить перетасованные карты или бросаемый кубик, как всё сразу становится разнообразнее: например, персонаж стреляет по врагу, но промахивается. Или корабли управляемого игроком флота не получают попутного ветра. Или наоборот, игрок «прикупил» два туза, или попал прямо в голову супостату.
Всё это называется рандóм, от англ. random — «случайный». Понятие «случайный» означает «непредсказуемый, но укладывающийся в статистику» — другими словами, выпадение кубика случайно, принятое противником решение — нет. Разумеется, только если речь идёт об идеальном или хотя бы достаточно опытном противнике, конечно; новичкам свойственно принимать необдуманные, не обоснованные ничем решения, ставящие порой профи в тупик.
Источники случайности в настольных играх[править]
Чаще всего используется игральная кость. Роль игральной кости обычно играют правильные многогранники или близкие к ним геометрические тела.
- Один из двух — кубики удобнее монеты, поэтому обычно используют чёт или нечет на бóльшей кости.
- Один из трёх или пяти — т. н. «чиж», призма со скруглёнными основаниями (ибо упасть она должна на бок).
- Один из четырёх — тетраэдр. Тетраэдр падает вершиной вверх, поэтому помечают не грани, а вершины. Или рисуют по три числа у рёбер, берётся то, которое стоит прямо. Реже октаэдр, у которого одной цифрой помечена пара граней — это удобнее (лучше катается), но в 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».
Примечания[править]
- ↑ Сам Зокки рекомендовал бросать его в сосуд с водой, что не слишком-то удобно.
- ↑ В некоторой мере этому подвержены и другие многогранники, кроме тетраэдра и куба. Для последних всё просто: застрял у препятствия — нижней считается та грань, которая лежит на препятствии. Ролевики, подскажите, как вы поступаете с застрявшими у препятствия додекаэдрами и икосаэдрами.
- Комментарий ветерана: да я, когда мастерю, вообще любой игральный кубик велю бросать заново, если он не лёг ровно. Дайс упал со стола на пол — незачёт, переброс. Дайс натолкнулся на препятствие, но лёг ровно — зачёт.
- Комментарий ветерана № 2: насколько я знаю, так делают все. Неясно — значит, переброс. Если остановился у препятствия, но лежит ровно и показание дайса читается однозначно — в нашей компании это принималось за легитимный бросок.
- Комментарий ветерана № 3: Подтверждаю слова предыдущих ораторов. В варгеймах мы поступаем точно так же.
- Комментарий ветерана № 4: Если на столе есть что-то, у чего дайс может застрять (то есть, почти всегда), использую для бросков пустую обувную коробку. И не застрянет, и не укатится.
- Комментарий ветерана № 5: А ещё можно использовать т. н. Dice tower, он же кубомёт.
- В сообществе Вархаммера с подачи официальных рульбуков принято, что если игрок не может попасть кубами по столу, то его войска\персонаж уж точно не попадут по врагу, так что такие броски считаются автопровалами.
- ↑ Ой, сколько было мата с той стороны, когда в DotA авантюрный прыжок Мортред, Призрачной убийцы закончился удачно из-за двух критов подряд — при том, что Dota 2 сглаживает рандом.
- ↑ Пуассон рассмотрел статистику несчастных случаев от удара лошадиным копытом и сказал: все эти всплески — 3 или 4 смерти — в пределах статистики и ничего предпринимать не надо.
- ↑ Псевдослучайное распределение в DOTA2
- ↑ Там есть аж два генератора — синхронный
P_Random
и асинхронныйM_Random
, оба реализованы таблицей на 256 значений (причём не перестановкой, а какими попало 256 числами).