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

Процедурна генераціякомп'ютингу) - це метод алгоритмічного створення даних за допомогою комбінацій алгоритмів, поєднаних із випадковістю. У комп’ютерній графіці він зазвичай використовується для створення текстур та 3D-моделей. У відеоіграх він використовується для автоматичного створення великої кількості контенту. Залежно від реалізації, переваги процедурної генерації можуть включати менший розмір файлу, більший обсяг контенту та випадковість для певного ігрового процесу. Процедурна генерація - це галузь синтезу засобів масової інформації.

Один із прикладів процедурної генерації, що використовується тут для створення реалістичних моделей дерев. Різні моделі можуть бути сформовані шляхом зміни як детермінованих параметрів, так і випадкового початкового значення.
Процедурний пейзаж, відтворений у Terragen

ОписРедагувати

Термін процедурний відноситься до процесу, який обчислює певну функцію. Фрактали - це геометричні візерунки, які часто можна згенерувати процедурно. Звичайний процедурний зміст включає текстури та полігональні сітки. Також процедурне генерування звуку часто застосовують як у синтезі мовлення, так і в музиці, для створення композицій у різних жанрах електронної музики. Прикладом є Брайан Іно, який популяризував термін "генеративна музика". [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 [Архівовано 9 листопада 2021 у Wayback Machine.] та Artificial Intelligence and Interactive Digital Entertainment [Архівовано 22 березня 2022 у Wayback Machine.]. [2]

Зокрема, при застосуванні процедурної генерації у відеоіграх, існує проблема, що кількість згенерованих елементів, світів для вивчення, нескінченна, але без достатнього людського керування результат стає "процедурною вівсянкою", термін, придуманий письменницею Кейт Комптон: хоча можливо математично сформувати тисячі мисок вівсяних пластівців із допомогою процедурного генерування, користувач сприйме їх як однакові, бо їм бракує унікальності. [3]

Сучасне застосуванняРедагувати

Настільні рольові ігриРедагувати

Використання процедурної генерації походить від настільних рольових ігор (RPG). Провідна настільна система Advanced Dungeons & Dragons [Архівовано 30 листопада 2020 у Wayback Machine.] забезпечила "майстра підземельїв" способами генерувати підземелля та місцевість за допомогою кидків гральних кубиків, у наступних виданнях замінених на розгалуження процедурних таблиць. Компанія Strategic Simulations за ліцензією TSR випустила Dungeon Master's Assistant, комп’ютерну програму, яка генерувала підземелля на основі цих таблиць. "Тунелі та тролі", також видані TSR, були розроблені в основному для одиночної гри. Інші настільні RPG запозичили подібні концепції в процедурній генерації для різних світових елементів. [4]

Відео ігриРедагувати

Рання історіяРедагувати

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

На відміну від графічно орієнтованих відеоігор, рогалики ігри, жанр яких безпосередньо натхненний Dungeons & Dragons, активно використовували процедурну генерацію так само, як це робили настільні системи. До таких ранніх ігор належать Beneath Apple Manor (1978) та Rogue (1980). Рогалики та ігри, що базуються на схожих концепціях, дозволяють розвивати складний ігровий процес, не витрачаючи зайвого часу на створення ігрового світу. [5]

1978 Maze Craze[en] для Atari VCS використовував алгоритм для створення випадкового лабіринту зверху вниз для кожної партії. [6]

Сучасне використанняРедагувати

Хоча сучасні комп'ютерні ігри не мають тих самих обмежень по пам'яті, що були в старих іграх, процедурна генерація в них часто використовується для створення рандомізованих карт, рівнів, символів чи інших аспектів, унікальних для кожного проходження. [7] [8]

У 2004 році німецька демонстраційна група випустила шутер від першої особи для ПК під назвою .kkrieger . Він повністю міститься у 96- кілобайтному файлі для Microsoft Windows, який генерує сотні мегабайт даних та 3D текстур під час запуску. За словами одного з програмістів, "що стосується геймплею - це був повний провал (здебільшого тому, що ніхто насправді не піклувався про це"). [9]

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

Багато ігор з відкритим світом процедурно створюють ігрові локації із випадкового початкового значення. Тому кожне проходження є унікальним. Ці системи генерації створюють численні біоми на основі пікселів або вокселів з розподілом ресурсів, об'єктів та істот. Гравець часто має можливість регулювати деякі параметри генерації, наприклад, вказати обсяг води у світі. Прикладами таких ігор є Dwarf Fortress та Minecraft .[11]

Процедурна генерація також використовується в іграх про дослідження космосу та торгівлю. У грі Еліта: Небезпечний використовувалась процедурна генерація для моделювання 400 мільярдів відомих зірок Чумацького Шляху як свою світову основу. I-Novae Infinity [Архівовано 2 січня 2021 у Wayback Machine.] має безліч планет, які процедурно генеруються, між якими гравець може подорожувати на космічних кораблях. Outerra Anteworld[en] - це відеоігра у розробці, яка використовує процедурну генерацію та дані реального світу для створення віртуальної копії планети Земля у справжньому масштабі. У "Нічиєму небі" представлений Всесвіт, що містить 18 квінтільйонів планет, які процедурно генеруються на льоту, коли гравець стикається з ними, включаючи рельєф, погоду, флору та фауну. Цей Всесвіт визначається використанням одного випадкового початкового числа для їх детермінованого механізму, що гарантує однаковий вміст для всіх гравців в однакових місцях для всіх гравців, що дозволяє гравцям ділитися відкриттями. [12] [13]

ФільмиРедагувати

Як і у відеоіграх, процедурна генерація часто використовується у фільмах для швидкого створення візуально цікавих та детальних просторів.

Одна програма відома як недосконала фабрика, де художники можуть швидко генерувати багато подібних об’єктів. Це пояснює тим, що в реальному житті немає двох ідентичних об’єктів. Наприклад, художник міг змоделювати продукт для полиці магазину, а потім створити недосконалу фабрику, щоб створити багато схожих але не ідентичних продуктів.

MASSIVE це висококласний комп'ютерний пакет анімацій та штучного інтелекту, який використовується для створення візуальних ефектів натовпу для кіно та телебачення. Він був розроблений для автоматичного створення бойових армій із сотень тисяч солдат для фільму Пітера Джексона Володар перснів.[14]

Див. такожРедагувати

ПосиланняРедагувати

  1. Brian Eno (8 червня 1996). A talk delivered in San Francisco, June 8, 1996. inmotion magazine. Архів оригіналу за 27 грудня 2016. Процитовано 7 листопада 2008. 
  2. Artificial Intelligence and Interactive Digital Entertainment. AIIDE.org. Архів оригіналу за 3 серпня 2016. Процитовано 12 червня 2016. 
  3. Cook, Michael (10 серпня 2016). Alien Languages: How We Talk About Procedural Generation. Gamasutra. Архів оригіналу за 7 жовтня 2019. Процитовано 7 жовтня 2019. 
  4. http://www.fdg2015.org/papers/fdg2015_paper_19.pdf [Архівовано 29 липня 2021 у Wayback Machine.]Порожнє посилання на джерело‎ (довідка) 
  5. Hatfield, Tom (29 січня 2013). Rise Of The Roguelikes: A Genre Evolves. GameSpy. Архів оригіналу за 13 жовтня 2018. Процитовано 24 квітня 2013. 
  6. Maze Craze. Atari Mania. Архів оригіналу за 18 жовтня 2020. Процитовано 13 жовтня 2020. 
  7. Moss, Richard (1 січня 2016). 7 uses of procedural generation that all developers should study. Gamasutra. Архів оригіналу за 3 січня 2016. Процитовано 1 січня 2016. 
  8. Baker, Chris (9 серпня 2016). 'No Man's Sky': How Games Are Building Themselves. Rolling Stone. Архів оригіналу за 10 серпня 2016. Процитовано 9 серпня 2016. 
  9. Giesen, Fabian (8 квітня 2012). Metaprogramming for madmen. The ryg blog. Архів оригіналу за 1 листопада 2020. Процитовано 13 жовтня 2020. 
  10. Kuo, Ryan (19 квітня 2012). Why Borderlands 2 Has the Most Stylish Guns in Gaming. Wall Street Journal. Архів оригіналу за 4 жовтня 2015. Процитовано 21 квітня 2016. 
  11. 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. Архів оригіналу за 8 серпня 2016. Процитовано 9 серпня 2016. 
  12. Khatchadourian, Raffi (18 травня 2015). World without end : creating a full-scale digital cosmos. The New Yorker 91 (13). с. 48–57. Архів оригіналу за 29 липня 2015. Процитовано 5 серпня 2015. 
  13. Wilson (16 липня 2015). How 4 Designers Built A Game With 18.4 Quintillion Unique Planets. Fast Company. Архів оригіналу за 10 серпня 2015. Процитовано 9 серпня 2015. 
  14. About Massive. Massive Software. Архів оригіналу за 2 грудня 2018. Процитовано 12 червня 2016. 

Подальше читанняРедагувати

Зовнішні посиланняРедагувати