[Mod] Moon realm [0.11.0] [moonrealm]
- paramat
- Developer
- Posts: 3700
- Joined: Sun Oct 28, 2012 00:05
- GitHub: paramat
- IRC: paramat
- Location: UK
Just noticed a possible problem here in your air spread ABM ... if you remove node you'll end up with an air node again. You need to add atmosphere?mauvebic wrote:Code: Select all
if not env:find_node_near(pos, 1, {'air'}) then env:remove_node(pos) print ("[moonrealm] Air Dissipates") return end
Another idea is simply setting neighbours to atmosphere and default air, so the ABM only runs on groups of 2 air nodes, single air nodes left over by the buggy atmosphere generation do not spread. If this works this would be the simplest and fastest method.
Code: Select all
if ATMOS and AIRGEN then
minetest.register_abm({
nodenames = {"air"},
neighbors = {"moonrealm:atmos", "air"}, -- ABM active only on 2+ air nodes near atmos
interval = AIRINT,
chance = 9,
action = function(pos, node, active_object_count, active_object_count_wider)
local env = minetest.env
local x = pos.x
local y = pos.y
local z = pos.z
for i = -1,1 do
for j = -1,1 do
for k = -1,1 do
if not (i == 0 and j == 0 and k == 0) then
local nodename = env:get_node({x=x+i,y=y+j,z=z+k}).name
if nodename == "moonrealm:atmos" then
env:add_node({x=x+i,y=y+j,z=z+k},{name="air"})
print ("[moonrealm] Air spreads ("..i.." "..j.." "..k..")")
end
end
end
end
end
end
})
end
Comets will soon be surrounded by a white hazy atmosphere of water vapour, the comets 'tail'.
Last edited by paramat on Wed Jul 17, 2013 22:23, edited 1 time in total.
- paramat
- Developer
- Posts: 3700
- Joined: Sun Oct 28, 2012 00:05
- GitHub: paramat
- IRC: paramat
- Location: UK
It's warm in the UK ... not hot, we don't know what hot means here.
I noticed you use red lakes a lot ... in v0.4.2 you can set the alpha, colour and viscosity by parameter.
I noticed you use red lakes a lot ... in v0.4.2 you can set the alpha, colour and viscosity by parameter.
Last edited by paramat on Tue Jul 23, 2013 18:43, edited 1 time in total.
43c with a side of palpitations and a lovely Castithan pâleurparamat wrote:It's warm in the UK ... not hot, we don't know what hot means here.
Cometry nucleus inside it's atmosphere:
Sweet commet, does it spawn within the Asteroid realm?
Also, will the asteroid realm be part of moonrealm or it's own mod?
- paramat
- Developer
- Posts: 3700
- Joined: Sun Oct 28, 2012 00:05
- GitHub: paramat
- IRC: paramat
- Location: UK
Makes me nervous using default air again, i suspect that mapgen bugs will leave large volumes of air behind that will then spread exponentially. So for the moment i'm going to stick to using v0.4.2 moonrealm:air until there is a safer way of using default air. I can live without doors and can code my own spacewheat and spacetrees.
mauvebic, do you get diagonal air leaks through your glass domes? Seems your domes would allow that? I'm considering non-diagonal air movement but that would slow it down a lot.
mauvebic, do you get diagonal air leaks through your glass domes? Seems your domes would allow that? I'm considering non-diagonal air movement but that would slow it down a lot.
Last edited by paramat on Thu Jul 18, 2013 03:58, edited 1 time in total.
realms teleportation system (includes area scrambling and funneling)
Re air, my method of eliminating single air nodes does the trick for me (except for that bug you mentioned where I get rid of air by placing air lol). It's true that using neighbours = atmos,air means the single air nodes would remain, but they wouldn't expand either.
And yes, I have to make domes with a thickness of 3. Checking only up, down, and around would probably fix that. Would also reduce the number of get_nodes and eliminate the need for a triple for loop.
I would also have preferred sticking with realms air since I have to use a Y-height restriction with my method, but it breaks too many mods to be able to build.
Re air, my method of eliminating single air nodes does the trick for me (except for that bug you mentioned where I get rid of air by placing air lol). It's true that using neighbours = atmos,air means the single air nodes would remain, but they wouldn't expand either.
And yes, I have to make domes with a thickness of 3. Checking only up, down, and around would probably fix that. Would also reduce the number of get_nodes and eliminate the need for a triple for loop.
I would also have preferred sticking with realms air since I have to use a Y-height restriction with my method, but it breaks too many mods to be able to build.
Last edited by mauvebic on Fri Jul 19, 2013 00:39, edited 1 time in total.
Putting atmos and air in neighbours doesn't work for me.
new abm:
Terminal output:
Im guessing only one of the neighbors needs to present, like an OR statement, rather than AND - unless I missed something else.
new abm:
Code: Select all
minetest.register_abm({
nodenames = {"air"},
neighbors = {"group:atmosphere", "air"},
interval = AIRINT,
chance = 9,
action = function(pos, node, active_object_count, active_object_count_wider)
if pos.y < AIRFLOOR then return end
local env = minetest.env
local x = pos.x
local y = pos.y
local z = pos.z
for _, cpos in pairs({{x=x-1,y=y,z=z},{x=x+1,y=y,z=z},{x=x,y=y-1,z=z},{x=x,y=y+1,z=z},{x=x,y=y,z=z-1},{x=x,y=y,z=z+1}}) do
local nodename = env:get_node(cpos).name
if minetest.get_item_group(nodename,'atmosphere') == 1 then
if not env:find_node_near(pos, 1, {'air'}) then print ("no neighbouring air node found, spreading anyway") end
env:add_node(cpos,{name="air"})
print ("[moonrealm] Air spreads to "..minetest.pos_to_string(cpos))
end
end
end
})
Code: Select all
no neighbouring air node found, spreading anyway
[moonrealm] Air spreads to (-5,4009,19)
[moonrealm] Air spreads to (-3,4009,19)
[moonrealm] Air spreads to (-4,4008,19)
[moonrealm] Air spreads to (-4,4010,19)
[moonrealm] Air spreads to (-4,4009,18)
[moonrealm] Air spreads to (-4,4009,20)
no neighbouring air node found, spreading anyway
[moonrealm] Air spreads to (40,4011,-4)
[moonrealm] Air spreads to (42,4011,-4)
[moonrealm] Air spreads to (41,4010,-4)
[moonrealm] Air spreads to (41,4012,-4)
[moonrealm] Air spreads to (41,4011,-5)
- paramat
- Developer
- Posts: 3700
- Joined: Sun Oct 28, 2012 00:05
- GitHub: paramat
- IRC: paramat
- Location: UK
Aha ... yes i think it is an OR with neighours.
Your abm seems to spread single air nodes instead of avoiding doing that ... ? Do you need to remove 'air' from neighbors? The abm should only run on air next to atmosphere. I suggest counting up numbers of neighbouring atmos and air nodes and using both values carefully to decide whether to spread.
The reason i'm not using default air is because i often get large bug generated volumes of air at chunk boundaries.
Your abm seems to spread single air nodes instead of avoiding doing that ... ? Do you need to remove 'air' from neighbors? The abm should only run on air next to atmosphere. I suggest counting up numbers of neighbouring atmos and air nodes and using both values carefully to decide whether to spread.
The reason i'm not using default air is because i often get large bug generated volumes of air at chunk boundaries.
Last edited by paramat on Sat Jul 20, 2013 02:12, edited 1 time in total.
0.47? In 0.46 I only get the odd single air node here and there. So yeah my code wouldn't be much use for the case you describeparamat wrote:The reason i'm not using default air is because i often get large bug generated volumes of air at chunk boundaries.
In any case I've removed atmospheres. Let's see what happens with 0.48
Last edited by mauvebic on Sat Jul 20, 2013 17:21, edited 1 time in total.
- paramat
- Developer
- Posts: 3700
- Joined: Sun Oct 28, 2012 00:05
- GitHub: paramat
- IRC: paramat
- Location: UK
Have you tried looking for it in the future?
Increasing perlin noise persistence to 0.6 or 0.7 will do that.mauvebic wrote:Nice! Could use more smaller asteroids though :-)
Last edited by paramat on Sun Jul 21, 2013 05:58, edited 1 time in total.
- paramat
- Developer
- Posts: 3700
- Joined: Sun Oct 28, 2012 00:05
- GitHub: paramat
- IRC: paramat
- Location: UK
Prerelease version https://github.com/paramat/asteroid
Last edited by paramat on Mon Jul 22, 2013 22:56, edited 1 time in total.
Im having some trouble with realms and lag on a public server
How could I speed up generation? i've already removed 2/8 realms, but that's not enough. I though of maybe removing dusts, sticking to 2-3 per realm, or it could be my settings?
[config]
How could I speed up generation? i've already removed 2/8 realms, but that's not enough. I though of maybe removing dusts, sticking to 2-3 per realm, or it could be my settings?
[config]
Code: Select all
-------------------------------------------// Realms
register_realm("vulcan",{
ONGEN = true, -- (true / false) -- Enable / disable moonrealm generation.
YMIN = 4000, -- Approx bottom. Rounded down to chunk boundary.
YMAX = 5000, -- Approx surface. Rounded up to chunk boundary.
ATMTOP = 6000, -- Exact top of atmosphere nodes (if ATMOS = true).
OFFCEN = 80, -- 80, -- Offset centre average. Terrain centre average level, relative to base of surface chunks.
CENAMP = 24, -- 24, -- Offset centre amplitude. Terrain centre is varied by this.
-- HIGRAD = 48, -- 48, -- Surface generating noise gradient above offcen. Controls depth of upper terrain.
-- LOGRAD = 48, -- 48, -- Surface generating noise gradient below offcen. Controls depth of lower terrain.
HIGRAD = 96, -- 48, -- Surface generating noise gradient above offcen. Controls depth of upper terrain.
LOGRAD = 96, -- 48, -- Surface generating noise gradient below offcen. Controls depth of lower terrain.
HEXP = 2, -- 2, -- Noise offset exponent above offcen., -- Crazyness parameters upper/lower terrain, 1 = normal 3D perlin terrain.
LEXP = 2, -- 2, -- Noise offset exponent below offcen.
DUSAMP = 0.1, -- 0.1, -- Dust depth amplitude.
DUSRAN = 0.01, -- 0.01, -- Dust depth randomness.
DUSGRAD = 128, -- 128, -- Dust noise gradient.
LHC = true, -- Enable / disable liquid hydrocarbon lakes.
LHCLEV = 48, -- 48, -- Liquid hydrocarbon lake level, relative to base of surface chunks.
ICELEV = 128, -- 128, -- Ice spawns above this altitude, relative to base of surface chunks.
ICECHA = 1, -- 1, -- Maximum 1/x chance water ice in dust.
CAVOFF = 0.02, -- 0.02, -- Cave offset. Size of underground caves.
CAVLEV = 0, -- 0, -- Caves thin above this level, relative to base of surface chunks.
CAVDIS = 96, -- 96, -- Cave thinning distance in nodes.
LUXCHA = 7*7*7, -- 7*7*7, -- Luxore 1/x chance underground.
IROCHA = 5*5*5, -- 5*5*5, -- Iron ore 1/x chance.
MESCHA = 23*23*23, -- 23*23*23, -- Mese block 1/x chance.
ATMOS = false, -- Enable / disable tinted atmosphere nodes.
ATMALP = 32, -- 16, -- Atmosphere alpha.
ATMRED = 250, -- 255, -- Atmosphere RGB.
ATMGRE = 168, -- 148
ATMBLU = 98, -- 0
-- Perlin noise for terrain.
SEEDDIFF1 = 46894686546,
OCTAVES1 = 6, -- 6
PERSISTENCE1 = 0.6, -- 0.6
SCALE1 = 256, -- 256
-- perlin noise for terrain. 207 / 128 = golden ratio.
SEEDDIFF4 = 1390930295123,
OCTAVES4 = 6, -- 6
PERSISTENCE4 = 0.6, -- 0.6
SCALE4 = 207, -- 207
-- Perlin noise for caves.
SEEDDIFF2 = 9294207,
OCTAVES2 = 6, -- 6
PERSISTENCE2 = 0.5, -- 0.5
SCALE2 = 207, -- 207
-- Perlin noise for dust depth, average terrain level, dust colour
SEEDDIFF3 = 93561,
OCTAVES3 = 4, -- 4
PERSISTENCE3 = 0.5, -- 0.5
SCALE3 = 256, -- 256
})
register_realm("andoria",{
ONGEN = true, -- (true / false) -- Enable / disable moonrealm generation.
YMIN = 9000, -- Approx bottom. Rounded down to chunk boundary.
YMAX = 10000, -- Approx surface. Rounded up to chunk boundary.
ATMTOP = 11000, -- Exact top of atmosphere nodes (if ATMOS = true).
OFFCEN = 80, -- 80, -- Offset centre average. Terrain centre average level, relative to base of surface chunks.
CENAMP = 24, -- 24, -- Offset centre amplitude. Terrain centre is varied by this.
HIGRAD = 48, -- 48, -- Surface generating noise gradient above offcen. Controls depth of upper terrain.
-- LOGRAD = 48, -- 48, -- Surface generating noise gradient below offcen. Controls depth of lower terrain.
LOGRAD = 96, -- 48, -- Surface generating noise gradient below offcen. Controls depth of lower terrain.
HEXP = 2, -- 2, -- Noise offset exponent above offcen., -- Crazyness parameters upper/lower terrain, 1 = normal 3D perlin terrain.
-- LEXP = 2, -- 2, -- Noise offset exponent below offcen.
LEXP = 2.5, -- 2, -- Noise offset exponent below offcen.
DUSAMP = 0.1, -- 0.1, -- Dust depth amplitude.
DUSRAN = 0.01, -- 0.01, -- Dust depth randomness.
DUSGRAD = 128, -- 128, -- Dust noise gradient.
LHC = true, -- Enable / disable liquid hydrocarbon lakes.
LHCLEV = 48, -- 48, -- Liquid hydrocarbon lake level, relative to base of surface chunks.
ICELEV = 64, -- 128, -- Ice spawns above this altitude, relative to base of surface chunks.
ICECHA = 1, -- 1, -- Maximum 1/x chance water ice in dust.
CAVOFF = 0.02, -- 0.02, -- Cave offset. Size of underground caves.
CAVLEV = 0, -- 0, -- Caves thin above this level, relative to base of surface chunks.
CAVDIS = 96, -- 96, -- Cave thinning distance in nodes.
LUXCHA = 7*7*7, -- 7*7*7, -- Luxore 1/x chance underground.
IROCHA = 5*5*5, -- 5*5*5, -- Iron ore 1/x chance.
MESCHA = 23*23*23, -- 23*23*23, -- Mese block 1/x chance.
ATMOS = false, -- Enable / disable tinted atmosphere nodes.
ATMALP = 32, -- 16, -- Atmosphere alpha.
ATMRED = 0, -- 255, -- Atmosphere RGB.
ATMGRE = 148, -- 148
ATMBLU = 255, -- 0
-- Perlin noise for terrain.
SEEDDIFF1 = 46894686546,
OCTAVES1 = 6, -- 6
PERSISTENCE1 = 0.6, -- 0.6
SCALE1 = 256, -- 256
-- perlin noise for terrain. 207 / 128 = golden ratio.
SEEDDIFF4 = 1390930295123,
OCTAVES4 = 6, -- 6
PERSISTENCE4 = 0.6, -- 0.6
SCALE4 = 207, -- 207
-- Perlin noise for caves.
SEEDDIFF2 = 9294207,
OCTAVES2 = 6, -- 6
PERSISTENCE2 = 0.5, -- 0.5
SCALE2 = 207, -- 207
-- Perlin noise for dust depth, average terrain level, dust colour
SEEDDIFF3 = 93561,
OCTAVES3 = 4, -- 4
PERSISTENCE3 = 0.5, -- 0.5
SCALE3 = 256, -- 256
})
register_realm("dytallix",{
ONGEN = true, -- (true / false) -- Enable / disable moonrealm generation.
YMIN = 14000, -- Approx bottom. Rounded down to chunk boundary.
YMAX = 15000, -- Approx surface. Rounded up to chunk boundary.
ATMTOP = 16000, -- Exact top of atmosphere nodes (if ATMOS = true).
OFFCEN = 80, -- 80, -- Offset centre average. Terrain centre average level, relative to base of surface chunks.
CENAMP = 24, -- 24, -- Offset centre amplitude. Terrain centre is varied by this.
HIGRAD = 48, -- 48, -- Surface generating noise gradient above offcen. Controls depth of upper terrain.
LOGRAD = 48, -- 48, -- Surface generating noise gradient below offcen. Controls depth of lower terrain.
HEXP = 2, -- 2, -- Noise offset exponent above offcen., -- Crazyness parameters upper/lower terrain, 1 = normal 3D perlin terrain.
LEXP = 2, -- 2, -- Noise offset exponent below offcen.
DUSAMP = 0.1, -- 0.1, -- Dust depth amplitude.
DUSRAN = 0.01, -- 0.01, -- Dust depth randomness.
DUSGRAD = 128, -- 128, -- Dust noise gradient.
LHC = true, -- Enable / disable liquid hydrocarbon lakes.
LHCLEV = 48, -- 48, -- Liquid hydrocarbon lake level, relative to base of surface chunks.
ICELEV = 128, -- 128, -- Ice spawns above this altitude, relative to base of surface chunks.
ICECHA = 1, -- 1, -- Maximum 1/x chance water ice in dust.
CAVOFF = 0.02, -- 0.02, -- Cave offset. Size of underground caves.
CAVLEV = 0, -- 0, -- Caves thin above this level, relative to base of surface chunks.
CAVDIS = 96, -- 96, -- Cave thinning distance in nodes.
LUXCHA = 7*7*7, -- 7*7*7, -- Luxore 1/x chance underground.
IROCHA = 5*5*5, -- 5*5*5, -- Iron ore 1/x chance.
MESCHA = 23*23*23, -- 23*23*23, -- Mese block 1/x chance.
ATMOS = false, -- Enable / disable tinted atmosphere nodes.
ATMALP = 32, -- 16, -- Atmosphere alpha.
ATMRED = 255, -- 255, -- Atmosphere RGB.
ATMGRE = 148, -- 148
ATMBLU = 0, -- 0
-- Perlin noise for terrain.
SEEDDIFF1 = 46894686546,
OCTAVES1 = 6, -- 6
-- PERSISTENCE1 = 0.6, -- 0.6
PERSISTENCE1 = 0.8, -- 0.6
SCALE1 = 256, -- 256
-- perlin noise for terrain. 207 / 128 = golden ratio.
SEEDDIFF4 = 1390930295123,
OCTAVES4 = 6, -- 6
PERSISTENCE4 = 0.6, -- 0.6
SCALE4 = 207, -- 207
-- Perlin noise for caves.
SEEDDIFF2 = 9294207,
OCTAVES2 = 6, -- 6
PERSISTENCE2 = 0.5, -- 0.5
SCALE2 = 207, -- 207
-- Perlin noise for dust depth, average terrain level, dust colour
SEEDDIFF3 = 93561,
OCTAVES3 = 4, -- 4
PERSISTENCE3 = 0.5, -- 0.5
SCALE3 = 256, -- 256
})
register_realm("tellar",{
ONGEN = true, -- (true / false) -- Enable / disable moonrealm generation.
YMIN = 19000, -- Approx bottom. Rounded down to chunk boundary.
YMAX = 20000, -- Approx surface. Rounded up to chunk boundary.
ATMTOP = 21000, -- Exact top of atmosphere nodes (if ATMOS = true).
OFFCEN = 80, -- 80, -- Offset centre average. Terrain centre average level, relative to base of surface chunks.
CENAMP = 24, -- 24, -- Offset centre amplitude. Terrain centre is varied by this.
HIGRAD = 48, -- 48, -- Surface generating noise gradient above offcen. Controls depth of upper terrain.
-- LOGRAD = 48, -- 48, -- Surface generating noise gradient below offcen. Controls depth of lower terrain.
-- HEXP = 2, -- 2, -- Noise offset exponent above offcen., -- Crazyness parameters upper/lower terrain, 1 = normal 3D perlin terrain.
-- LEXP = 2, -- 2, -- Noise offset exponent below offcen.
LOGRAD = 96, -- 48, -- Surface generating noise gradient below offcen. Controls depth of lower terrain.
HEXP = 1.5, -- 2, -- Noise offset exponent above offcen., -- Crazyness parameters upper/lower terrain, 1 = normal 3D perlin terrain.
LEXP = 1.5, -- 2, -- Noise offset exponent below offcen.
DUSAMP = 0.1, -- 0.1, -- Dust depth amplitude.
DUSRAN = 0.01, -- 0.01, -- Dust depth randomness.
DUSGRAD = 128, -- 128, -- Dust noise gradient.
LHC = true, -- Enable / disable liquid hydrocarbon lakes.
LHCLEV = 48, -- 48, -- Liquid hydrocarbon lake level, relative to base of surface chunks.
ICELEV = 128, -- 128, -- Ice spawns above this altitude, relative to base of surface chunks.
ICECHA = 1, -- 1, -- Maximum 1/x chance water ice in dust.
CAVOFF = 0.02, -- 0.02, -- Cave offset. Size of underground caves.
CAVLEV = 0, -- 0, -- Caves thin above this level, relative to base of surface chunks.
CAVDIS = 96, -- 96, -- Cave thinning distance in nodes.
LUXCHA = 7*7*7, -- 7*7*7, -- Luxore 1/x chance underground.
IROCHA = 5*5*5, -- 5*5*5, -- Iron ore 1/x chance.
MESCHA = 23*23*23, -- 23*23*23, -- Mese block 1/x chance.
ATMOS = false, -- Enable / disable tinted atmosphere nodes.
ATMALP = 32, -- 16, -- Atmosphere alpha.
ATMRED = 244, -- 255, -- Atmosphere RGB.
ATMGRE = 196, -- 148
ATMBLU = 95, -- 0
-- Perlin noise for terrain.
SEEDDIFF1 = 46894686546,
OCTAVES1 = 6, -- 6
PERSISTENCE1 = 0.6, -- 0.6
SCALE1 = 256, -- 256
-- perlin noise for terrain. 207 / 128 = golden ratio.
SEEDDIFF4 = 1390930295123,
OCTAVES4 = 6, -- 6
PERSISTENCE4 = 0.6, -- 0.6
SCALE4 = 207, -- 207
-- Perlin noise for caves.
SEEDDIFF2 = 9294207,
OCTAVES2 = 6, -- 6
PERSISTENCE2 = 0.5, -- 0.5
SCALE2 = 207, -- 207
-- Perlin noise for dust depth, average terrain level, dust colour
SEEDDIFF3 = 93561,
OCTAVES3 = 4, -- 4
PERSISTENCE3 = 0.5, -- 0.5
SCALE3 = 256, -- 256
})
register_realm("qonos",{
ONGEN = true, -- (true / false) -- Enable / disable moonrealm generation.
YMIN = 24000, -- Approx bottom. Rounded down to chunk boundary.
YMAX = 25000, -- Approx surface. Rounded up to chunk boundary.
ATMTOP = 26000, -- Exact top of atmosphere nodes (if ATMOS = true).
OFFCEN = 80, -- 80, -- Offset centre average. Terrain centre average level, relative to base of surface chunks.
CENAMP = 24, -- 24, -- Offset centre amplitude. Terrain centre is varied by this.
HIGRAD = 48, -- 48, -- Surface generating noise gradient above offcen. Controls depth of upper terrain.
LOGRAD = 48, -- 48, -- Surface generating noise gradient below offcen. Controls depth of lower terrain.
-- HEXP = 2, -- 2, -- Noise offset exponent above offcen., -- Crazyness parameters upper/lower terrain, 1 = normal 3D perlin terrain.
-- LEXP = 2, -- 2, -- Noise offset exponent below offcen.
HEXP = 3, -- 2, -- Noise offset exponent above offcen., -- Crazyness parameters upper/lower terrain, 1 = normal 3D perlin terrain.
LEXP = 3, -- 2, -- Noise offset exponent below offcen.
DUSAMP = 0.1, -- 0.1, -- Dust depth amplitude.
DUSRAN = 0.01, -- 0.01, -- Dust depth randomness.
DUSGRAD = 128, -- 128, -- Dust noise gradient.
LHC = true, -- Enable / disable liquid hydrocarbon lakes.
LHCLEV = 48, -- 48, -- Liquid hydrocarbon lake level, relative to base of surface chunks.
ICELEV = 128, -- 128, -- Ice spawns above this altitude, relative to base of surface chunks.
ICECHA = 1, -- 1, -- Maximum 1/x chance water ice in dust.
CAVOFF = 0.02, -- 0.02, -- Cave offset. Size of underground caves.
CAVLEV = 0, -- 0, -- Caves thin above this level, relative to base of surface chunks.
CAVDIS = 96, -- 96, -- Cave thinning distance in nodes.
LUXCHA = 7*7*7, -- 7*7*7, -- Luxore 1/x chance underground.
IROCHA = 5*5*5, -- 5*5*5, -- Iron ore 1/x chance.
MESCHA = 23*23*23, -- 23*23*23, -- Mese block 1/x chance.
ATMOS = false, -- Enable / disable tinted atmosphere nodes.
ATMALP = 32, -- 16, -- Atmosphere alpha.
ATMRED = 148, -- 255, -- Atmosphere RGB.
ATMGRE = 255, -- 148
ATMBLU = 0, -- 0
-- Perlin noise for terrain.
SEEDDIFF1 = 46894686546,
OCTAVES1 = 6, -- 6
PERSISTENCE1 = 0.6, -- 0.6
SCALE1 = 256, -- 256
-- perlin noise for terrain. 207 / 128 = golden ratio.
SEEDDIFF4 = 1390930295123,
OCTAVES4 = 6, -- 6
PERSISTENCE4 = 0.6, -- 0.6
SCALE4 = 207, -- 207
-- Perlin noise for caves.
SEEDDIFF2 = 9294207,
OCTAVES2 = 6, -- 6
PERSISTENCE2 = 0.5, -- 0.5
SCALE2 = 207, -- 207
-- Perlin noise for dust depth, average terrain level, dust colour
SEEDDIFF3 = 93561,
OCTAVES3 = 4, -- 4
PERSISTENCE3 = 0.5, -- 0.5
SCALE3 = 256, -- 256
})
- paramat
- Developer
- Posts: 3700
- Joined: Sun Oct 28, 2012 00:05
- GitHub: paramat
- IRC: paramat
- Location: UK
Generation is slow due to the slowness of 'add node' 'get node' and 'remove node', this is what the luavoxelmanip addresses. On a server, my guess is the lag is due to the many players exploring and generating terrain at once. I doubt removing dusts or other simplifications will make any noticeable difference, it seems to depend on the volume of surface chunk nodes added. Once 0.4.8 is out i will rewrite the mod to use the luavoxelmanip, this will make generation much faster. In the meantime you could pre-generate terrain (hard work) or adjust the parameters to minimise the volume of terrain in the surface chunks (less epic terrain).
Last edited by paramat on Tue Jul 23, 2013 17:05, edited 1 time in total.
- paramat
- Developer
- Posts: 3700
- Joined: Sun Oct 28, 2012 00:05
- GitHub: paramat
- IRC: paramat
- Location: UK
You could also increase the size of caves and the cave thinning distance to make the realm full of holes and canyons. A realm that is a flat-ish plain with occasional extreme spiky mountains? Again this reduces the number of nodes added in the top 2 'surface chunks'.
If you run 6 realms with this slow lua mapgen and on a server then it's going to lag a lot until i can voxel ma nips. I suggest going for quality over quantity and have 3 or 4 realms.
I like your 'do not call me' signature haha
If you run 6 realms with this slow lua mapgen and on a server then it's going to lag a lot until i can voxel ma nips. I suggest going for quality over quantity and have 3 or 4 realms.
I like your 'do not call me' signature haha
Last edited by paramat on Tue Jul 23, 2013 19:11, edited 1 time in total.
- paramat
- Developer
- Posts: 3700
- Joined: Sun Oct 28, 2012 00:05
- GitHub: paramat
- IRC: paramat
- Location: UK
I saw a screenshot of a Minecraft 'red rock' biome and started experimenting with undulating layers of rock and curvy cliffs ... i'm using a 3D perlin noise to select between 2 different terrains, almost a 3D version of mapgen V6 ...
Last edited by paramat on Mon Feb 10, 2014 01:17, edited 1 time in total.
- paramat
- Developer
- Posts: 3700
- Joined: Sun Oct 28, 2012 00:05
- GitHub: paramat
- IRC: paramat
- Location: UK
That's cool you like it. I stared at the mapgen V6 C++ code for a while and eventually understood it. 4 2D perlin noises: there are 2 noises that create 2 terrains that are switched between using the 'height select' noise, the switching creates the cliffs, the steepness of the switch is defined by the 'steepness' noise.
The lack of 3D perlin noise means no overhangs or floating islands (other than ones created by cavegen removing the base of a structure).
I discovered that MGV7 has perlin noise persistence varied by another perlin noise, so terrain will vary between smooth (persistence = 0.5) and crazy (0.7).
The lack of 3D perlin noise means no overhangs or floating islands (other than ones created by cavegen removing the base of a structure).
I discovered that MGV7 has perlin noise persistence varied by another perlin noise, so terrain will vary between smooth (persistence = 0.5) and crazy (0.7).
Last edited by paramat on Fri Jul 26, 2013 20:23, edited 1 time in total.
Who is online
Users browsing this forum: No registered users and 20 guests