Terrain Engine

This is an application I’m putting together to test various methods of rendering a volumetric terrain.  Think along the lines of  MinecraftCastle Story, and of course Dwarf Fortress.  There are a few primary goals for this project:

  • The terrain representation must make it visually apparent what the underlying volume data contains.  That is, the mesh for the terrain shouldn’t lead you to believe the corresponding voxel data contains resources (dirt, stone, whatever) when it really contains air instead.  That means the surface needs to maintain a tight fit to the underlying data.
  • Easy updates to the voxel data.
  • Updates to the voxel data should be quickly represented by the rendered mesh.  Digging mines, building walls – that type of thing.
  • Support first person (Minecraft -like) and third person (ala Castle Story) views as well as orthographic planning views.  The idea is to make an overhead view that cuts away everything between the camera and some plane – like cutting away everything above a certain elevation.
  • Try to get away from the sharp edged, cubic look of Minecraft.  I’d like the top surfaces, at least, to have a smooth flow to them.  In opposition to that it should be ensured that excavations, cliff faces, and the like maintain sharp edges.
  • Efficient collision and path finding.
  • A decent terrain generation algorithm.  I’m not currently planning an infinite landscape at this point — the gameplay ideas I have so far should fit nicely within a pre-defined area of terrain.

Once I get all (or most) of these items implemented to a reasonable state, I’ll start work on an actual game with it.  I hope.  Probably.  At some point.