I'm using Roblox Studio, and have come across the Terrain Generator. It has the text input "Seed" and always has some default number/code. I've always been bothered about what the seed is and if there is some sort of list on Roblox Seeds. Here is a screenshot of the feature: Screenshot of Terrain Editor on Roblox Studio
I've been messing around by typing in random numbers, and it has affected the terrain style. I've also googled multiple times Roblox Seeds, but have only found games and groups.
I would appreciate if I could have some sort of list on all the Roblox Seeds and also how they work.
High Performance Mark is correct. Let me explain why.
Terrain generators, cloud generators, and ocean simulators all use mathematical wave, random, and noise functions to construct interesting and believable shapes. The seed value largely does not matter to anyone except the generator. That value allows it to reliably make reproducible results very quickly. Computer programs need to find ways to optimize everything possible, and storing terrain information can be a lot of data to hold onto! So rather than saving all of it, smart systems will try to regenerate terrain whenever it needs it. Every spot in the terrain can be recalculated using a complicated math function and your seed value plays an important role in that calculation.
As an example, let's say you wanted to draw some 2D hills. You could use a sine wave to describe the height of those hills.
for distanceAway = 0, 1, 0.1 do
local hillHeight = math.sin( distanceAway )
print( hillHeight )
end
Because you're using a mathematical function to describe the hills, at any distance away you can instantly know, is it supposed to be the top of a hill, the bottom of a valley, or something in between. And it will be the same every time you run it too!
But maybe those hills all look too similar. You can add some variation and jitter to those hills by adding some random number to the height.
for distanceAway = 0, 1, 0.1 do
local hillHeight = math.sin( distanceAway ) + math.random()
print( hillHeight )
end
And this might seen like a nice addition: the hills now have more variation, they might be a little unusually spiky, but at least they aren't the same hills over and over and over again... but now we have a problem. When we ask for the same hill again, it is different!
local distanceAway = 10
local hillHeight = math.sin( distanceAway ) + math.random()
print( hillHeight )
hillHeight = math.sin( distanceAway ) + math.random()
print( hillHeight )
Imagine you're walking through the world, and you find a really cool rock or tree on a hilltop. So you walk away to go find a friend, but when you return, the hilltop is now a valley. And it would be like that everywhere you went. There would be no persistent world to revisit anywhere!
So instead of a random number, let's use a psuedo-random number from a noise function instead. This time, let's provide a seed value too!
local seedValue = 0.2357
local distanceAway = 10
local hillHeight = math.sin( distanceAway ) + math.noise( distanceAway, 0.5, seedValue )
print( hillHeight )
hillHeight = math.sin( distanceAway ) + math.noise( distanceAway, 0.5, seedValue )
print( hillHeight )
Beautiful! Providing the seed number allows the noise function to recreate the same random-looking number every time. Now we've got reproducible terrain generation and it has some interesting variation too!
If you would like to see other uses of noise, there is a fantastic slideshow made by the University of Texas that goes into depth about random numbers and noise.
I hope this helps provide context for why the Roblox Terrain Editor allows you to provide a "Seed" value. And as far as I know, there isn't a master list created of all the different seeds. But if you find a good one, be sure to share the number with your friends so they can try it out too!