Процедурная генерация (Hjkey;rjugx iyuyjgenx)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/74/Dragon_trees.jpg/220px-Dragon_trees.jpg)
Процедурная генерация (англ. 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]:
- Скорость: в зависимости от задачи требования разнятся от миллисекунд до месяцев, но в общем случае контент должен быть создан вовремя для удовлетворения нужд игрового процесса.
- Надёжность: некоторые генераторы создают «кучу чего-то», в то время как другие могут гарантировать выполнение заданных критериев, например всегда обеспечивать возможность проходимости игроком до выхода лабиринта.
- Контролепригодность: способность контролировать сгенерированный контент исходя из ситуации и предоставление геймдизайнеру соответствующей свободы (данное свойство требуется далеко не всегда); например, генерация гладкого продолговатого камня или создание уровня с определённой атмосферой.
- Разнообразие: создание такого контента, который был бы как можно более разным на разных запусках, и при взгляде на него игрок не чувствовал бы однообразие.
- Креативность и правдоподобие: генерация такого контента, который выглядит так, как будто его создал человек, а не генератор.
Примечания
[править | править код]- ↑ 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.
- ↑ PCG book, 2016, p. 1: «PCG as the algorithmical creation of game content with limited or indirect user input».
- ↑ 1 2 3 PCG book, 2016, p. 1.
- ↑ 1 2 3 PCG book, 2016, p. 2.
- ↑ PCG book, 2016, p. 3, 4.
- ↑ PCG book, 2016, p. 4.
- ↑ PCG book, 2016, p. 6, 7.
Литература
[править | править код]- Shaker, Noor and Togelius, Julian and Nelson, Mark J. Procedural Content Generation in Games : [англ.]. — Springer, 2016. — 218 с. — ISBN 978-3-319-42714-0.