I’m working on the random noise map generator for my survival game. The map should be an island but my noise map is showing an uncompleted border chunk, Is there any way to solve it so the map looks like an island or many islands in one place. I have found some posts in Reddit and StackOverflow where you can make it by using an offset map but I don’t think that option is available in Roblox. So, if there is any way I can do that, It would be very great for my island survival game.
I have done this before, you basically generate a noise map and combine it with a radial, elliptical, or any other gradient map that gets rid of the edges.
Do you mean randomly? In roblox without using any extensions? Also I have mentioned offset map which means those things but how can i combine with the noise map that i generated?
A 2d noise map can just be thought of as a 2d array of numerical values. So you would need to generate another gradient map of the same size as the noise map. Then combine the values in a way that benefits your goals. There is quite a bit of math for generating different gradient maps so you might want to start doing some research on that for further information.
for x = 1, X do
posGrid[x] = {}
for z = 1, Z do
posGrid[x][z] = newV3(
CHUNK_SCALE.X * chunkPosX + x*WIDTH_SCALE,
noise((x + (X-1) * chunkPosX)/TERRAIN_SMOOTHNESS, (z + (Z-1) * chunkPosZ)/TERRAIN_SMOOTHNESS, SEED) * HEIGHT_SCALE,
CHUNK_SCALE.Z * chunkPosZ + z*WIDTH_SCALE
)
if posGrid[x][z].Y > MOUNTAIN_HEIGHT then
local relativeMountainHeight = posGrid[x][z].Y - MOUNTAIN_HEIGHT
posGrid[x][z] = posGrid[x][z] + (newV3(0, .75, 0) * relativeMountainHeight) + (10 * newV3(0, .25, 0))
elseif posGrid[x][z].Y > MOUNTAIN_HEIGHT - 10 then
local relativeMountainHeight = posGrid[x][z].Y - (MOUNTAIN_HEIGHT - 10)
posGrid[x][z] = posGrid[x][z] + (newV3(0, .25, 0) * relativeMountainHeight)
end
end
end
The modified code I got from the yt tutorial, One question, I guess this make a random noise map, but how do I combine it with another noise map? etc like this, I have been struggling with this for 2 days, I have tried some formula by myself but it corrupt the map eventually
My not working code for the gradient map
if chunkPosZ < Center and chunkPosX < Center then
offset = (chunkPosZ-1)(chunkPosX-1)/Center
else
if chunkPosZ > Center and chunkPosX > Center then
offset = (2Center+(-1*(chunkPosZ+chunkPosX)))/Center
else
if chunkPosZ >= Center and chunkPosX <= Center then
offset = (2Center+(-1(chunkPosZ-chunkPosX)))/Center
else
if chunkPosZ <= Center and chunkPosX >= Center then
offset = (2Center+(-1(chunkPosX-chunkPosZ)))/Center
else
offset = 2
end
end
end
To combine them you just preform arithmetic on the numerical values, clamp if needed.
How to put this gradient map into numerical values? Also, the problem with the map is that the map starts building from the edges instead of the center, and It comes with connections between wedges and trees which means editing the height of the map after structuring might corrupt the map? It’s gonna be a big appreciation if you can modify this code
Map structuring:
https://gyazo.com/ccfd2dab0e25f92039bdacfb7147f21a?token=f61baae301aa735c6550a6a503ffb694
Code Noise Mapping Part:
posGrid[x][z] = newV3(
CHUNK_SCALE.X * chunkPosX + xWIDTH_SCALE,
noise((x + (X-1) * chunkPosX)/TERRAIN_SMOOTHNESS, (z + (Z-1) * chunkPosZ)/TERRAIN_SMOOTHNESS, SEED) * HEIGHT_SCALE,
CHUNK_SCALE.Z * chunkPosZ + zWIDTH_SCALE
)
If you generated the gradient map it would already be described by numerical values.
Do you mean like generating it manually from extension software? I haven’t made a map using another software, all of them are made by coding
You can generate them in Roblox, it’s literally just an array of numbers.
Oh really, where can i generate them? Is there a plugin for that?
I don’t think you understand, you can use math and code to generate a 2D array of numerical values assuming your noise map is also represented as a 2D array of numerical values. The combination of two maps will result in a new map aka another 2D array of numerical values. You don’t need external software or plugins.
Yeah I’m having problem combining 2 maps, Idk what I have to combine ( etc noise, CFrame ) Also I can’t combine CFrame cuz it will corrupt the map since its built with wedges. If i combie noise ( sometimes negative noise become positive )
You just do mathematical operations on the numerical values.
You should probably make a function that calculates values between 0 and 1. Then just multiply the corresponding noise value with this value. And do that before creating the wedges.
What’s your discord? I’ll send you the code there so you get more details, Mine Bloxvin#4131
Maybe a code example which might help