So I have recently dabbled into the concept of terrain generation through perlin noise. I have limited and basic knowledge on this, though I believe this is the best way for me to create a realistic open world map with beautiful mountains and hills I recently addressed in an earlier discussion I created.
What I am looking for:
- A way to use perlin noise to create believable terrain
- A way to create different biomes through perlin noise
- Possibly a way to use fog maps created by perlin noise as a heightmap
Remember, I am a beginner when it comes to this concept, so if I do not respond for a while it may be because I am googling the definition of terms or concepts you may have mentioned in your reply. I appreciate your time!
3 Likes
You can use an image editing program to make a heightmap out of perlin noise. When you have an image, you can simply use the builtin heightmap importer in Roblox’s terrain editor:

If you want to make it more realistic though, I’d recommend manually tweaking the heightmap or tweaking the terrain after it’s imported, since Perlin noise seems to be completely random. There are also other programs you could use to make heightmaps, like World Creator.
If you intend on randomly generating it similarily to Minecraft though, I can’t help with that since that would involve scripting.
3 Likes
biomes, I was thinking about a system that uses parts that contain info about the biome, then when the terrain starts generating it calculates the distance between the part of terrain and the biomepart, if the distance is greater than some value it changes biome
2 Likes
you could code your own terrain generator using perlin noise.
Heres a very basic code I wrote:
local Xs = math.random(100,200) --Size X–
local Zs = math.random(100,200) – Size Y–
local Resolution = 200 --If You Decrease it You’ll get sharper terrain–
local Amplitude = 100 --Perlin Noise Is Like A Wave, If You Increase Amplitude Terrain Will Be Taller–
local Seed = math.random(100000000,200000000) --Random Number For Random Terrain Every Time–
for x = 1,Xs,5 do --5 is the number in which the count will increase–
for z = 1,Zs,5 do
local noise = math.noise(x/Resolution, z/Resolution, Seed) * Amplitude
local part = Instance.new(“Part”)
part.Size = Vector3.new(5,100,5) --Size Is Equals To The Number In Which The Count Will Increase–
part.Position = Vector3.new(x,noise,z)
part.Anchored = true
part.Parent = workspace
–Consider adding a hearbeat wait when working with large chunks–
end
end
2 Likes
Procedurally generated or just generated when playing?
1 Like
Just generated when playing. For example, games like Ark or Apocalypse Rising with pre-made maps with unique and fun locations to explore.
1 Like
Ahh I see, this is notable. My only worry about doing this though is the material of the terrain and the lack of a Color map. For example, the heightmap would create all the hills and mountains but it won’t create the rocky sides of the mountains or the grass of the hills. Also, I don’t plan on making it procedurally generated, so this is a notable way of creating my map. Thanks for sharing!
1 Like
Yes I was thinking of this too though this would require further research on my end. I do plan on learning though, so thanks for the info!
1 Like
Oh I’ve actually seen this code in a YouTube tutorial I followed. I wrote this code though it only created the terrain out of parts rather than voxels. I would like a way to convert the created parts into roblox terrain. Also, like stated in your other reply, I would need to create my own code to create biomes and mountaintops and the like.
1 Like
to go through that I used rock on the desired position of the perlin noise and grass on top of the perlin noise giving this result:
[Old Image]
1 Like
use workspace.Terrain:FillBlock() or workspace.Terrain:FillBall()
FillBall() uses this arguments: Ball’s Center, Ball’s Radius, Enum.Material
FillBlock() uses this arguments: Block’s CFrame, Block’s Size [Vector3], Enum.Material
1 Like
So I know I requested a way to create the map using perlin noise, but instead I tried to use Quadspinner Gaea in order to create a heightmap and colormap for my game. I really appreciate all the support you all have given me, so thanks! 
1 Like
to make it realistic, use fractal noise