What does Terrain mean and do for you?

Llamma has kindly let me join the team working on his jME Terra terrain engine, and I would like to try to get a better handle on what ways people use the so called "terrain" part of the scene graph. This is by no means a call for design requirements, just a place to pool some of the collective knowledge and experience of the jME community.



Please answer any of the following: (feel free to duplicate others answers)



  • In general terms, what does "terrain" mean to you? How about "map"?

  • What kind of game, or program, do you use terrain in?

  • How large is your terrain? map? world?

  • What view(s) do users have of the terrain?  (eg ground level, fly-by, free-cam, pure top-down)

  • For large maps, how do you limit the view distance, if at all?  (eg fog, trees, hills)

  • In what ways does your terrain change?  (eg static states/animated, predictable/unpredictable)



:D Thank You from everybody who finds this information usefull!

What I've done with terrain (not in jME):



Terrain is anything visible or collidable that doesn't change.

Terrain is the size of the earth.

View distance is "as long as you can make it," although 10 miles seems to be a reasonable upper limit when standing on the ground.

When in space, the entire round earth is visible.

Terrain allows precise correlation/registration to real-world data.

Terrain allows artists to sculpt great-looking environments.

Terrain streams in/out as you move through and around the world.



Hope this helps!



Btw: you could take a look at an upcoming terrain file format standard here: http://www.interopworld.com/members/ptf

Sparrow_ca said:

In general terms, what does "terrain" mean to you? How about "map"?

The geometry which makes the ground in a game.

Sparrow_ca said:

What kind of game, or program, do you use terrain in?

My terrain editor and my RPG game.

Sparrow_ca said:
How large is your terrain? map? world?

As large as it needs to be. The terrain is splitted into parts and parts within a certain range are loaded in memory and visible.

Sparrow_ca said:

What view(s) do users have of the terrain?  (eg ground level, fly-by, free-cam, pure top-down)

free-cam in the editor, similar to jME's FirstPersonHandler, but more aligned to the terrain.

Sparrow_ca said:
For large maps, how do you limit the view distance, if at all?  (eg fog, trees, hills)

Fog with frustum far plane set to the fog far value.

Sparrow_ca said:
In what ways does your terrain change?  (eg static states/animated, predictable/unpredictable)

In the editor, the terrain can be edited with the mouse by clicking on the terrain.
In-game, the terrain does not change.

What momoko_fan said, basically. Only I currently don't use fog (partly because I don't like it, and partly because I haven't implemented it in my terrain shaders yet). And I am using jmeterra for loading/LODing/unloading the terrain - that might be another difference.


  • In general terms, what does "terrain" mean to you? How about "map"?

            Terrain represents the ground and ground textures, and map represents all static objects on the terrain (however may be destructible)
  • What kind of game, or program, do you use terrain in?

            Anything with some relation to the outdoors.
  • How large is your terrain? map? world?

            Probably approximately 12000-18000 units square, with each unit representing a meter, and a maximum view distance of ~6000
  • What view(s) do users have of the terrain?  (eg ground level, fly-by, free-cam, pure top-down)

            Third person/First person
  • For large maps, how do you limit the view distance, if at all?  (eg fog, trees, hills)

            A mixture of all three, with fog simply being used if trees and hills dont block the view.
  • In what ways does your terrain change?  (eg static states/animated, predictable/unpredictable)

            I would like to be able to stick explosion marks/footprints etc on the terrain texture (haven't worked out how thats going to work), but other than that, it will be pretty static.
[/list]