апрель 2019

О процедурной генерации формирования трехмерных уровней компьютерной игры


Хребет Михаил Александрович Хребет М. А. , Кодола Г. Н.
Химия и современные технологии
Abstract / Full Text

О процедурной генерации формирования трехмерных уровней компьютерной игры / Химия и современные технологии : Метериалы ІХ Международной научно-технической конференции студентов, аспирантов и молодых ученых «Химия и современные технологии», 2019. – C. 26-27


Процедурная генерация – это широко распространенный термин в разработке игр. Многие разработчики в попытках разнообразить и увеличить наполнение своих игр прибегают к процедурной генерации определенных ее частей. Процедурная генерация – это программное обеспечение, которое позволяет автоматически создавать игровой контент определенного вида с помощью алгоритмов, а не создавать его вручную.

Одной из главных причин использования разработчиками в своих играх процедурной генерации становится увеличение игровых пространств, а также их разнообразие и непредсказуемость.

Существует большое количество разнообразных алгоритмов процедурной генерации. Чаще всего такие алгоритмы используют для создания разнообразия растительности на уже готовых картах [1]. Так, например, написав алгоритм процедурной генерации деревьев и применив его на практике, у разработчиков тут же отпадает необходимость в ручной проработке всех деревьев на карте, ведь теперь этим занимается написанный алгоритм.

Есть так же и более сложные алгоритмы, которые затрагивают создание не только отдельных аспектов уровня, а меняют всю карту в целом [2]. Следующие алгоритмы позволяют по нажатию одной клавиши создавать полноценный трехмерный игровой уровень.

1. Алгоритм процедурной генерации уровня при помощи построения объемного графика математических функций (рис. 1)

Рисунок 1 – Трехмерный график математической функции формиро-вания рельефа

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

2. Алгоритм процедурной генерации игрового уровня с помощью построения случайной матрицы высот.

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

3. Алгоритм процедурной генерации при помощи ручного создания разных участков карты с последующим их соединением с помощью алгоритма.

Плюсы: высокая вариативность за счет постоянного перемешивания клеток, а также выбора лишь некоторых из них. Данный алгоритм очень хорошо подходит для создания морских карт, потому как уровень высоты моря на всех клетках одинаковый, а небольшие острова можно размещать на одиночных клетках. Минусы: применение данного алгоритма для создания больших неравномерных карт проблематично, ввиду того, что необходимо будет настроить возможность соединения всех клеток между собой для качественного совпадения высот клеток.

4. Алгоритм процедурной генерации сложного игрового уровня при помощи метода вариативной подстановки.

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

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

References
  1. Shaker, Noor and Togelius, Julian and Nelson, Mark J. Procedural Content Generation in Games. – Springer, 2016. – 218 р.
  2. Ebert, David S.; Musgrave, F. Kenton; Peachey, Darwyn; Perlin, Ken; Worley, Steve (2002). Texturing and Modeling: A Procedural Approach (3rd ed.).