dealing with terrain chunks for a big world
the game in question: AIRSHIPS!, a WW1 era alternate history airship flight sim...
http://www.gamedev.net/gallery/album/672-rockland-softwares-airships/
the game world is very large, stretching from the arctic circle to north africa, and from the mississippi to the urals.
the plan is to create or generate a heightmap which can be used to generate ground mesh chunks.
the game uses a scale of 1 foot = 1d3d unit.
world coordinates consist of sector x,z (a sector is 10K feet across), and a location in that sector (x,y,z).
a mesh scale of one vertex per ten feet is planned. with a sector size of 10K feet, a 1000x1000 vertex mesh is a natural first choice for chunk size.
but here's the kicker: the world is 4912 x 1637 sectors in size. if a sector is a terrain chunk, that's 6,866,304 chunks! at a cool 1 million verts EACH!
so... storing it all in ram is out (wasn't even thinking about it), storing the heightmap in ram is probably no go as well. using one byte for height values, it would be 6,866 gig in size. so maybe i need a lower resolution (coarser) heightmap to cut down on the heightmap size, and add in some "heightmap splatting" to provide high rez detail? or maybe go procedural for the heightmap, then generate chunks on the fly as needed and save to disk once generated?
the whole thing is doable, you procedurally (or hand) generate the heightmap (at some resolution), then use it to generate ground meshes. its just the size of all the data and initial generation time involved that makes implementation something to think about. and do you do it before release and include just the meshes? or the meshes and the heightmap? or do you do it at install? so you don't have to redistribute all that content? actually, based on the amount of data involved, generating meshes on the fly seems the only way, then save them to disk for reuse next time instead of re-generating on the fly again - assuming on the fly is slow enough to warrant it. in caveman i can generate 3 300x300 chunks of up to 15,000 renderables each, plus 4 interleaved ground meshes per chunk which are generated on the fly, so fast there's not even time to display any kind of "loading area" message (<1/2 second).
in the past, i've gotten good results with meshes generated on the fly from procedural heightmaps.