1. Генератор всегда генерирует одинаковые последовательности от одного сида, потому что под капотом всегда простенький код типа этого https://ravesli.com/urok-71-generatsiya-sluchajnyh-chisel-funktsii-srand-i-rand/ Каждое следующее число генерится от предыдущего. Семя — это когда ты устанавливаешь это предыдущее число руками. Формулы обычно подбираются так, чтобы примерно получить случайное распределение. 2. Настоящие генераторы случайных чисел нужны только в узких кейсах типа криптографии. В геймдеве они, наоборот, не используются — чтобы можно было сохранить состояние «рандома» вместе с состоянием мира. В Doom'е пошли ещё дальше и заменили формулы на табличку чисел (см. картинку) В итоге функция рандома требует 1 сложение и 1 доступ к памяти, что облегчает вычисление, если ты запускаешь программу под 486. А если ты завязываешь всю игру на него (поведение монстров, анимации, рандомный дамаг), тебе для записи демок достаточно записать только инпут с клавиатуры, при просмотре демки рандом будет вести себя точно так же, как у играющего.
1. Генератор всегда генерирует одинаковые последовательности от одного сида, потому что под капотом всегда простенький код типа этого https://ravesli.com/urok-71-generatsiya-sluchajnyh-chisel-funktsii-srand-i-rand/
Каждое следующее число генерится от предыдущего. Семя — это когда ты устанавливаешь это предыдущее число руками. Формулы обычно подбираются так, чтобы примерно получить случайное распределение.
2. Настоящие генераторы случайных чисел нужны только в узких кейсах типа криптографии. В геймдеве они, наоборот, не используются — чтобы можно было сохранить состояние «рандома» вместе с состоянием мира.
В Doom'е пошли ещё дальше и заменили формулы на табличку чисел (см. картинку)
В итоге функция рандома требует 1 сложение и 1 доступ к памяти, что облегчает вычисление, если ты запускаешь программу под 486.
А если ты завязываешь всю игру на него (поведение монстров, анимации, рандомный дамаг), тебе для записи демок достаточно записать только инпут с клавиатуры, при просмотре демки рандом будет вести себя точно так же, как у играющего.