Куток

Обкладинка для допису Нерандомний рандом
ashlander
ashlander

Додано

Нерандомний рандом

Певний додаток до недавньої теми Чому Рандом Може Врятувати Твою Гру?

Доброго дня в клубі випадкових ігроладобудівників, мене звати Андрій, і я не люблю рандом (випадковість). Проблема випадкових подій в ... сюрприз - випадковості. Коли є 90% шанс надавати ворогу на горіхи, але ви промахуєтесь 3 рази поспіль і хочете знайти розробника цього прекрасного творіння щоб влаштувати випадкове випадіння в вікна, але піднімеш ти свою гузку тільки з вірогідністю 1 до 3d3.

І так без випадковості можна сворювати дуже круті ігри, це доречі один з підходів розробника "FTL" (Faster than Light) і "Into the Breach". Як приклад він приводив одну JRPG де, один з персонажів не міг і миші забити через слабкість, і як виявилось кількість залежностей, що впливали на силу залежало від колосальної кількості прихованих параметрів (наприклад день народження персонажу). Очевидно? - ніт.

Отже крім фрустрації від самої випадковості, можна потрапити в абсолютно не зрозумілу і не прогнозовану ситуацію для гравця - і отримати "та якого біса".

Але що якщо дуже потрібно чи хочеться. Справді випадковість дозволяє сворити видимість різноманітності, дешево і сердито. Один із хороших виходів - невипадкова випадковість. Це секрет, але більшість хороших ігор використовуюють щось подібне. А розробники дуже серйозно вкладаються у розробку такого модуля рандомізації. Навіщо?

Практика показує, що найвищого емоційного задоволення гравець отримує, коли дістає бажане за мить до фіаско, чи отримує достойний супротив від супротивника завжди (привіт серіїї TES де супротивники ростуть разом з персонажем). І частіше це не стосується безпосередньо випадковості, але... залежить від реалізації.

Як може виглядати невипадкова випадковість (приводжу свій приклад, але підходів багато)? Наприклад вказується кількість очікуваних позитивних і негативних шансів на подію, випадіння речей. Припустімо ставимо 5 позитивних до 10 негативних. І тепер віддаємся звичайній випадковості. Але перелом відбувається коли досягається очікуваний ліміт, наприклад, по факту ми отримали 1 позитивних випадінь і 10 негативних, отже ми досягли ліміту по негативним. Для того щоб зберегти очікувану пропорцію ми могли б викинути 4 позитивних поспіль, але це не виглядає дуже реалістично. Що якщо трішки зкоректувати підхід і все ще викидати з чесною випадковістю, АЛЕ поступово збільшувати вігогідність позитивного кидку з кожним небажаним викидом негативного результату:

випало +0 -0 вірогідність 5 до 10
випало +1 -10 вірогідність 6 до 10 (досягнуто ліміту негативних кидків)
випало +1 -11 вірогідність 7 до 10
випало +2 -11 вірогідність 7 до 10
випало +2 -12 вірогідність 8 до 10
випало +3 -12 вірогідність 8 до 10
випало +4 -12 вірогідність 8 до 10
випало +0 -2 вірогідність 5 до 10 (досягнуто ліміту позитивних кидків)

Коли всі позитивні кидки досягли очікуваних значень - повертаєм вірогідності назад зі збереженням вже випалих негативних.

Варіантів вдосконалити цей алгоритм існує достатньо, це я залишу вам.

Сподіваюсь, це дасть трішки розуміння як можна працювати з невипадковою випадковістю.

Бувайте

Топ коментарі (3)

Звернути
 
titlechanqwery profile image
Богдан

Ну я до речі казав що не треба робити не чесний рандом. Діло в тому що багато хто робить рандом занадто рандомним, і там де він не потрібен. Треба робити так щоб гравець очікував, і ні в одночас. Це і додає різноманіття до гри.

Звернути
 
ashlander profile image
ashlander

Звичайно, я ніяк щодо вашого допису і не виступав. Навпаки вважаю що тема піднята добре. А це просто доповнення із ще раз поясненням чим може бути поганий рандом. Спочатку ставлю проблему - потім її вирішую.

Звернути
 
titlechanqwery profile image
Богдан

Ну так ви написали що це доповнення. Просто я написав цей коментар більше для тих, хто може не правильно зрозміти)

Куток

Підписуйтеся на наші соціальні мережі:
Telegram
Twitter
Facebook


Тепер у нас також є Youtube канал!