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

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

Обзор [ править ]

Процедурный пейзаж, визуализированный в Terragen

Термин процедурный относится к процессу, который вычисляет определенную функцию. Фракталы - это геометрические узоры, которые часто можно создать процедурно. Обычное процедурное содержимое включает текстуры и сетки . Звук часто также генерируется процедурно и находит применение как в синтезе речи, так и в музыке. Он использовался для создания композиций в различных жанрах электронной музыки такими артистами, как Брайан Ино, который популяризировал термин « генеративная музыка ». [1]

В то время как разработчики программного обеспечения применяли методы процедурной генерации в течение многих лет, немногие продукты использовали этот подход широко. Процедурно сгенерированные элементы появлялись в более ранних видеоиграх: The Elder Scrolls II: Daggerfall разворачивается в мире, который в основном генерируется процедурно, что дает миру примерно две трети фактического размера Британских островов . Soldier of Fortune от Raven Software использует простые процедуры для детализации моделей врагов, в то время как в его сиквеле присутствует режим уровней, генерируемый случайным образом . Avalanche Studios использовала процедурную генерацию для создания большой и разнообразной группы детализированных тропических островов для Just Cause .Игра No Man's Sky , разработанная игровой студией Hello Games , основана на процедурно генерируемых элементах.

Современная демосцена использует процедурную генерацию для упаковки большого количества аудиовизуального контента в относительно небольшие программы.

Новые методы и приложения ежегодно представляются на таких конференциях, как конференция IEEE по вычислительному интеллекту, играм, искусственному интеллекту и интерактивным цифровым развлечениям. [2]

В частности, в применении процедурной генерации к видеоиграм, которые предназначены для многократного воспроизведения, существуют опасения, что процедурные системы могут генерировать бесконечное количество миров для исследования, но без достаточного человеческого руководства и правил для их управления результат становится "процедурным". овсянка », термин, придуманный писательницей Кейт Комптон, в том смысле, что, хотя можно математически сгенерировать тысячи мисок овсянки с помощью процедурной генерации, они будут восприниматься пользователем как одинаковые и не будут иметь понятия воспринимаемой уникальности, которую процессуальная система должна стремиться. [3]

Современное приложение [ править ]

Настольные ролевые игры [ править ]

Использование процедурной генерации в играх зародилось в настольных ролевых играх (RPG). [4] Ведущая настольная система Advanced Dungeons & Dragons предоставила «мастеру подземелий» способы создания подземелий и ландшафта, используя случайные броски кубиков, расширенные в более поздних выпусках сложными ветвящимися процедурными таблицами. Компания Strategic Simulations по лицензии TSR выпустила Dungeon Master's Assistant , компьютерную программу, которая генерирует подземелья на основе этих опубликованных таблиц. Туннели и тролли, также опубликованный TSR, был разработан в основном для одиночной игры и использовал аналогичную процедурную генерацию для своих подземелий. Другие настольные RPG заимствовали аналогичные концепции в процедурной генерации для различных элементов мира. [5]

Видеоигры [ править ]

Ранняя история [ править ]

Процедурно сгенерированная карта подземелья в видеоигре NetHack

До появления графически ориентированных видеоигр рогалики , жанр, вдохновленный Dungeons & Dragons, принятым для пасьянсов, широко использовали процедурную генерацию так же, как это делали настольные системы. К таким ранним играм относятся Beneath Apple Manor (1978) и тезка жанра Rogue (1980). Система процедурной генерации в рогаликах будет создавать подземелья в ASCII - или обычных системах на основе плиток и определять комнаты, коридоры, монстров и сокровища, чтобы бросить вызов игроку. Рогалики и игры, основанные на концепциях рогаликов, позволяют разрабатывать сложный игровой процесс без необходимости тратить много времени на создание игрового мира. [6]

Maze Craze 1978 года для Atari VCS использовал алгоритм для создания случайного нисходящего лабиринта для каждой игры. [7]

В некоторых играх использовались генераторы псевдослучайных чисел . Эти PNG часто использовались с предопределенными начальными значениями для создания очень больших игровых миров, которые казались заранее созданными. Предположительно, в Sentinel было 10 000 различных уровней, хранящихся всего на 48 и 64 килобайтах. Крайним случаем была Elite , которая изначально планировалась содержать в общей сложности 2 48 (примерно 282 триллиона) галактик с 256 солнечными системами в каждой. Однако издатель опасался, что такая гигантская вселенная вызовет недоверие у игроков, и восемь из этих галактик были выбраны для финальной версии. [8] Другие известные ранние примеры включают игру 1985 года « Спасение на Фрактале».которая использовала фракталы для процедурного создания в реальном времени скалистых гор чужой планеты и River Raid , игру Activision 1982 года, в которой использовалась последовательность псевдослучайных чисел, генерируемая регистром сдвига с линейной обратной связью для создания лабиринта с прокруткой препятствий.

Современное использование [ править ]

Процедурная текстура с использованием тесселяции Вороного

Хотя современные компьютерные игры не имеют тех же ограничений памяти и оборудования, что и предыдущие игры, использование процедурной генерации часто используется для создания рандомизированных игр, карт, уровней, персонажей или других аспектов, которые уникальны для каждого прохождения. [9] [10]

В 2004 году немецкой демо-группой был выпущен шутер от первого лица для ПК под названием .kkrieger . Он полностью содержится в 96- килобайтном исполняемом файле для Microsoft Windows, который при запуске генерирует сотни мегабайт трехмерных данных и данных текстуры. По словам одного из программистов, «это был полный провал в том, что касается игровой стороны (в основном потому, что никого из участников не особо волновал этот аспект)». [11]

RoboBlitz от Naked Sky использовал процедурную генерацию, чтобы максимизировать контент в загружаемом файле размером менее 50 МБ для Xbox Live Arcade . В « Споре Уилла Райта » также используется процедурный синтез.

Процедурная генерация часто используется в системах добычи квестовых игр, таких как ролевые игры и массовые многопользовательские ролевые онлайн-игры . Хотя квесты могут иметь фиксированные награды, другая добыча, такая как оружие и доспехи, может быть сгенерирована для игрока в зависимости от уровня персонажа игрока, уровня квеста, его результатов в квесте и других случайных факторов. Это часто приводит к тому, что добыча имеет качество редкости, применяемое, чтобы отразить, когда система процедурной генерации произвела предмет с атрибутами выше среднего. Например, серия Borderlands основана на системе процедурной генерации, которая позволяет создать более миллиона уникальных пушек и другого оборудования. [12]

Многие игры с открытым миром или выживанием процедурно создают игровой мир из случайного начального числа или начального числа, предоставленного игроком, так что каждое прохождение отличается. Эти системы генерации создают многочисленные биомы на основе пикселей или вокселей с распределением ресурсов, объектов и существ. У игрока часто есть возможность настроить некоторые параметры генерации, такие как указание количества воды в мире. Примеры таких игр: Dwarf Fortress и Minecraft.. Артефакт процедурной генерации вокруг этих игр состоит в том, что если пространство, которое игрок может исследовать, не ограничено, случайность процедурной генерации начнет производить больше шума, чем контента; Примером этого служит идея «Дальних земель» в некоторых более ранних версиях Minecraft , где обычные плавные переходы между биомами были заменены случайными образованиями. [13]

Процедурная генерация также используется в космических исследованиях и торговых играх. Elite: Dangerous , используя в качестве мировой основы 400 миллиардов известных звезд Галактики Млечный Путь , использует процедурную генерацию для моделирования планет в этих солнечных системах. Точно так же Star Citizen использует эту технологию для своих планет, чтобы создать коллекцию легко загружаемых планет размером с планету среди созданной вручную вселенной. I-Novae Infinity содержит множество процедурно генерируемых планет, между которыми игрок может путешествовать на космических кораблях. Outerra Anteworld - это разрабатываемая видеоигра, которая использует процедурную генерацию и данные реального мира для создания виртуальной копии планеты Земля в истинном масштабе.В No Man's Sky есть вселенная, содержащая 18 квинтиллионов планет, которые процедурно генерируются на лету, когда игрок встречает их, включая их местность, погоду, флору и фауну, а также ряд космических инопланетных видов. Эта вселенная определяется использованием одного случайного начального числа в их детерминированном механизме, гарантируя, что один и тот же контент будет генерироваться в одних и тех же местах для всех игроков, что позволяет игрокам делиться открытиями, используя только знание местоположения планет в виртуальная галактика. [14] [15]

Фильм [ править ]

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

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

MASSIVE - это высококачественный программный пакет для компьютерной анимации и искусственного интеллекта, используемый для создания визуальных эффектов, связанных с толпой, для кино и телевидения. Он был разработан для автоматического создания боевых армий из сотен тысяч солдат для фильмов Питера Джексона « Властелин колец» . [16]

Когерентный шум может быть чрезвычайно важным для рабочего процесса в кино. Симплексный шум часто быстрее с меньшим количеством артефактов, хотя также может использоваться более старая функция, называемая шумом Перлина . Когерентный шум в данном случае относится к функции, которая генерирует гладкую псевдослучайность в n измерениях.

Пейзажи в The Mandalorian создаются на лету с использованием модифицированного движка Unreal Engine 4 и светодиодов для проецирования результата, который снимается в реальном времени, чтобы показать точные отражения на площадке. [17] [18]

См. Также [ править ]

  • Вычислительное творчество
  • Фрактальный пейзаж
  • Дробное броуновское движение
  • Генеративное искусство
  • Линейный конгруэнтный генератор
  • Список игр, использующих процедурную генерацию
  • Синтез медиа (AI)
  • Шум , шум Перлина , симплексный шум
  • Процедурная анимация
  • Процедурное моделирование
  • Процедурная текстура
  • Случайное подземелье
  • Случайная карта
  • Генератор декораций

Ссылки [ править ]

  1. Брайан Ино (8 июня 1996 г.). «Речь в Сан-Франциско, 8 июня 1996 г.» . журнал inmotion . Проверено 7 ноября 2008 .
  2. ^ «Искусственный интеллект и интерактивные цифровые развлечения» . AIIDE.org . Проверено 12 июня +2016 .
  3. ^ Кук, Майкл (10 августа 2016 г.). «Чужие языки: как мы говорим о процедурной генерации» . Гамасутра . Проверено 7 октября 2019 года .
  4. ^ Браун, Джозеф Александр; Скирия, Марко (2018). «Процедурная генерация для настольных игр: подходы, ориентированные на пользователя, с ограничениями на вычислительные ресурсы». SEDA 2018: Материалы 6-й Международной конференции по разработке программного обеспечения для оборонных приложений . Международная конференция по разработке программного обеспечения для оборонных приложений. Рим, Италия. С. 44–54.
  5. ^ Смит, Джиллиан (2015). Аналоговая история создания процедурного контента (PDF) . Основы цифровых игр 2015. Пасифик Гроув, Калифорния . Проверено 7 октября 2019 года .
  6. ^ Хэтфилд, Том (2013-01-29). «Восстание рогаликов: жанр развивается» . GameSpy . Проверено 24 апреля 2013 .
  7. ^ "Безумный лабиринт" . Atari Mania .
  8. ^ Франсис Спуффорд (18 октября 2003). «Мастера своей вселенной» . Хранитель.
  9. Рианна Мосс, Ричард (1 января 2016 г.). «7 применений процедурной генерации, которые должны изучить все разработчики» . Гамасутра . Проверено 1 января 2016 года .
  10. Бейкер, Крис (9 августа 2016 г.). « Нет человека Sky“: Как игры Строительство Сами по себе» . Rolling Stone . Проверено 9 августа +2016 .
  11. ^ Гизен, Fabian (8 апреля 2012). «Метапрограммирование для безумцев» . Блог ryg .
  12. Куо, Райан (19 апреля 2012 г.). «Почему в Borderlands 2 самое стильное оружие в играх» . Wall Street Journal . Проверено 21 апреля 2016 года .
  13. ^ Пекхэм, Мэтт (8 августа 2016 г.). «NO MAN'S SKY ЯВЛЯЕТСЯ ДИКОЙ АМБИЦИОЗНОЙ, ВНЕШНЕЙ ОБЪЕМОМ И ОГРОМНЫМ ВЫЗОВОМ ДЛЯ СТАТУСНОЙ ИНДУСТРИИ ВИДЕОИГРОВ» . Время . Проверено 9 августа +2016 .
  14. ^ Хачатурян, Раффи (18 мая 2015). «Мир без конца: создание полномасштабного цифрового космоса» . Летопись игр. Житель Нью-Йорка . 91 (13). С. 48–57 . Дата обращения 5 августа 2015 .
  15. ^ Уилсон (16 июля 2015 г.). «Как 4 дизайнера создали игру с 18,4 квинтиллионами уникальных планет» . Быстрая компания . Дата обращения 9 августа 2015 .
  16. ^ "О массиве" . Огромное программное обеспечение . Проверено 12 июня +2016 .
  17. ^ Вставка: Почему «Мандалорианец» использует виртуальные наборы на зеленом экране | Movies Insider, опубликовано 6 июня 2020 г.
  18. ^ Gartenberg, Хаим (20 февраля 2020). «Как Mandalorian объединился с Epic Games, создателем Fortnite, чтобы создать свои цифровые наборы» . Грань . Архивировано 20 февраля 2020 года . Проверено 20 февраля 2020 года .

Дальнейшее чтение [ править ]

  • Эберт, Дэвид С .; Масгрейв, Ф. Кентон; Пичи, Дарвин; Перлин, Кен; Уорли, Стив (2002). Текстурирование и моделирование: процедурный подход (3-е изд.). Морган Кауфманн. ISBN 978-1-558-60848-1.
  • Шейкер, Нур; Тогелиус, Юлиан; Нельсон, Марк Дж. (2016). Генерация процедурного контента в играх: учебник и обзор текущих исследований . Springer. ISBN 978-3-319-42714-0.

Внешние ссылки [ править ]

  • Будущее контента - Уилл Райт выступит с основным докладом о Spore и процедурной генерации на конференции разработчиков игр 2005 года.
  • Wiki по созданию процедурного контента - сообщество, посвященное документированию, анализу и обсуждению всех форм процедурной генерации контента.
  • Процедурные деревья и огонь в виртуальном мире - технический документ по созданию процедурных деревьев и процедурного огня с использованием инфраструктуры Intel Smoke
  • Процедурная вселенная в реальном времени - руководство по созданию процедурных планет в реальном времени
  • Процедурная генерация контента на основе поиска: таксономия и обзор