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.
Respostas:
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:
... 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.
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 dentroUm 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.
fonte