Voglio generare un mondo completamente unico con i biomi (come fanno Minecraft e giochi simili). Non capisco come generino questi interi mondi da un singolo numero "seed". Qualcuno può fornire una panoramica di base della tecnica?
Voglio generare un mondo completamente unico con i biomi (come fanno Minecraft e giochi simili). Non capisco come generino questi interi mondi da un singolo numero "seed". Qualcuno può fornire una panoramica di base della tecnica?
Risposte:
Come si genera una X casuale da un seme? un valore seed è lo stato iniziale di un generatore di numeri casuali. Nella maggior parte dei linguaggi di programmazione, puoi impostare questo seed. Ad esempio, C usa srand()
. Se non si specifica un seme specifico con cui iniziare, di solito viene utilizzato come seme un valore di data e ora. In questo modo, ogni volta che esegui, i numeri casuali sono diversi.
// C example
srand(1);
for(i=0; i<3; i++)
printf("%d\n", rand());
srand(1);
for(i=0; i<3; i++)
printf("%d\n", rand());
1270216262
1085377743
1481765933
1270216262
1085377743
1481765933
Come puoi vedere, ogni volta che esegui il seeding con un determinato valore (ho usato 1 come seed), i numeri casuali risultanti sono gli stessi.
Come si crea un mondo di vita di Minecraft basato su numeri casuali? Notch ha un post su questo. Inoltre, puoi dare un'occhiata ai tutorial di altre persone su "mondi simili a minecraft". Mi è piaciuto questo, ad esempio: rendering simile a Minecraft in OpenGL 4 . L'idea di base è usare il rumore Perlin (o rumore simplex). Ecco una buona domanda sulle funzioni del rumore: Comprensione del rumore Perlin