Процедурна генерація
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/74/Dragon_trees.jpg/220px-Dragon_trees.jpg)
Процедурна генерація (у комп'ютингу) - це метод алгоритмічного створення даних за допомогою комбінацій алгоритмів, поєднаних із випадковістю. У комп’ютерній графіці він зазвичай використовується для створення текстур та 3D-моделей. У відеоіграх він використовується для автоматичного створення великої кількості контенту. Залежно від реалізації, переваги процедурної генерації можуть включати менший розмір файлу, більший обсяг контенту та випадковість для певного ігрового процесу. Процедурна генерація - це галузь синтезу засобів масової інформації.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/2/26/Terragen.jpg/220px-Terragen.jpg)
Опис
Термін процедурний відноситься до процесу, який обчислює певну функцію. Фрактали - це геометричні візерунки, які часто можна згенерувати процедурно. Звичайний процедурний зміст включає текстури та полігональні сітки. Також процедурне генерування звуку часто застосовують як у синтезі мовлення, так і в музиці, для створення композицій у різних жанрах електронної музики. Прикладом є Брайан Іно, який популяризував термін "генеративна музика". [1]
Хоча розробники програмного забезпечення роками застосовують методи процедурної генерації, лише невелика кількість програм застосовують цей підхід. Процедурно згенеровані елементи є у таких відеоіграх: світ The Elder Scrolls II: Daggerfall в основному процедурно згенерований та має розміри приблизно дві третини від Британських островів. Soldier of Fortune від Raven Software використовує просту процедурну генерацію для деталізації моделей ворогів, тоді як його продовження випадково формувало цілий рівень. Студії Avalanche використовували процедурну генерацію, щоб створити великі та різноманітні тропічні острови для Just Cause. Гра No Man's Sky, розроблена ігровою студією Hello Games, базується на процедурно згенерованих елементах.
Нові методи процедурної генерації щорічно представляються на таких конференціях, як IEEE Conference on Computational Intelligence and Games та Artificial Intelligence and Interactive Digital Entertainment. [2]
Зокрема, при застосуванні процедурної генерації у відеоіграх, існує проблема, що кількість згенерованих елементів, світів для вивчення, нескінченна, але без достатнього людського керування результат стає "процедурною вівсянкою", термін, придуманий письменницею Кейт Комптон: хоча можливо математично сформувати тисячі мисок вівсяних пластівців із допомогою процедурного генерування, користувач сприйме їх як однакові, бо їм бракує унікальності. [3]
Сучасне застосування
Настільні рольові ігри
Використання процедурної генерації походить від настільних рольових ігор (RPG). Провідна настільна система Advanced Dungeons & Dragons забезпечила "майстра підземельїв" способами генерувати підземелля та місцевість за допомогою кидків гральних кубиків, у наступних виданнях замінених на розгалуження процедурних таблиць. Компанія Strategic Simulations за ліцензією TSR випустила Dungeon Master's Assistant, комп’ютерну програму, яка генерувала підземелля на основі цих таблиць. "Тунелі та тролі", також видані TSR, були розроблені в основному для одиночної гри. Інші настільні RPG запозичили подібні концепції в процедурній генерації для різних світових елементів. [4]
Відео ігри
Рання історія
![](http://upload.wikimedia.org/wikipedia/commons/thumb/2/29/Nethackscreen.gif/220px-Nethackscreen.gif)
На відміну від графічно орієнтованих відеоігор, рогалики ігри, жанр яких безпосередньо натхненний Dungeons & Dragons, активно використовували процедурну генерацію так само, як це робили настільні системи. До таких ранніх ігор належать Beneath Apple Manor (1978) та Rogue (1980). Рогалики та ігри, що базуються на схожих концепціях, дозволяють розвивати складний ігровий процес, не витрачаючи зайвого часу на створення ігрового світу. [5]
1978 Maze Craze для Atari VCS використовував алгоритм для створення випадкового лабіринту зверху вниз для кожної партії. [6]
Сучасне використання
![](http://upload.wikimedia.org/wikipedia/commons/thumb/8/8e/Blender3D_VoronoiCrackle.jpg/220px-Blender3D_VoronoiCrackle.jpg)
Хоча сучасні комп'ютерні ігри не мають тих самих обмежень по пам'яті, що були в старих іграх, процедурна генерація в них часто використовується для створення рандомізованих карт, рівнів, символів чи інших аспектів, унікальних для кожного проходження. [7] [8]
У 2004 році німецька демонстраційна група випустила шутер від першої особи для ПК під назвою .kkrieger . Він повністю міститься у 96- кілобайтному файлі для Microsoft Windows, який генерує сотні мегабайт даних та 3D текстур під час запуску. За словами одного з програмістів, "що стосується геймплею - це був повний провал (здебільшого тому, що ніхто насправді не піклувався про це"). [9]
Процедурна генерація часто використовується в системах квестів ігор, таких як рольові екшн-ігри та масові багатокористувацькі рольові ігри. Незважаючи на те, що квести можуть мати фіксовані винагороди, інші предмети, наприклад зброя та броня, можуть бути створені для гравця на основі рівня персонажу, рівня квесту та інших випадкових факторів. Це часто призводить до того, що предмети мають різну рідкість, яка застосовується для відображення того, коли система генерації створила предмет з характеристиками, які перевищують середні. Наприклад, серія Borderlands базується на процедурній генерації, що дозволяє створити понад мільйон унікального озброєння. [10]
Багато ігор з відкритим світом процедурно створюють ігрові локації із випадкового початкового значення. Тому кожне проходження є унікальним. Ці системи генерації створюють численні біоми на основі пікселів або вокселів з розподілом ресурсів, об'єктів та істот. Гравець часто має можливість регулювати деякі параметри генерації, наприклад, вказати обсяг води у світі. Прикладами таких ігор є Dwarf Fortress та Minecraft .[11]
Процедурна генерація також використовується в іграх про дослідження космосу та торгівлю. У грі Еліта: Небезпечний використовувалась процедурна генерація для моделювання 400 мільярдів відомих зірок Чумацького Шляху як свою світову основу. I-Novae Infinity має безліч планет, які процедурно генеруються, між якими гравець може подорожувати на космічних кораблях. Outerra Anteworld - це відеоігра у розробці, яка використовує процедурну генерацію та дані реального світу для створення віртуальної копії планети Земля у справжньому масштабі. У "Нічиєму небі" представлений Всесвіт, що містить 18 квінтільйонів планет, які процедурно генеруються на льоту, коли гравець стикається з ними, включаючи рельєф, погоду, флору та фауну. Цей Всесвіт визначається використанням одного випадкового початкового числа для їх детермінованого механізму, що гарантує однаковий вміст для всіх гравців в однакових місцях для всіх гравців, що дозволяє гравцям ділитися відкриттями. [12] [13]
Фільми
Як і у відеоіграх, процедурна генерація часто використовується у фільмах для швидкого створення візуально цікавих та точних просторів.
Одна програма відома як недосконала фабрика, де художники можуть швидко генерувати багато подібних об’єктів. Це пояснює тим, що в реальному житті немає двох ідентичних об’єктів. Наприклад, художник міг змоделювати продукт для полиці магазину, а потім створити недосконалу фабрику, щоб створити безліч подібних об’єктів.
MASSIVE це висококласний комп'ютерний пакет анімацій та штучного інтелекту, який використовується для створення візуальних ефектів, пов'язаних з натовпом, для кіно та телебачення. Він був розроблений для автоматичного створення бойових армій у сотні тисяч солдат для фільмe Пітера Джекстно Володар перснів.[14]
Див. також
- Лінійний конгруентний генератор
- Шум, шум Perlin, симплексний шум
- Процедурне моделювання
- Процедурна текстура
Посилання
- ↑ Brian Eno (8 червня 1996). A talk delivered in San Francisco, June 8, 1996. inmotion magazine. Процитовано 7 листопада 2008.
- ↑ Artificial Intelligence and Interactive Digital Entertainment. AIIDE.org. Процитовано 12 червня 2016.
- ↑ Cook, Michael (10 серпня 2016). Alien Languages: How We Talk About Procedural Generation. Gamasutra. Процитовано 7 жовтня 2019.
- ↑ http://www.fdg2015.org/papers/fdg2015_paper_19.pdf
{{cite conference}}
: Порожнє посилання на джерело (довідка) - ↑ Hatfield, Tom (29 січня 2013). Rise Of The Roguelikes: A Genre Evolves. GameSpy. Процитовано 24 квітня 2013.
- ↑ Maze Craze. Atari Mania.
- ↑ Moss, Richard (1 січня 2016). 7 uses of procedural generation that all developers should study. Gamasutra. Процитовано 1 січня 2016.
- ↑ Baker, Chris (9 серпня 2016). 'No Man's Sky': How Games Are Building Themselves. Rolling Stone. Процитовано 9 серпня 2016.
- ↑ Giesen, Fabian (8 квітня 2012). Metaprogramming for madmen. The ryg blog.
- ↑ Kuo, Ryan (19 квітня 2012). Why Borderlands 2 Has the Most Stylish Guns in Gaming. Wall Street Journal. Процитовано 21 квітня 2016.
- ↑ Peckham, Matt (8 серпня 2016). NO MAN’S SKY IS WILDLY AMBITIOUS, UTTERLY VAST AND A HUGE CHALLENGE TO THE VIDEO GAME INDUSTRY’S STATUS QUO. Time. Процитовано 9 серпня 2016.
- ↑ Khatchadourian, Raffi (18 травня 2015). World without end : creating a full-scale digital cosmos. The New Yorker. Т. 91, № 13. с. 48—57. Процитовано 5 серпня 2015.
- ↑ Wilson (16 липня 2015). How 4 Designers Built A Game With 18.4 Quintillion Unique Planets. Fast Company. Процитовано 9 серпня 2015.
- ↑ About Massive. Massive Software. Процитовано 12 червня 2016.
Подальше читання
- Ebert, David S.; Musgrave, F. Kenton; Peachey, Darwyn; Perlin, Ken; Worley, Steve (2002). Texturing and Modeling: A Procedural Approach (вид. 3rd). Morgan Kaufmann. ISBN 978-1-558-60848-1.
- Shaker, Noor; Togelius, Julian; Nelson, Mark J. (2016). Procedural Content Generation in Games: A Textbook and an Overview of Current Research. Springer. ISBN 978-3-319-42714-0.
Зовнішні посилання
- Майбутнє вмісту - Уїл Райт, основний виступ про створення процедурної генерації на Конференції розробників ігор 2005 року
- Вікі "Процедурне генерування вмісту" - спільнота, яка займається документуванням, аналізом та обговоренням усіх форм генерації процедурного контенту.
- Процесуальні дерева та пожежа у віртуальному світі - довідковий документ про створення процедурних дерев та процедурних пожеж за допомогою середовища Intel Smoke
- Процедурний Всесвіт у реальному часі - підручник з генерування процедурних планет у реальному часі
- Формування процесуального змісту на основі пошуку: таксономія та опитування
- Advanced Dungeons & Dragons