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

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

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

Применение

править
 
Процедурный ландшафт, отображаемый в Terragen.

В качестве характерных примеров использования 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. — С. 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. 1 2 3 PCG book, 2016, p. 1.
  4. 1 2 3 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.

Литература

править

Ссылки

править