Qual è la differenza tra "generazione dinamica" e "generazione procedurale"?


15

Quando penso a un gioco generato dinamicamente, penso a cose come Diablo con livelli generati casualmente. Quando penso a un gioco generato proceduralmente, penso a cose come Flappy Bird e altri corridori infiniti.

Ma entrambi questi semplicemente randomizzano un livello. È che i giochi generati proceduralmente vengono generati costantemente e i giochi generati dinamicamente sono generati in anticipo? O questi termini sono intercambiabili?

Qual è la differenza tra un gioco generato dinamicamente e un gioco generato proceduralmente ?

Risposte:


21

"Procedurale" significa che alcuni algoritmi hanno creato il contenuto. Ciò è contrario al contenuto creato manualmente da un essere umano.

"Dinamico" significa che il contenuto cambia nel tempo. Ciò si oppone al contenuto "statico" che non cambia dopo essere stato creato o cambia solo in modi predefiniti, ad esempio l'animazione dei personaggi con cornice chiave.

Puoi anche avere contenuti creati dal giocatore nel gioco. Questa è una funzione di gioco che consente ai giocatori di modificare i livelli o il gioco durante il gioco piuttosto che utilizzare strumenti esterni per modificare il gioco. Per i prossimi paragrafi, suppongo che non stiamo parlando di contenuti creati dai giocatori.

Puoi usare il codice per generare qualcosa che non cambia mai; tale contenuto è statico e non dinamico, nonostante sia procedurale. Tutto il contenuto dinamico è procedurale, ma non tutto il contenuto procedurale è dinamico.

Puoi anche combinare contenuti manuali, procedurali, statici e dinamici in tutti i modi. Ad esempio, un artista potrebbe creare manualmente un modello di edificio, utilizzare uno strumento per generare proceduralmente varie mappe di trama per il modello, quindi impostare i dati per i sistemi di fisica o di gioco per distruggere dinamicamente l'edificio e generare detriti statici durante il gioco.

Nota : queste definizioni non sono formali . Potresti discutere di semantica su queste parole per sempre. Probabilmente incontrerai persone con diverse definizioni di queste parole e nessuno di noi sarebbe necessariamente in errore. Anche il gergo tecnologico è molto più fluido di quanto tendano a preferire i tipi di programmatori. :)


1
"Tutto il contenuto dinamico è procedurale" - Che dire del contenuto creato dalle azioni di altri giocatori? Ad esempio, in Eve Online ci sono avamposti orbitali in continua evoluzione interamente creati dai giocatori.
Mołot

1
@Molot: e c'è il primo esempio del mio ultimo paragrafo. :) Immagino che stavo davvero pensando al contenuto pubblicato dallo sviluppatore per questa risposta, e suppongo che potresti considerare il contenuto creato dallo sviluppatore contro il giocatore come un altro asse a parte dinamico / statico o manuale / procedurale. ad esempio, in molti giochi, i giocatori possono costruire strutture in una modalità di costruzione, ma la mappa è statica per il resto del gioco, quindi puoi avere contenuti statici creati dal giocatore. Ma ancora una volta, non sono eccessivamente particolare riguardo alla terminologia. :)
Sean Middleditch il

4

"Dinamico" significa

"(di un processo o sistema) caratterizzato da cambiamenti, attività o progressi costanti."

(dice google.)

Per distinguere questi due termini, andrei con "generazione dinamica" che significa "creato appena in tempo, al volo, mentre suoni" ...

E "generazione procedurale" significa generato algoritmicamente, sia in anticipo che al volo.


1
Quindi l'opposto del mio pensiero iniziale?
Evorlor

2
@Evorlor: direi così. "Procedurale" significa solo che alcuni algoritmi hanno creato il contenuto. "Dinamico" significa che il contenuto cambia nel tempo. Puoi usare il codice per generare qualcosa solo una volta, quindi sarebbe statico e non dinamico. Tutto il contenuto dinamico è procedurale, ma non tutto il contenuto procedurale è dinamico. Puoi anche mescolare i due in tutti i modi; ad esempio un livello dinamico che si riempie proceduralmente di contenuto statico. :)
Sean Middleditch il

@SeanMiddleditch converti per rispondere per favore :-)
Evorlor

@Evorlor: fatto, ma non sono sicuro di aver detto altro oltre a quello che David Van Brink ha già fatto.
Sean Middleditch,

@SeanMiddleditch forse no, ma la tua spiegazione mi è stata più chiara. Grazie!
Evorlor,

1

Ecco una breve panoramica.

  • Generazione dinamica

La parola "dinamico" significa cambiare. La parola "generazione" significa creazione di cose, quindi "generazione dinamica" sta cambiando generazione. Pertanto, la "generazione dinamica" si riferisce a contenuti in continua evoluzione.

  • Generazione procedurale

La parola "procedurale" si riferisce al contenuto creato da un algoritmo informatico e non da un essere umano. Come abbiamo stabilito "generazione" significa creazione, quindi "generazione procedurale" si riferisce al contenuto generato tramite un algoritmo informatico.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.