Jump to content

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

(Перенаправлено из случайной генерации )
Один из примеров процедурной генерации: использование 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 — компьютерную программу, которая создавала подземелья на основе этих опубликованных таблиц. «Туннели и тролли» , опубликованные Flying Buffalo , [5] была разработана в первую очередь для одиночной игры и использовала аналогичную процедурную генерацию для своих подземелий. Другие настольные ролевые игры заимствовали аналогичные концепции процедурной генерации для различных элементов мира. [6]

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

Видеоигры

[ редактировать ]

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

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

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

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

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

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

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

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

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

от Naked Sky В RoboBlitz использовалась процедурная генерация для максимизации содержимого в загружаемом файле размером менее 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 г.

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

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: b56e73ce0a70bd677e14498f81d88217__1722058140
URL1:https://arc.ask3.ru/arc/aa/b5/17/b56e73ce0a70bd677e14498f81d88217.html
Заголовок, (Title) документа по адресу, URL1:
Procedural generation - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)