stringtranslate.com

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

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

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

Обзор

Процедурный ландшафт, созданный в Terragen

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

Процедурно генерируемые текстуры.

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

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

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

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

Современное приложение

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

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

Многие онлайн-инструменты для Dungeon Masters теперь в той или иной степени используют процедурную генерацию. [ нужна ссылка ]

Видеоигры

Ранняя история

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

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

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

В некоторых играх использовались генераторы псевдослучайных чисел . Эти ГПСЧ часто использовались с предопределенными начальными значениями для создания очень больших игровых миров, которые казались заранее созданными. Предположительно, у Sentinel было 10 000 различных уровней, хранящихся всего в 48 и 64 килобайтах. Крайним случаем была Элита , изначально планировалось, что она будет содержать в общей сложности 248 ( примерно 282 триллиона) галактик с 256 солнечными системами в каждой. [9] Однако издатель побоялся, что такая гигантская вселенная вызовет недоверие у игроков, и для финальной версии было выбрано восемь таких галактик. [10] Другие известные ранние примеры включают игру Rescue on Fractalus 1985 года (в которой фракталы использовались для процедурного создания в реальном времени скалистых гор чужой планеты) и River Raid ( игра Activision 1982 года , в которой использовалась псевдослучайная последовательность чисел, сгенерированная сдвиговый регистр с линейной обратной связью для создания прокручивающегося лабиринта препятствий).

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

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

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

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

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

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

Меса , процедурно созданная в видеоигре Vintage Story.

Многие игры с открытым миром или игры на выживание процедурно создают игровой мир из случайного начального числа или заданного игроком, так что каждое прохождение отличается. Эти системы генерации создают многочисленные биомы на основе пикселей или вокселей с распределением ресурсов, объектов и существ. У игрока часто есть возможность настроить некоторые параметры генерации, например, указать количество воды в мире. Примеры таких игр включают Dwarf Fortress , Minecraft и Vintage Story .

Процедурная генерация также используется в космических исследованиях и торговых играх. Elite: Dangerous , используя 400 миллиардов известных звезд галактики Млечный Путь в качестве мировой основы, использует процедурную генерацию для моделирования планет в этих солнечных системах. Точно так же Star Citizen использует эту технологию для создания плавно загружаемых планет в своей созданной вручную вселенной. I-Novae Infinity включает в себя множество процедурно генерируемых планет, между которыми игрок может путешествовать на космических кораблях. Outerra Anteworld — это разрабатываемая видеоигра, которая использует процедурную генерацию и данные реального мира для создания виртуальной копии планеты Земля в реальном масштабе.

No Man's Sky , созданная с использованием процедурной генерации, является крупнейшей видеоигрой в истории, в которой представлена ​​вселенная из 18 квинтиллионов планет в целых галактиках, которые можно исследовать в полете или пешком. Все планеты имеют свой уникальный ландшафт, погоду, флору и фауну, а также множество космических инопланетных видов. Один и тот же контент существует в одних и тех же местах для всех игроков (благодаря единому случайному исходному номеру их детерминированного движка), что позволяет игрокам встречаться и делиться открытиями. [15] [16] [17]

Другие приложения

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

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

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

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

См. также

Ссылки

  1. Брайан Ино (8 июня 1996 г.). «Выступление в Сан-Франциско, 8 июня 1996 г.». журнал «Инмоушен» . Проверено 7 ноября 2008 г.
  2. ^ «Искусственный интеллект и интерактивные цифровые развлечения». AIIDE.org . Проверено 12 июня 2016 г.
  3. Кук, Майкл (10 августа 2016 г.). «Чужие языки: как мы говорим о процедурной генерации». Разработчик игры . Архивировано из оригинала 9 мая 2024 года . Проверено 9 мая 2024 г.
  4. ^ Браун, Джозеф Александр; Ширеа, Марко (2018). «Процедурная генерация настольных игр: подходы, управляемые пользователем, с ограничениями вычислительных ресурсов». SEDA 2018: Материалы 6-й Международной конференции по разработке программного обеспечения для оборонных приложений . Международная конференция по разработке программного обеспечения для оборонных приложений. Рим, Италия. стр. 44–54.
  5. ^ «Разговор с Кеном Сент-Андре, часть 1»» . YouTube.com . Проверено 6 ноября 2021 г.
  6. ^ Смит, Джиллиан (2015). Аналоговая история процедурной генерации контента (PDF) . Основы цифровых игр, 2015. Пасифик Гроув, Калифорния . Проверено 7 октября 2019 г.
  7. ^ Хэтфилд, Том (29 января 2013 г.). «Восстание рогаликов: жанр развивается». GameSpy . Проверено 24 апреля 2013 г.
  8. ^ "Безумие по лабиринту". Атари Мания .
  9. ^ Хирананд, Рави (18 июня 2015 г.). «18 квинтиллионов планет: видеоигра, представляющая целую галактику | CNN Business». CNN . Проверено 13 декабря 2022 г.
  10. Фрэнсис Спаффорд (18 октября 2003 г.). «Хозяева своей вселенной». Хранитель.
  11. Мосс, Ричард (1 января 2016 г.). «7 способов применения процедурной генерации, которые должны изучить все разработчики». Разработчик игры . Архивировано из оригинала 9 мая 2024 года . Проверено 1 января 2016 г.
  12. Бейкер, Крис (9 августа 2016 г.). «No Man's Sky»: как игры строят сами себя». Роллинг Стоун . Проверено 9 августа 2016 г.
  13. Гизен, Фабиан (8 апреля 2012 г.). «Метапрограммирование для сумасшедших». Блог ryg .
  14. Куо, Райан (19 апреля 2012 г.). «Почему в Borderlands 2 самое стильное игровое оружие». Уолл Стрит Джорнал . Проверено 21 апреля 2016 г.
  15. Хачадурян, Раффи (18 мая 2015 г.). «Мир без конца: создание полномасштабного цифрового космоса». Анналы игр. Житель Нью-Йорка . Том. 91, нет. 13. С. 48–57 . Проверено 5 августа 2015 г.
  16. Уилсон (16 июля 2015 г.). «Как четыре дизайнера создали игру с 18,4 квинтиллионом уникальных планет». Компания Фаст . Проверено 9 августа 2015 г.
  17. ^ Сэм Уайт (10 августа 2016 г.). «No Man's Sky: Как самая большая игра из когда-либо созданных почти так и не появилась». игровой радар . Проверено 7 мая 2022 г.
  18. ^ «О Массивном». Массивное программное обеспечение . Проверено 12 июня 2016 г.

Дальнейшее чтение