Другие языки программирования и технологии

Рандом в играх.

Мне стало интересно, как реализована процентная вероятность в играх (того же попадания). Может кто примерно знает или догадывается.
Я думаю что генерируется одно например из 4 чисел а потом если выпало например 3 то + а если выпало остальное то -. (25%)
Владимир Долгушин
Владимир Долгушин
596
Лучший ответ
Анвар Хамзаев Я тоже такое предполагаю. Но посмотрев возможности с++ в рандоме, стал сомневаться.
Реализация процента дропа примерно такая:
При действии пользователя (удар мечом по мобу; попытка открыть ящик с кладом и прочее) на игровом сервере (или локально, если игра оффлайновая) генерируется случайное число из диапазона 0..100 (или от 0..1, не важно).
Предположим, что для данного действия шанс дропа составляет 10%, тогда на сервере проверяется, что это случайное число находится в диапазоне 0..10 (или от 0 до 0.10). Если да, находится, то дроп с моба дропается, ящик содержит ништяк и прочее. Если не находится в этом диапахоне, то дроп не падает, в ящике пусто и прочее.
Антон Валовень
Антон Валовень
91 146
Очень просто.
Просто те у кого она грамотно реализована посещали лекции по матану: Теория Вероятности и Статистика, успешно освоили материал и смогли применить его в Играх.

Все рулетки, блекджеки (кроме шлюх ессно), "однорукие" бандиты и игровые автоматы,
а сейчас еще и донатные игрули с "рандомом" (типа покрути барабан получи золотого оленя или купи два оленя получи золотого - только покрути сначала барабан)
основаны на этих двух математических дисциплинах.

Зная тервер и статистику (не просто об их существовании, а умея решать задачки) ты запросто сможешь просчитать вероятность выигрыша в рулетку и с легкостью сможешь реализовать игру в которой будет рулетка почти такая же как в реальности :) с той лишь разницей что на электронной рулетке ты сможешь без палева повышать или понижать шанс выпадения того или иного числа или цвета.

Почитайте: vc.ru/flood/13255-game-balance-5
В принципе идея одна: получить случайное число скажем от 1 до 100, сравнить его на попадание в интервал от 1 до 10 (это будет 10%) Тем не менее есть попутно огромное количество проблем; Одна из которых, - необходимо обеспечить нормальное распределение* случайных чисел; Проще говоря, чтобы выпадали случайные числа от 1 до 100 без повторения в случайном порядке, для конкретного игрока; Тогда мы получим честный 10% шанс
Donilko Altergot
Donilko Altergot
7 579