What i want to achieve
I want to make procedural terrain generation like the game Eclipsis. The Big islands in the middle and the small islands around it. I also want the well pumps and the spires (towers).
Every island needs atleast one Support and well pump. While the small islands with one well pump.
What i have tried
I’ve tried using Perlin noise and only spawn stuff when the noise is higher than a certain number. It didn’t get the shape i wanted and it is cut-off at the edges
print("terrain")
math.randomseed(os.time())
local seed = math.random(1000)
local size = 100
local divide = 10
local scale = 10
local function createTerrain(x, height, z)
for y = 0, -height, -1 do
local p = Instance.new("Part")
p.Size = Vector3.new(scale, scale, scale)
p.Anchored = true
p.Position = Vector3.new(x, y * scale, z)
p.Parent = workspace
end
end
for x = 1, size do
wait()
for z = 1, size do
local nX = x / divide
local nZ = z / divide
local noise2 = math.floor(math.noise(seed, nX, nZ) * 10)
if noise2 >= 2 then
createTerrain(x * scale, noise2, z * scale)
end
end
end
Note: i’m not expecting full script answers, only ideas on how to do it