Чи використовували якісь проекти відеоігор цікаві способи неоднорідні випадкові числа?


30

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

У багатьох випадках реальна сума "шкоди", заподіяної атакою, швидше за все, буде ближчою до розподілу кривої гаусса / дзвону, що багато призводить до середини, але іноді дуже хвилююча зовнішня і плавна крива, що з'єднує їх. Ігри на кубики, як поселенці Катану, імітують гауссові розподіли, додаючи разом кілька незалежних рулонів, але я відчуваю, що я майже ніколи не бачив цього механіка у відеоіграх.

Схоже, такі ігри, як «Цивілізація» (Сід Мейєр широко розмовляв у GDC про сприйняття гравців, що не відповідають фактичній математиці, що використовується в грі) отримали б користь від результатів, які відповідають тому, як працюють речі в реальному світі. Чи використовували якісь відеоігри цікавий спосіб гауссового чи нерівномірного розподілу випадкових чисел?


1
приклад lol @ Civ. Який лучник, що б’є танк, не цікавий? Ха-ха! Я гадаю, це залежить, чи ти той, хто зі стрільця. :-)
paulecoyote

Зараз я не можу знайти посилання, але суть у тому, що гравці були дуже засмучені, коли "70% шансів на перемогу", як показано в інтерфейсі, призводять до того, що іноді програють. Він звинувачував у тому, що люди погано ставляться до ймовірності, але я звинувачую в тому, що "70% шансу на перемогу" навіть не має сенсу в світі аналогічних результатів битв.
Бен Цайглер

Власне, я думаю, що проблема полягала в тому, що ймовірність була розрахована неправильно, оскільки це було лише евристичним прогнозом. Ви б прогнозували 90%, коли ваш шанс склав 98% або щось подібне. До речі, DnD також використовує неоднорідні числа - пошкодження, а HP - це кілька рулонів кісток.
Супербест

Відповіді:


22

Для точності зброї стрільці часто використовують випадковий розподіл Гаусса. (Якщо ви використовуєте лінійні випадкові числа і маєте відмітки кулі, гравцеві дуже легко зрозуміти, що розподіл точності є квадратним, що "почувається неправильним".)

Один цікавий метод випадкового відбору, який ви не згадуєте, але який досить часто виявляється в іграх, - "випадковий без заміни". Це аналогічно малюванню карт з колоди; гра працює у довільному порядку за допомогою набору можливих результатів (складених разом із потрібним розподілом), а потім "перестановки". Це робиться, щоб знизити ймовірність удачливих чи нещасних ударів.


7
Концепція у вашому другому абзаці також відома як "мішок перетасування".
Тетрад

2
Також для стрільців звичайно вибирати випадкову точку на колі (тобто кут і радіус) для ударів кулі. Це також усуває площу і гарантує, що більше куль потрапляє поблизу центру, ніж ні.
Шон Джеймс

9

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

Це приємна властивість, що розподіл подій, якщо у вас є два часові кроки на 1 секунду, такий самий, як один часовий крок 2 секунди, настільки чудовий для моделювання з часовими кроками змінної довжини.


8

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


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

Раніше я бачив критичні хіти в деяких RPG-іграх, але зазвичай для ігор, що базуються на дії, цифри тримаються навмисно простими з причини: гравець зайнятий бігом і стрибками, ухиленням і стріляниною, і в них справді немає часу робити ймовірні обчислення в їхній голові.

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


навіть warcraft 3 використовує пошкодження на основі кісток, більшість збитків у редакторі сценаріїв використовують формулу "X + YdZ"
Хенк

2

League of Legends має героя на ім’я Gangplank з атакою, яка раніше мала рівномірний розподіл, який вони змінили на гаусса. Існує область ефекту кола, де можуть траплятися кілька ударів, і вони вирішили змусити кластеризуватися до центру.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.