Biyomlarla tamamen benzersiz bir dünya yaratmak istiyorum (Minecraft ve benzeri oyunların yaptığı gibi). Bu dünyaları nasıl tek bir "tohum" sayısından ürettiklerini anlamıyorum. Birisi tekniğe temel bir genel bakış sağlayabilir mi?
Biyomlarla tamamen benzersiz bir dünya yaratmak istiyorum (Minecraft ve benzeri oyunların yaptığı gibi). Bu dünyaları nasıl tek bir "tohum" sayısından ürettiklerini anlamıyorum. Birisi tekniğe temel bir genel bakış sağlayabilir mi?
Yanıtlar:
Bir tohumdan rastgele X'i nasıl üretiyorsunuz? Bir tohum değeri, rasgele sayı üretecinin başlangıç durumudur. Çoğu programlama dilinde bu tohumu ayarlayabilirsiniz. Örneğin, C kullanır srand()
. Başlamak için belirli bir tohum belirtmezseniz, genellikle tohum olarak bir zaman damgası değeri kullanılır. Bu şekilde, her çalıştırışınızda rastgele sayılar farklıdır.
// 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
Gördüğünüz gibi, ne zaman belirli bir değerde tohum ekersen (tohum olarak 1 kullanırım), elde edilen rasgele sayılar aynıdır.
Rasgele sayılara dayanan bir minecraft-life dünyasını nasıl yaratırsınız? Notch'in bu konuda bir mesajı var. Ayrıca, diğer insanların öğreticilerini "Minecraft benzeri dünyalar" hakkında da inceleyebilirsiniz. Bunu sevdim, örneğin: OpenGL 4'te Minecraft benzeri render . Temel fikir, Perlin gürültüsünü (veya tek yönlü gürültüyü) kullanmaktır. Gürültü fonksiyonlarıyla ilgili güzel bir soru: Perlin Gürültüsünü Anlamak