Чому це покоління процесуального вмісту, а інше - ні?


18

Я читаю онлайн-книгу про створення процедурного вмісту та на главі 1, стор. 2 є один приклад того, що таке PCG, а інший - що таке PCG, і я не можу їх розрізнити.

Це PCG відповідно до них:

Програмне забезпечення ігрового двигуна, яке швидко заселяє ігровий світ рослинністю

Це НЕ PCG відповідно до них:

ігровий двигун, здатний інтегрувати автоматично генеровану рослинність

Також на сторінці 1 вони прямо сказали, що не розглядають ігровий движок PCG

Ключовим терміном тут є "зміст". У нашому визначенні вміст - це більшість того, що міститься в грі: рівні, карти, правила гри, текстури, історії, предмети, квести, музика, зброя, транспортні засоби, символи тощо. Сам ігровий движок не вважається вмістом у нашому визначенні.

Я припускаю, що приклад PCG - це код у грі (або це може бути код, який адаптується до будь-якої гри), який розпізнає ігрову карту та заповнює її рослинністю відповідно до неї. І неприклад PCG для мене був би як варіант, доступний в ігровому двигуні, якби розробник міг додати рослинність офлайн через користувальницький інтерфейс.

Останній - це дуже дике здогад, я впевнений, що я помиляюся, бо на перший погляд вони обидва звучать як PCG. Будь ласка, допоможіть мені розрізнити їх.


9
Порівняйте двох чоловіків: Заходить у кімнату, дивиться на неї, будує меблі на базі кімнати та розставляє меблі в кімнаті. B робить те ж саме, але він йде до IKEA (люди, які побудували меблі), щоб дістати меблі, щоб поставити її в кімнату. Ви б сказали, що і А, і Б створюють меблі? Це різниця, на яку вони намагаються вказати. Якщо ви не створюєте меблі з нуля, ви фактично не створюєте меблі, ви просто використовуєте існуючі меблі по-новому.
Flater

Відповіді:


27

За аналогією

Схема не генерує живлення. Лампочка не виробляє енергію. Акумулятор не виробляє енергію. Жодне з речей, які використовують або зберігають вироблену енергію , не є генераторами енергії.

Бензиновий генератор - це генератор живлення . Налаштування сонячної панелі - це генератор живлення . Від них можна очікувати, що вони спонтанно генеруються, коли їх починають. Інші речі можуть використовувати цю енергію, яку вони генерують: холодильники та телевізори, ПК та обігрівачі та лампочки.

Аналогічно, будь-який код або програма, яка фактично генерує сам контент під час виконання, - це PCG. Решта - лише користувачі вмісту, створеного процедурою (PGC). Тепер,

Генерація процесуального контенту

не те саме, що

Контент-генерований контент

PGC є результатом артефакту процесу (програми), який бере участь у PCG.

PCG розроблений (запрограмований) до того моменту, коли він може автономно виробляти вміст у тій чи іншій специфікації, але в (як правило) незліченних варіаціях; PGC генерується, таким чином, як одна єдина зміна інакше безмежних можливих просторів вмісту в межах цієї більш широкої алгоритмічної специфікації. Згенеровані PGC є кінцевими та статичними одного разу. ПХГ мають справу з нескінченністю (або достатньо близько).

Розгляд специфіки

"Процедурне генерування вмісту" відноситься до коду / додатків, які генерують контент.

Будь-яка гра може вважатися грою PCG, якщо під час виконання вона динамічно генерує новий контент через частину набору інструкцій.

Якщо ви (або ваш двигун) використовуєте (-ла) якийсь інший програмний код, який генерує контент, то включіть цей вміст як частину вашої гри під час компіляції / складання , тоді ваша гра (і це код) НЕ є PCG. Звідси:

ігровий двигун, здатний інтегрувати автоматично генеровану рослинність

... не PCG, оскільки сам двигун не створює нового контенту під час виконання, він просто використовує генерований контент з інших місць, який був вручну включений художниками, дизайнером або розробниками.

розпізнає ігрову карту

PCG не має нічого спільного з визнанням. Це пов'язано з активною роботою по створенню контенту. Зазвичай програми PCG виробляють власний формат даних, з яким вони вже можуть зрозуміти та працювати. Вони, як правило, не читають у зовнішніх джерелах, хоча, коли вони це роблять, це просто звичайна стара логіка програми ... не PCG як така. PCG - все про покоління . Отже, PCG, а не PCR :)

Історичні перспективи

Те, що ми вважаємо в цьому контексті "змістом", зазвичай стосується тих речей, які раніше люди повинні були виготовити самі. Наприклад, у 70-х та 80-х, майже всі ігри (за винятком дуже особливих кількох) повинні були мати своє мистецтво, сюжетну лінію, свою музику, назви персонажів і планет тощо, створене людиною . Це була полярна протилежність PCG.

PCG почався, коли ігрові програмісти зрозуміли, що замість ригмаролу найму артистів, музикантів, письменників тощо - а потім все-таки доведеться інтегрувати свою роботу з кодом, або ще гірше, роблячи всі ці роботи самі , а також кодування - вони могли натомість пишіть програми, щоб генерувати всі ті речі для них. Ці зусилля були одними з перших справді функцій, модулів та програм PCG. Прекрасним прикладом є оригінальний XCom / UFO , де код гри генерує для вас абсолютно унікальний рівень перед боєм. Раніше ще (1979 р.) Був храм Апшая .

У Elite був інший випадок: частина його вмісту формувалася під час розробки гри; не тільки той код, написаний тими самими авторами, але і те, що попередньо сформований контент, як правило, використовувався під час виконання elite.exe(тобто, коли ви гравцем керували грою) подальшими генераторами, які були частиною коду гри , створюючи світ грав у.

Новіший приклад - Minecraft (та інші натхненні ним ігри), де світ буквально генерується навколо вас, коли ви йдете до горизонту, багато в чому завдяки сучасній обчислювальній потужності. Порівняйте це з Rogue або Moria, що грав у PC-XT у 1980-х, для чого вам, можливо, доведеться посидіти, чекаючи, коли рівень генерується! (залежно від обраних налаштувань гри).

Не всі PCG історично укорінені в ігровій галузі. Наприклад, є такі, хто пише генератори художньої літератури. Наприклад, Кен Перлін у галузі графіки та обчислювальної геометрії створив алгоритм Перліна Шум, за що згодом йому було присуджено нагороду академії. Наприклад, музикант Брайан Ено тривалий час займався процедурним генеруванням музичних партитур. І як інший приклад, нецифрові настільні ігри, такі як HeroQuest / Warhammer Quest, давно винайшли процедурну динаміку для створення різних ігрових плат на кожній грі.


6
Дуже незначний технічний виняток - був доказ концептуального дослідницького проекту / гри, в якому сама гра була процедурно створена. Тобто цілі, правила і певною мірою представлення всі динамічно формувалися під час виконання. Він дещо розмиває межу між вмістом та двигуном, але лакмусовий тест "чи це генерує" все ще існує. Відмінна дистиляція.
Пікалек

3
@Pikalek Я повністю погоджуюся з такою лінією мислення. Ми можемо вважати, що це робить Лісп - що в кінцевому підсумку немає різниці між інструкціями та даними. Не хотілося занадто ускладнювати речі у відповіді. Дякуємо за коментар.
Інженер

2
@Adocad: Я думаю, що ви пропустили незначну деталь у відповіді: "Якщо ви (або ваш двигун) використовуєте якийсь інший програмний код, який генерує контент , а потім включите цей вміст як частину вашої гри під час компіляції / складання, ваша гра ( і це код) НЕ PCG " Якщо ви включили програму до своєї гри, а не вміст, який був створений програмою, і ваша гра запустила б програму, коли потрібно (локально, на комп'ютері гравця), тоді це дійсно буде офлайн PCG. Але це не той випадок, коли ви просто включаєте результат покоління PCG (який зараз статичний).
Флатер

2
@AC: Я вважаю , що відмінність ясніше , коли маркування його або як процедурно генерується вмісту або генерації процедурного контенту .
Флатер

4
@Flater Спасибі, це кращий спосіб викласти це - процедурно генерований контент можна створювати в режимі офлайн та / або під час виконання, але генерація процедурного вмісту явно виконує. (Зверніть увагу , що інструмент , який генерує контент , який пізніше буде скомпільовано в це робить PCG, однак після того, що контент був попередньо створений і вкомпільовані, гра , яка використовує , що зміст НЕ робить PCG)
AC
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.