Chcę wygenerować całkowicie unikalny świat z biomami (jak to, co robią Minecraft i podobne gry). Nie rozumiem, w jaki sposób generują te całe światy z pojedynczej liczby „nasion”. Czy ktoś może przedstawić podstawowy przegląd techniki?
Chcę wygenerować całkowicie unikalny świat z biomami (jak to, co robią Minecraft i podobne gry). Nie rozumiem, w jaki sposób generują te całe światy z pojedynczej liczby „nasion”. Czy ktoś może przedstawić podstawowy przegląd techniki?
Odpowiedzi:
Jak generujesz losowy X z nasion? wartość początkowa to stan początkowy generatora liczb losowych. W większości języków programowania możesz ustawić to ziarno. Na przykład C wykorzystuje srand()
. Jeśli nie określisz konkretnego materiału siewnego na początek, zwykle jest używana wartość znacznika czasu. W ten sposób za każdym razem, gdy biegniesz, liczby losowe są różne.
// 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
Jak widać, za każdym razem, gdy wysiewasz z określoną wartością (użyłem 1 jako ziarna), wynikowe liczby losowe są takie same.
Jak stworzyć świat minecrafta oparty na losowych liczbach? Notch ma post na ten temat. Możesz także zapoznać się z samouczkami innych osób na temat „światów podobnych do minecrafta”. Podobał mi się ten, na przykład: renderowanie podobne do Minecraft w OpenGL 4 . Podstawową ideą jest użycie szumu Perlina (lub szumu simpleks). Oto dobre pytanie dotyczące funkcji hałasu: Zrozumienie hałasu Perlina