Процедурная генерация — это метод, используемый в компьютерной графике, разработке игр и других областях для создания контента алгоритмически, а не вручную. Он предполагает использование математических алгоритмов и рандомизации для динамического создания виртуальных сред, персонажей, уровней и других элементов.
Одним из главных преимуществ процедурной генерации является способность генерировать контент «на лету», предлагая бесконечные возможности для исследования. Такой подход позволяет разработчикам создавать большие среды открытого мира, которые кажутся захватывающими и реалистичными, при этом минимизируя требования к хранению. Вместо хранения заранее разработанных уровней или ландшафтов необходимые данные генерируются по мере прохождения игроком игры, что делает каждое прохождение уникальным.
Возьмем например No Man's Sky, тут все элементы игры генерируются процедурно, включая солнечные системы, их экосистему, флору и фауну, их модели поведения, искусственные сооружения и инопланетные фракции и их космические корабли. Движок игры использует несколько алгоритмов, которые могут имитировать широкий спектр геометрии и структур, встречающихся в природе. Художественные элементы, созданные художниками-людьми, также используются и изменяются в этих системах генерации. Аудио игры, включая окружающие звуки и лежащий в ее основе саундтрек, также использует методы процедурной генерации на основе базовых сэмплов, разработанных Полом Уиром и музыкальной группой 65daysofstatic.
Хотя процедурная генерация будет начинаться с нуля для любого нового посетителя планеты, исходные факторы, вводимые в алгоритм, должны быть идентичными, чтобы каждый персонаж видел одни и те же типы существ и поведения, если не идентичных особей (если только два персонажа не находятся достаточно близко друг к другу); действительно, кажется, что вымирание видов невозможно.
Таким образом, на примере такой игры, как No Man's Sky я кратко разобрал, что процедурная генерация это важная вещь в играх такого масштаба, поскольку разработчики игры не смогли бы за всю свою жизнь создать 18.000000000000000000000000000000 (квинтильонов) разнообразных планет, и для каждой из них придумать уникальных обитателей, дизайн и мини-ивенты в космосе, такие как нападения пиратов, встреча капитанов других кораблей с последующим выкупом их судна и тд.