Pre-modelled scenes or terrain pages?

I try to build a game with quite a large world. At first I tried to use models built with Max3D. Then I got heightmap data and I started to replace the scenes with terrain pages.

Meanwhile I wonder what is the best approach to present a very big world. It seems to be usual to use heightmaps and let the system create the terrain. On top of this terrain I will need lots of static meshes to show buildings, dungeons and lots more so I'm thinking about going back to the modelled scenes as I think this gives more flexibility and it should be easier at the end.



Which way would you take?

Galun said:

I try to build a game with quite a large world. At first I tried to use models built with Max3D. Then I got heightmap data and I started to replace the scenes with terrain pages.
Meanwhile I wonder what is the best approach to present a very big world. It seems to be usual to use heightmaps and let the system create the terrain. On top of this terrain I will need lots of static meshes to show buildings, dungeons and lots more so I'm thinking about going back to the modelled scenes as I think this gives more flexibility and it should be easier at the end.

Which way would you take?



i had the same problem and i solved it by writing my own level editor combining terraintransform and placeing, moving, scaleing different classes  of staticmeshes [ free placeable Objects, PhysicObjects, Ground-Fixed-Objects, Characters, Waypoints etc. ] from a selectable list.
writing your own editor is more flexible in handling objects, editing the map, adding new features than max3d can do. so if you want a big, good game and you have the time, write your own editor for your own special game needs.

You can put terrain inside models so you can program a program to load a modal then the artists can use what it appropriate in each place with out any extra programing.



p.s. This is one of the reasons I strongly support the .jme file format

By "big world" I mean something about 300000x300000 units where 48 units is the height of a human. That's the reason why I devided it into tiles and use a dynamic loading depending on where you are. Loading the whole world at once would be way too memory expensive.

I used your SlidingTerrainPage as base for my SectoredTerrain. It is very specific as to what i needed, but here are some things which are worth considering:

Quadtree:

It realy speeds up culling if the blocks are nicely organized into a tree. After reaching final position in the tree, lock transforms and bounds. Set cull mode directly on the block. Profiling shows that getCullMode wastes lots of time. The FPS increase i got was from 8 (blocks directly attached to root node) to 20 (blocks organized into quadtree).

Only recalculate what realy needs to:

Your code recalculates the whole terrainblock field. But only the edges of the field need to be checked, as to remove or add new blocks. No need for updateRenderState on the whole field either, only on newly loaded blocks. I had big lags when new blocks were placed, and its almost unnoticeable now, although i dont load new blocks from disk. You could consider loading new blocks in separate threads.

Badmi said:

You can put terrain inside models so you can program a program to load a modal then the artists can use what it appropriate in each place with out any extra programing.


you made an leveldesigner of your artist (= the problem is that in a programm like 3dmax you can't describe modelbehaviours like weight, dynamic/static object, character-attributes .. so you need to split your world in different classes bringing them together with 3dmax is inpossible.
designing only the heightmap in 3ds and putting objects together in a editor roll out new problems: eg. adding a hill needs manual higher any object in that place.
last but not least if you really have a huge level you need some lod features to reach maximal speed which runs faster on a heightmap (because of its x,y,z structure) than on a mesh.
<- this is my experience i try to import maxfiles for my game, but finally i write my own editor and that was the faster and better solution
peterschnitzel said:

you made an leveldesigner of your artist


I am probably using the term incorrectly, by artist I meen leveldesigners as well.