Por que essa geração de conteúdo processual é a outra?

18

Estou lendo o livro online Processural Content Generation e no capítulo 1, página 2, há um exemplo do que é PCG e outro do que não é PCG e não posso diferenciá-los.

Este é o PCG de acordo com eles:

middleware de mecanismo de jogo que preenche rapidamente um mundo de jogo com vegetação

Isso NÃO é PCG de acordo com eles:

um mecanismo de jogo capaz de integrar vegetação gerada automaticamente

Também na página 1, eles disseram explicitamente que não consideram um PCG de mecanismo de jogo

Um termo-chave aqui é "conteúdo". Em nossa definição, o conteúdo é a maior parte do conteúdo de um jogo: níveis, mapas, regras do jogo, texturas, histórias, itens, missões, músicas, armas, veículos, personagens etc. O mecanismo de jogo em si não é considerado conteúdo em nossa definição.

Meu palpite é que o exemplo PCG é um código em um jogo (ou poderia ser um código que se adapta a qualquer jogo) que reconhece o mapa do jogo e o preenche com vegetação de acordo com ele. E o exemplo de não PCG para mim seria uma opção disponível no mecanismo de jogo, caso o desenvolvedor pudesse adicionar a vegetação offline pela interface do usuário.

O último é um palpite muito, muito louco, tenho certeza de que estou errado, porque à primeira vista ambos parecem PCG. Por favor, ajude-me a diferenciá-los.

Adocad
fonte
9
Compare dois homens: A entra na sala, olha para ela, constrói móveis com base na sala e coloca os móveis na sala. B faz o mesmo, mas ele vai à IKEA (pessoas que construíram os móveis) para conseguir móveis para colocar na sala. Você diria que tanto A quanto B estão criando móveis? Essa é a diferença que eles estão tentando apontar. A menos que você esteja criando móveis do zero, na verdade não está criando móveis, você está apenas usando móveis existentes de novas maneiras.
Flater

Respostas:

27

Por analogia

Um circuito não gera energia. Uma lâmpada não gera energia. Uma bateria não gera energia. Nenhuma das coisas que usa ou armazena energia gerada são geradores de energia.

Um gerador movido a gasolina é um gerador de energia . Uma configuração de painel solar é um gerador de energia . Eles podem ser esperados para gerar espontaneamente quando eles são expulsos. Outras coisas podem usar essa energia que eles geram: geladeiras, TVs, PCs, aquecedores e lâmpadas.

Da mesma forma, qualquer código ou programa que realmente gera conteúdo em tempo de execução é PCG. O restante são apenas usuários desse conteúdo gerado processualmente (PGC). Agora,

Geração de conteúdo processual

não é o mesmo que

Conteúdo gerado processualmente

PGC é o artefato resultante de um processo (programa) que se envolve no PCG.

O PCG é desenvolvido (programado) a um ponto em que pode produzir autonomamente conteúdo para uma ou outra especificação, mas em (normalmente) inúmeras variações; O PGC é gerado, assim, como uma variação única dos possíveis espaços de conteúdo ilimitados dentro dessa especificação algorítmica mais ampla. Os PGCs são finitos e estáticos depois de gerados. Os PCGs lidam com o infinito (ou quase o suficiente).

Endereçando detalhes

"Geração de conteúdo processual" refere-se a códigos / aplicativos que geram conteúdo.

Qualquer jogo pode ser considerado um jogo PCG se, em tempo de execução , gerar dinamicamente novo conteúdo através de parte de seu conjunto de instruções.

Se você (ou seu mecanismo) usa algum outro código de programa que gera conteúdo, inclua esse conteúdo como parte do seu jogo em tempo de compilação / compilação , então seu jogo (e seu código) NÃO é PCG. Conseqüentemente:

um mecanismo de jogo capaz de integrar vegetação gerada automaticamente

... não é PCG, já que esse mecanismo em si não produz novo conteúdo em tempo de execução, ele simplesmente usa conteúdo gerado de outros lugares, que foi incluído manualmente por artistas, designers ou desenvolvedores.

reconhece o mapa do jogo

PCG não tem nada a ver com reconhecimento. Tem a ver com o trabalho ativo de criação de conteúdo. Geralmente, os aplicativos PCG produzem seu próprio formato de dados com o qual eles já podem entender e trabalhar. Eles não costumam ler em fontes externas, embora, quando o fazem, isso é simplesmente a lógica antiga do programa ... não o PCG como tal. PCG é tudo sobre geração . Daí PCG e não PCR :)

Perspectivas históricas

O que consideramos "conteúdo" nesse contexto geralmente abrange as coisas que, no passado, os seres humanos tiveram que produzir por si mesmos. Por exemplo, nos anos 70 e 80, praticamente todos os jogos (com exceção de alguns muito especiais) tinham que ter sua arte, seu enredo, sua música, seus personagens e nomes de planetas e afins produzidos por um ser humano. . Esse era o oposto polar do PCG.

O PCG começou quando os programadores de jogos perceberam que, em vez da rigidez de contratar artistas, músicos, escritores, etc. - e ainda ter que integrar seu trabalho ao código, ou pior ainda, fazer todo esse trabalho eles mesmos e codificar - eles poderiam em vez disso, escreva programas para gerar todo esse material para eles. Esses esforços foram algumas das primeiras funções, módulos e programas verdadeiramente PCG. Um exemplo perfeito é o XCom / UFO original , onde o código do jogo gera um nível completamente único para você antes do combate. Ainda antes (1979) era o Templo de Apshai .

Elite foi um caso diferente: parte do conteúdo foi gerado quando o jogo estava em desenvolvimento; não apenas esse código foi escrito pelos mesmos autores, mas também que o conteúdo pré-gerado era normalmente usado no tempo de execução de elite.exe(ou seja, quando você jogava o jogo) por outros geradores que faziam parte do código do jogo , criando o mundo que você jogado dentro

Um exemplo mais recente é o Minecraft (e outros jogos inspirados por ele), onde o mundo gera literalmente ao seu redor enquanto você caminha em direção ao horizonte, graças em grande parte ao poder da computação moderna. Compare isso com Rogue ou Moria jogado em um PC-XT na década de 1980, pelo qual você pode ter que esperar algum tempo esperando a geração do nível! (dependendo das configurações de jogo escolhidas).

Nem todo PCG está historicamente enraizado na indústria de jogos. Por exemplo, há quem escreva geradores de ficção. Por exemplo, Ken Perlin no campo de gráficos e geometria computacional criou o algoritmo Perlin Noise, pelo qual mais tarde recebeu um prêmio da academia. Por exemplo, o músico Brian Eno há muito tempo se envolve na geração processual de partituras. E como outro exemplo, jogos de tabuleiro não digitais como o HeroQuest / Warhammer Quest há muito tempo inventaram a dinâmica processual para criar um tabuleiro de jogo diferente em cada jogo.

Engenheiro
fonte
6
Uma exceção técnica muito pequena - houve uma prova de projeto / jogo de pesquisa conceitual em que o jogo em si foi gerado processualmente. Ou seja, os objetivos, regras e, em certa medida, a representação foram todos gerados dinamicamente em tempo de execução. Ele confunde um pouco a linha entre o conteúdo e o mecanismo, mas o teste decisivo de "ele gera" ainda é válido. Excelente destilação.
Pikalek
3
@Pikalek Concordo plenamente com essa linha de pensamento. Podemos levar o Lisp até o ponto em que não há distinção entre instruções e dados. Não queria complicar demais as coisas na resposta. Obrigado por comentar.
Engineer
2
@ Adocad: Acho que você perdeu um pequeno detalhe na resposta: "Se você (ou seu mecanismo) usa algum outro código de programa que gera conteúdo e depois inclui esse conteúdo como parte do seu jogo no momento da compilação / compilação, seu jogo ( e seu código) NÃO É PCG " Se você incluiu o programa no seu jogo, em vez do conteúdo gerado pelo programa, e seu jogo acionaria o programa quando necessário (localmente, no computador do jogador), seria de fato PCG offline. Mas esse não é o caso quando você simplesmente inclui um resultado de uma geração de PCG (que agora é estática).
Flater
2
@AC: Eu acho que a distinção é mais clara quando rotulada como conteúdo gerado proceduralmente ou geração processual de conteúdo .
Flater
4
@Flater Obrigado, essa é a melhor maneira de colocá-lo - o conteúdo gerado por procedimento pode ser gerado offline e / ou em tempo de execução, mas a geração de conteúdo por procedimento é explicitamente em tempo de execução. (Note-se que uma ferramenta que gera conteúdo que posteriormente serão compilados em está fazendo PCG, no entanto, depois que o conteúdo tenha sido pré-gerado e compilado, o jogo que usa esse conteúdo é não fazer PCG)
AC