Qual é a diferença entre “geração dinâmica” e “geração procedural”?
15
Quando penso em um jogo gerado dinamicamente, penso em coisas como Diablo com níveis gerados aleatoriamente. Quando penso em um jogo processualmente gerado, penso em coisas como Flappy Bird e outros corredores infinitos.
Mas esses dois apenas randomizam um nível. Os jogos gerados proceduralmente são gerados constantemente e os jogos gerados dinamicamente são todos gerados antecipadamente? Ou esses termos são intercambiáveis?
Qual é a diferença entre um jogo gerado dinamicamente e um jogo gerado processualmente ?
"Procedural" significa que algum algoritmo criou o conteúdo. Isso se opõe ao conteúdo sendo criado manualmente por um ser humano.
"Dinâmico" significa que o conteúdo muda com o tempo. Isso se opõe ao conteúdo "estático" que não muda depois de ser criado, ou apenas muda de maneiras predefinidas, por exemplo, animação de personagem com estrutura de chave.
Você também pode ter conteúdo criado por jogadores no jogo. Esse é um recurso do jogo que permite aos jogadores alterar os níveis ou o jogo durante o jogo, em vez de usar ferramentas externas para modificar o jogo. Para os próximos parágrafos, estou assumindo que não estamos falando de conteúdo criado por jogadores.
Você pode usar o código para gerar algo que nunca muda; esse conteúdo é estático e não dinâmico, apesar de ser processual. Todo o conteúdo dinâmico é processual, mas nem todo o conteúdo processual é dinâmico.
Você também pode misturar conteúdo manual, processual, estático e dinâmico de várias maneiras. Por exemplo, um artista pode criar um modelo de construção manualmente, usar uma ferramenta para gerar proceduralmente vários mapas de textura para o modelo e configurar dados para sistemas físicos ou de jogabilidade para destruir dinamicamente a construção e gerar detritos estáticos durante a reprodução.
Nota : essas definições não são formais . Você pode discutir semântica sobre essas palavras para sempre. É provável que você encontre pessoas com definições diferentes dessas palavras e nenhum de nós estaria necessariamente errado. Até o jargão tecnológico é muito mais fluido do que nós, programadores, preferimos. :)
"Todo o conteúdo dinâmico é processual" - E o conteúdo criado a partir das ações de outros jogadores? Por exemplo, no Eve Online, existem postos orbitais em constante mudança que são inteiramente criados por jogadores.
Mołot 16/08
11
@ Molot: e há o primeiro exemplo do meu último parágrafo. :) Acho que estava realmente pensando no conteúdo publicado pelo desenvolvedor para esta resposta, e suponho que você possa considerar o conteúdo criado pelo desenvolvedor versus o jogador como outro eixo além de dinâmico / estático ou manual / processual. por exemplo, em muitos jogos, os jogadores podem construir estruturas no modo de construção, mas o mapa fica estático para o resto do jogo, para que você possa ter conteúdo estático criado por jogadores. Mas, novamente, eu não sou muito específico sobre a terminologia. :)
Sean Middleditch
4
"Dinâmico" significa
"(de um processo ou sistema) caracterizado por constante mudança, atividade ou progresso."
(diz google.)
Para distinguir esses dois termos, eu usaria o significado de "geração dinâmica", criado bem na hora, enquanto você toca "...
E "geração procedural", que significa gerada por algoritmos, de antemão ou em tempo real.
@Evorlor: eu diria que sim. "Procedural" significa apenas que algum algoritmo criou o conteúdo. "Dinâmico" significa que o conteúdo muda com o tempo. Você pode usar o código para gerar algo apenas uma vez, para que seja estático e não dinâmico. Todo o conteúdo dinâmico é processual, mas nem todo o conteúdo processual é dinâmico. Você pode misturar os dois de todos os tipos também; por exemplo, um nível dinâmico que se enche processualmente de conteúdo estático. :)
Sean Middleditch 15/15
@SeanMiddleditch convertido para responder por favor :-)
Evorlor
@Evorlor: pronto, mas não sei se disse mais do que o que David van Brink já fez.
Sean Middleditch
@SeanMiddleditch talvez não, mas sua explicação foi mais clara para mim. Obrigado!
Evorlor 15/08/2015
1
Aqui está uma pequena visão geral rápida.
Geração dinâmica
A palavra "dinâmico" significa mudar. A palavra "geração" significa criação de coisas, portanto "geração dinâmica" está mudando de geração. Portanto, 'geração dinâmica' refere-se a conteúdo que muda constantemente.
Geração processual
A palavra "processual" refere-se ao conteúdo criado por um algoritmo de computador e não por um ser humano. Como estabelecemos "geração" significa criação, portanto, "geração procedural" refere-se ao conteúdo gerado por um algoritmo de computador.
"Dinâmico" significa
(diz google.)
Para distinguir esses dois termos, eu usaria o significado de "geração dinâmica", criado bem na hora, enquanto você toca "...
E "geração procedural", que significa gerada por algoritmos, de antemão ou em tempo real.
fonte
Aqui está uma pequena visão geral rápida.
fonte