Процедурная генерация
Эта статья включает список литературы , связанную литературу или внешние ссылки , но ее источники остаются неясными, поскольку в ней отсутствуют встроенные цитаты . ( Май 2022 г. ) |
В вычислительной технике процедурная генерация (иногда сокращенно proc-gen ) — это метод создания данных алгоритмически , а не вручную, обычно посредством комбинации контента и алгоритмов, созданных человеком, в сочетании с генерируемой компьютером случайностью и вычислительной мощностью. В компьютерной графике он обычно используется для создания текстур и 3D-моделей . В видеоиграх он используется для автоматического создания большого количества контента в игре. В зависимости от реализации преимущества процедурной генерации могут включать меньшие размеры файлов, больший объем контента и случайность для менее предсказуемого игрового процесса. Процедурная генерация — это ветвь медиасинтеза . [ нужна ссылка ]
Обзор
[ редактировать ]Термин «процедурный» относится к процессу, который вычисляет конкретную функцию. Фракталы — это геометрические узоры, которые часто можно генерировать процедурно. Обычный процедурный контент включает в себя текстуры и сетки . Звук также часто генерируется процедурно и находит применение как в синтезе речи , так и в музыке. Он использовался для создания композиций в различных жанрах электронной музыки такими артистами, как Брайан Ино, который популяризировал термин « генеративная музыка ». [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 теперь в той или иной степени используют процедурную генерацию. [ нужна ссылка ]
Видеоигры
[ редактировать ]Ранняя история
[ редактировать ]До появления графически ориентированных видеоигр в играх- рогаликах , жанре, вдохновленном 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]
Многие игры с открытым миром или игры на выживание процедурно создают игровой мир из случайного начального числа или заданного игроком, так что каждое прохождение отличается. Эти системы генерации создают многочисленные пикселей или вокселей на основе биомы с распределением ресурсов, объектов и существ. У игрока часто есть возможность настроить некоторые параметры генерации, например, указать количество воды в мире. Примеры таких игр включают 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 измерениях.
См. также
[ редактировать ]- Клеточные автоматы
- Вычислительное творчество
- Фрактальный пейзаж
- Дробное броуновское движение
- Генеративное искусство
- Генеративный искусственный интеллект
- L-системы
- Линейный конгруэнтный генератор
- Список игр, использующих процедурную генерацию
- Медиасинтез (ИИ)
- Шум , шум Перлина , симплексный шум
- Процедурная анимация
- Процедурное моделирование
- Процедурная текстура
- Случайная карта
- Рогалик
- Генератор пейзажей
Ссылки
[ редактировать ]- ^ Брайан Ино (8 июня 1996 г.). «Выступление в Сан-Франциско 8 июня 1996 года» . журнал «Инмоушен» . Проверено 7 ноября 2008 г.
- ^ «Искусственный интеллект и интерактивные цифровые развлечения» . AIIDE.org . Проверено 12 июня 2016 г.
- ^ Кук, Майкл (10 августа 2016 г.). «Чужие языки: как мы говорим о процедурной генерации» . Разработчик игры . Архивировано из оригинала 9 мая 2024 года . Проверено 9 мая 2024 г.
- ^ Браун, Джозеф Александр; Ширеа, Марко (2018). «Процедурная генерация настольных игр: подходы, управляемые пользователем, с ограничениями вычислительных ресурсов». SEDA 2018: Материалы 6-й Международной конференции по разработке программного обеспечения для оборонных приложений . Международная конференция по разработке программного обеспечения для оборонных приложений. Рим, Италия. стр. 44–54.
- ^ " "Разговор с Кеном Сент-Андре, часть 1" " . YouTube.com . Проверено 6 ноября 2021 г.
- ^ Смит, Джиллиан (2015). Аналоговая история процедурной генерации контента (PDF) . Основы цифровых игр, 2015. Пасифик Гроув, Калифорния . Проверено 7 октября 2019 г.
- ^ Хэтфилд, Том (29 января 2013 г.). «Восстание рогаликов: развитие жанра» . GameSpy . Проверено 24 апреля 2013 г.
- ^ «Безумие по лабиринту» . Атари Мания .
- ^ Хирананд, Рави (18 июня 2015 г.). «18 квинтиллионов планет: видеоигра, представляющая целую галактику | CNN Business» . CNN . Проверено 13 декабря 2022 г.
- ^ Фрэнсис Спаффорд (18 октября 2003 г.). «Хозяева своей вселенной» . Хранитель.
- ^ Мосс, Ричард (1 января 2016 г.). «7 способов применения процедурной генерации, которые должны изучить все разработчики» . Разработчик игры . Архивировано из оригинала 9 мая 2024 года . Проверено 1 января 2016 г.
- ^ Бейкер, Крис (9 августа 2016 г.). « No Man's Sky»: как игры строят себя» . Роллинг Стоун . Проверено 9 августа 2016 г.
- ^ Гизен, Фабиан (8 апреля 2012 г.). «Метапрограммирование для сумасшедших» . Блог ryg .
- ^ Куо, Райан (19 апреля 2012 г.). «Почему в Borderlands 2 самое стильное игровое оружие» . Уолл Стрит Джорнал . Проверено 21 апреля 2016 г.
- ^ Хачадурян, Раффи (18 мая 2015 г.). «Мир без конца: создание полномасштабного цифрового космоса» . Анналы игр. Житель Нью-Йорка . Том. 91, нет. 13. С. 48–57 . Проверено 5 августа 2015 г.
- ^ Уилсон (16 июля 2015 г.). «Как четыре дизайнера создали игру с 18,4 квинтиллионом уникальных планет» . Компания Фаст . Проверено 9 августа 2015 г.
- ^ Сэм Уайт (10 августа 2016 г.). «No Man's Sky: Как самая большая игра, когда-либо созданная, почти так и не появилась» . игровой радар . Проверено 7 мая 2022 г.
- ^ «О Массивном» . Масштабное программное обеспечение . Проверено 12 июня 2016 г.
Дальнейшее чтение
[ редактировать ]- Эберт, Дэвид С.; Масгрейв, Ф. Кентон; Пичи, Дарвин; Перлин, Кен; Уорли, Стив (2002). Текстурирование и моделирование: процедурный подход (3-е изд.). Морган Кауфманн. ISBN 978-1-558-60848-1 .
- Шейкер, Нур; Тогелиус, Джулиан; Нельсон, Марк Дж. (2016). Процедурная генерация контента в играх: учебник и обзор текущих исследований . Спрингер. ISBN 978-3-319-42714-0 .
- Будущее контента - основной доклад Уилла Райта о Spore и процедурной генерации на конференции разработчиков игр 2005 г.