Система генерации мира в современных играх работает на основе процедурной генерации. skillbox.ru habr.com Это метод создания данных при помощи алгоритма, а не вручную. habr.com
Процесс включает несколько этапов: skillbox.ru
- Создание «сида» (seed). media-xyz.com stopgame.ru Это значение, которое закладывается в алгоритмы генератора при создании мира. media-xyz.com Чаще всего оно представлено в виде псевдослучайного ряда цифр. media-xyz.com В качестве «зерна» можно использовать точное время, взятое из системы. media-xyz.com
- Преобразование начального значения. stopgame.ru Путём нескольких формул начальное значение преобразуется в 32-битное число. stopgame.ru
- Использование шума Перлина. skillbox.ru stopgame.ru Это алгоритм градиентного шума, который позволяет генерировать ландшафт. skillbox.ru Светлые участки шума Перлина считываются как возвышенности, а тёмные — как низины. skillbox.ru На их основе алгоритм создаёт приблизительный рельеф будущей карты. skillbox.ru Процесс повторяется несколько раз, пока не получается достаточно достоверный ландшафт с горами, долинами и ущельями. skillbox.ru
- Наполнение мира объектами. skillbox.ru Набор специфических алгоритмов и шаблонов случайным образом раскидывает по миру объекты — деревья, крепости, данжи, места спауна мобов. media-xyz.com
Генерация миров при этом подчиняется множеству заранее прописанных правил, чтобы избежать нестыковок. skillbox.ru