Почему это Процедурное Поколение Контента, а другое - нет?


18

Я читаю онлайновую книгу «Процедура создания контента», и в главе 1 на странице 2 приведен один пример того, что такое PCG, и другой, а не PCG, и я не могу их отличить.

Это PCG в соответствии с ними:

промежуточное ПО игрового движка, которое быстро наполняет игровой мир растительностью

Это не PCG в соответствии с ними:

игровой движок, способный интегрировать автоматически сгенерированную растительность

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

Ключевым термином здесь является «содержание». По нашему определению, контент - это большая часть того, что содержится в игре: уровни, карты, правила игры, текстуры, истории, предметы, квесты, музыка, оружие, транспортные средства, персонажи и т. Д. Сам игровой движок не считается контентом. в нашем определении.

Я предполагаю, что пример PCG - это код в игре (или это может быть код, который адаптируется к любой игре), который распознает игровую карту и наполняет ее растительностью в соответствии с ней. И не PCG пример для меня был бы как вариант, доступный из игрового движка, где разработчик может добавить растительность в автономном режиме через пользовательский интерфейс.

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


9
Сравните двух мужчин: человек входит в комнату, смотрит на нее, строит мебель на основе комнаты и расставляет мебель в комнате. Б делает то же самое, но он идет в ИКЕА (люди, которые построили мебель), чтобы получить мебель для помещения в комнату. Вы бы сказали, что и А, и Б создают мебель? Это та разница, на которую они пытаются указать. Если вы не создаете мебель с нуля, вы на самом деле не создаете мебель, вы просто используете существующую мебель по-новому.
Флейтер

Ответы:


27

По аналогии

Цепь не генерирует энергию. Лампочка не генерирует энергию. Аккумулятор не генерирует энергию. Ничто из того, что использует или хранит генерируемую энергию , не является генератором энергии.

Бензиновый генератор - это генератор энергии . Установка солнечной панели - это генератор энергии . Они могут быть , как ожидается, спонтанно генерировать , когда они начались. Источники энергии, которые они генерируют, могут использовать другие вещи : холодильники, телевизоры, компьютеры, обогреватели и лампочки.

Аналогичным образом, любой код или программа, которая фактически генерирует контент во время выполнения, является PCG. Остальные просто пользователи этого процедурно сгенерированного контента (PGC). Сейчас,

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

это не то же самое, что

Процедурно-сгенерированный контент

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

PCG разработана (запрограммирована) до такой степени, что она может автономно производить контент по той или иной спецификации, но в (как правило) бесчисленных вариациях; Таким образом, PGC генерируется как одно единственное изменение безгранично возможных возможных пространств содержимого в рамках этой более широкой алгоритмической спецификации. PGC конечны и статичны после генерации. PCG имеют дело с бесконечностью (или достаточно близко).

Особенности адресации

«Процедурная генерация контента» относится к коду / приложениям, которые генерируют контент.

Любую игру можно считать игрой PCG, если во время выполнения она динамически генерирует новый контент посредством части своего набора инструкций.

Если вы (или ваш движок) используете какой-либо другой программный код, который генерирует контент, а затем включите этот контент как часть вашей игры во время компиляции / сборки , то ваша игра (и ее код) НЕ являются PCG. Следовательно:

игровой движок, способный интегрировать автоматически сгенерированную растительность

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

распознает игровую карту

PCG не имеет ничего общего с распознаванием. Это связано с активной работой по созданию контента. Обычно приложения PCG создают свой собственный формат данных, который они уже могут понять и работать с ним. Обычно они не читают во внешних источниках, хотя, когда они это делают, это просто старая логика программы ... не PCG как таковая. PCG это все о поколении . Следовательно, PCG, а не PCR :)

Исторические перспективы

То, что мы считаем «контентом» в этом контексте, обычно охватывает те вещи, которые в прошлом люди должны были производить сами. Например, в 70-х и 80-х годах почти каждая игра (за исключением очень немногих) должна была иметь свое искусство, сюжет, музыку, имена своих персонажей и планет и т. П., Производимые человеком. , Это была полная противоположность PCG.

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

Элита была другим случаем: часть ее контента создавалась, когда игра находилась в разработке; не только этот код, написанный теми же авторами, но также и то, что предварительно сгенерированный контент обычно использовался во время выполнения elite.exe(т. е. когда вы играли в игру) другими генераторами, которые были частью кода игры , создавая мир, который вы играл в.

Более новым примером является Minecraft (и другие игры, вдохновленные им), где мир буквально генерируется вокруг вас, когда вы идете к горизонту, во многом благодаря современной вычислительной мощности. Сравните это с Роугом или Морией, игравшей на PC-XT в 1980-х годах, для которой вам, возможно, придется посидеть некоторое время в ожидании создания уровня! (в зависимости от выбранных вами настроек игры).

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


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

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

2
@Adocad: я думаю, что вы пропустили незначительную деталь в ответе: «Если вы (или ваш движок) используете какой-то другой программный код, который генерирует контент , а затем включает этот контент как часть вашей игры во время компиляции / сборки, ваша игра ( и это код) НЕ является ПКГ " Если вы включили программу в свою игру вместо контента, сгенерированного программой, и ваша игра будет запускать программу, когда это необходимо (локально, на компьютере игрока), то это действительно будет офлайн ПКГ. Но это не тот случай, когда вы просто включаете результат генерации PCG (который теперь статичен).
Флейтер

2
@AC: Я думаю, что различие становится более ясным, если его маркировать как процедурно сгенерированный контент или как процедурный контент .
Флейтер

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