Процедурная генерация в играх

 Процедурная генерация- это автоматическое создание игрового контента с помощью алгоритмов.

 Чаще всего все алгоритмы строятся на правилах и ограничениях.

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

  •  Процедурная  анимация.

Процедурная анимация- это компьютерная анимация которая автоматически генерирует анимацию в режиме реального  времени согласно установленным правилам.

В компьютерной игре "Spore" реализованная процедурная анимация. Также в игровом движке Unity есть ее реализация с помощью инструмента инверсивная кинематика IK.

  • Генерация мешей(модели).
Генерация мешей- это создание модели в режиме реального времени. Можно использовать при элементе разрушения объекта, где объект удалится, а вместо него процедурно сгенерируются элементы прошлого меша.
  • Генерация названий.
Процедурные названия- слова сгенерированные по определенным правилам или же алгоритму.
Используется в roguelike.

  • Генерация предметов и свойств предметов 
Процедурное создание предметов и свойств предмета- создание предметов с определенными названиями и свойствами. Используется в roguelike.

  • Генерация ландшафта, подземелий.
Процедурная генерация ландшафта - создание территорий по которым можно будет передвигаться в игре. Данная вещь является главным элементом roguelike. Алгоритмов для генерации ландшафта  очень много. Можно перечислить некоторые.
  1. WFC или коллапс волновой функции
  2. Диаграммы Воронного, 
  3. Походка пьяницы, 
  4. Клеточный автомат, 
  5. Шум Перлина
  6. т.д.
Можно отметить что алгоритм шума Перлина реализован в библиотеке Mathf игрового движка Unity и метод называется PerlinNoise. На рисунках видна текстура образованная с помощью шума Перлина и потом доработанная с помощью окрашивания которая показывает нам где горы,  водоемы, трава, песок.