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

Эта статья находится в стадии проработки и развития, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

Процедурная генерация (англ. procedural generation, сокр. PCG) — автоматическое создание игрового контента с помощью алгоритмов[1][2]. Другими словами, PCG представляет собой программное обеспечение, которое может создавать игровой контент самостоятельно, или совместно при взаимодействии с игроками или геймдизайнерами[3]. Под контентом понимается создание уровней игры, карты игрового мира, правил игры, текстур, сюжетов, предметов, квестов, музыки, оружия, транспортных средств, персонажей и др[3]. В данном контексте под играми понимаются компьютерные игры, видеоигры, настольные игры, карточные игры, головоломки и другие[3]. Ключевой особенностью создаваемого контента является то, что он должен быть играбельным — игрок должен быть в состоянии пройти созданный уровень, использовать сгенерированное оружие, подняться по сгенерированной лестнице и тому подобное[4].

Термины «процедурный» и «генерация» относятся к компьютерам, так как PCG должно быть запущено в виде процедуры на компьютере, которая выдаст на выход что-то для последующего применения. При этом процедура является частью чего-то, например всей игры или инструмента геймдизайнера[4].

Применение

В качестве характерных примеров использования PCG называются: генерация без участия человека подземелий в приключенческих играх (таких как The Legend of Zelda), получающая новый мир на каждом запуске; система, создающая новые типы вооружений в шутере в космическом сеттинге в зависимости от действий игрока; генерация полной, играбельной и сбалансированной настольной игры; внутренняя процедура игрового движка, быстро заполняющая игровой мир растениями; инструмент, дающий возможность создавать человеку карты для стратегической игры, и при запросах и заданных изменениях пересчитывающий карту для её улучшения, а также предлагающий варианты, позволяющие сделать карту более сбалансированной и интересной. В то же время, простой редактор карт, искусственный интеллект для настольной игры или инструмент интеграции созданного контента не относятся к PCG[4].

Целью использования PCG может являться создание игрового контента без участия человека (что может быть как менее затратно, так и помогать геймдизайнерам в решении их задач), разработка других типов игр (улучшение показателей разнообразия и реиграбельности), адаптация игр под игрока «на лету», улучшение контента с помощью алгоритмических решений, а также формализация геймдизайна как широкая научная задача[5].

Первые широко известные применения PCG относятся к началу 1980-х гг., когда при ограниченных ресурсах компьютеров можно было создавать большие и разнообразные миры — характерными примерами являются Rogue и Elite. В более позднее время PCG используется в коммерческих играх: например, в X-COM: UFO Defense (1994) и Diablo (1996) PCG используется для создания карт, генерации местоположения и числа монстров и предметов; краеугольным камнем игрового процесса PCG становится в Spore, использующей процедурную анимацию; повсеместно используется в серии Civilization для создания карт; известными примерами применения становятся Minecraft и Spelunky (игровой мир) и Tiny Wings (генерация текстур)[6].

Целевые свойства генерации

Создаваемый контент должен удовлетворять определённым условиям и таким образом решать соответствующие проблемы, и на практике чаще всего рассматриваются следующие свойства[7]:

  • Скорость: в зависимости от задачи требования разнятся от миллисекунд до месяцев, но в общем случае контент должен быть создан вовремя для удовлетворения нужд игрового процесса.
  • Надёжность: некоторые генераторы создают «кучу чего-то», в то время как другие могут гарантировать выполнение заданных критериев, например всегда обеспечивать возможность проходимости игроком до выхода лабиринта.
  • Контролепригодность: способность контролировать сгенерированный контент исходя из ситуации и предоставление геймдизайнеру соответствующей свободы (данное свойство требуется далеко не всегда); например, генерация гладкого продолговатого камня или создание уровня с определённой атмосферой.
  • Разнообразие: создание такого контента, который был бы как можно более разным на разных запусках, и при взгляде на него игрок не чувствовал бы однообразие.
  • Креативность и правдоподобие: генерация такого контента, который выглядит так, как будто его создал человек, а не генератор.

Примечания

  1. Julian Togelius, Emil Kastbjerg, David Schedl, Georgios N. Yannakakis. What is Procedural Content Generation?: Mario on the Borderline (англ.) // Proceedings of the 2Nd International Workshop on Procedural Content Generation in Games. — New York, NY, USA: ACM, 2011. — P. 3:1–3:6. — ISBN 9781450308724. — doi:10.1145/2000919.2000922.
  2. PCG book, 2016, p. 1: «PCG as the algorithmical creation of game content with limited or indirect user input».
  3. 3,0 3,1 3,2 PCG book, 2016, p. 1.
  4. 4,0 4,1 4,2 PCG book, 2016, p. 2.
  5. PCG book, 2016, p. 3, 4.
  6. PCG book, 2016, p. 4.
  7. PCG book, 2016, p. 6, 7.

Литература