Использовали ли в игровых проектах неоднородные случайные числа интересными способами?

30

Разнообразные видеоигры используют равномерно распределенные числа, чтобы определить исход события, например, «50% шанс попасть» почти всегда означает, что случайное число с плавающей запятой от 0-1 больше 0,5. Во многих играх несколько одинаковых процентных соотношений накладываются друг на друга, например, бросок D & D - это равномерно распределенное число от 1 до 20, за исключением того, что 1 и 20 имеют особые результаты. На мой взгляд, кажется, что такие вещи, как критические попадания, добавляются дизайнерами, чтобы попытаться подражать тому факту, что на самом деле удар / пропуск или выигрыш / проигрыш на самом деле не являются бинарным результатом.

Во многих случаях реальное количество «ущерба», нанесенного атакой, вероятно, будет ближе к распределению кривой Гаусса / колокола, которое во многих случаях приводит к середине, но иногда очень захватывающему выбросу и плавной кривой, соединяющей их. Игры в кости, такие как Settlers of Catan, эмулируют гауссовые распределения, складывая несколько независимых бросков, но я чувствую, что почти никогда не видел эту механику в видеоиграх.

Похоже, что такие игры, как Civilization (Сид Мейер много говорил на GDC о восприятии игрока, не совпадающем с реальной математикой, использованной в игре), выиграют от результатов, которые соответствуют тому, как все работает в реальном мире. Использовали ли какие-либо видеоигры гауссово или иным образом неравномерное распределение случайных чисел интересными способами?

Бен Зейглер
источник
1
LOL @ Civ пример. То, что лучник, бьющий Танка, не забавно? Ха - ха! Я полагаю, это зависит от того, лучник ли ты. :-)
paulecoyote
Я не могу найти ссылку сейчас, но суть в том, что игроки были очень расстроены, когда «70% шанс выиграть», как показано в пользовательском интерфейсе, иногда приводил к проигрышу. Он обвинил тот факт, что люди плохие в вероятности, но я обвиняю тот факт, что «70% шанс на победу» даже не имеет смысла в мире аналогичных исходов сражений.
Бен Цейглер
На самом деле я думаю, что проблема заключалась в том, что вероятность была рассчитана неправильно, поскольку это был только эвристический прогноз. Вы получите прогноз на 90%, если ваш шанс составит 98% или что-то в этом роде. Кстати, DnD также использует неоднородные числа - урон, а HP - несколько бросков костей.
Superbest

Ответы:

22

Стрелки часто используют гауссово случайное распределение для точности оружия. (Если вы используете линейные случайные числа и у вас есть маркированные надписи, игроку очень легко увидеть, что распределение точности является квадратным, что «кажется неправильным».)

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

Чарли
источник
7
Понятие в вашем втором абзаце также известно как «Сумка Shuffle».
Тетрад
2
Стрелкам также свойственно случайным образом выбирать точку на окружности (то есть угол и радиус) для попадания пуль. Это также устраняет площадь и гарантирует, что больше пуль попадет ближе к центру, чем нет.
Шон Джеймс
9

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

Это имеет приятное свойство, состоящее в том, что распределение событий, если у вас есть два временных шага в 1 секунду, совпадает с одним 2-секундным временным шагом, поэтому отлично подходит для моделирования с временными шагами переменной длины.

mikera
источник
8

Что-то, что я делал в прошлом и что World of Warcraft делает в настоящее время, - это увеличивает вероятность случайного события на основе количества попыток с момента последнего успешного события. То есть, например, у квестового предмета может быть шанс выпадения 20% при первом убийстве NPC, 22% при 2-м, 25% при 3-м, сбрасывание обратно до 20%, когда он выпадает. Я реализовал дерево технологий, в котором вероятность открытия технологии увеличивалась с каждым ходом, пока она не достигла порядка 99,9%.

Дуга-W
источник
7

Случайные встречи в RPG часто бывают неоднородными.

Set X to a random integer between 64 and 255.
For each step in plains, decrement X by 4. 
For each step in forest, swamp, or desert, decrement X by 8.
When X < 0, a fight ensues. Go to step 1.

Это делает встречи более реалистичными, потому что животные / деревья и т. Д. Любят иметь некоторое пространство между ними.

Эгон
источник
Я никогда не думал об этом, но это довольно ловкий подход ко многим рандомизированным отсчетам.
Kzqai
2

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

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

Ян Шрайбер
источник
даже warcraft 3 использует урон, основанный на игральных костях, большинство повреждений в редакторе сценариев использует формулу «X + YdZ»
Хенк
2

У Лиги Легенд есть герой по имени Гэнгпланк с атакой, которая имела почти равномерное распределение, которое они изменили на гауссиан. Существует круговая область эффекта, в которой может произойти несколько попаданий, и они решили сгруппировать его по направлению к центру.

lathomas64
источник