tb2009

Member
  • Content count

    2
  • Joined

  • Last visited

Community Reputation

128 Neutral

About tb2009

  • Rank
    Newbie
  1. Without clamping the range to [0, 1], collision detection becomes extremely complicated, as an extreme slope could cut through potentially all the blocks in a column.
  2. As a personal project, I'm trying to make a terrain generator that will create terrain looking something like the Castle Story smooth terrain.       The terrain is essentially cubes, but the top layer is smoothed out.   What I've tried to do to emulate this look is to give each surface block a mini heightmap.  This generally works, but there are some issues, yielding a terrain like this:         The problem is that sometimes, the height is out of the bounds of the 1x1x1 cubes in my world, in which case I clip the heights to 0 or 1.:   Here's my terrain generation code:   noise2d(float x, float z); // uses simplex noise to determine the height of a column genColumn(int x, int z) { int highestBlockY = (int)noise2d(x, z); bool is_surface = true; for(int y = max_height - 1; y >= 0; y--) { Block b; if(is_surface) { b = Block.Grass; b.HasHeightMap = true; // generate heightmap for(int ix = 0; ix < 5; ix++) { for(int iz = 0; iz < 5; iz++) { float heightHere = noise2d(x + ix / 4, z + iz / 4) - y; // clip heights if(heightHere > 1) heightHere = 1; if(heightHere < 0) heightHere = 0; b.HeightMap[ix][iz] = heightHere; } } is_surface = false; } else { b = Block.Dirt; } setBlock(x, y, z, b); } }         Is my method incorrect in any way?  Is there any way I could make the noise function not as steep?