The end of the world

in every outdoor game (in my case, a terrainpage), there are 2 problems.

how does the world end? i could add some really high mountains at the border of my terrain - problem solved.

the bigger one is the maximum visible range. mountains appearing out of nowhere is pretty ugly. unlimited range leads to performance problems. using fog leads to grey mountains appearing out of nowhere - there still is the skybox having a non-grey texture.

how could i solvethis?

Ideally the skybox would be an impostor box of the stuff beyond the visible range, so you can fade in the mountains.

Irrisor's solution sounds very interesting, I'll still post mine so there's some variety here and because I already spent a couple of minutes writing it :smiley:



The way I have learned of so far I like most is a combination of the following:



  • a lot of models (so low-poly that you don't even need LOD) close to the character, blocking much of the faraway world from sight

  • a really good LOD mechanism for your terrain

  • good world design: have large mountains surrounding playable areas - but don't allow the player to climb to the tops

  • and of course any other otpimization you can come up with (locking, shared geometry, whatever you find fitting)



With all of this, you might still have mountains appearing out of nowhere now and then. In those cases, you can blame it on the level designer(s) for one or more of the following reasons:

  • there are too few trees/houses/huge rocks blocking the view near the player

  • the visible area is too large aka. the mountains are too far away



Your level designer(s) will respond with one or more of those:

  • The engine cannot handle more trees/houses/huge rocks on the target configuration

  • The visible area is already too small to be fun to play, it can't get any smaller without having to publish your game with a warning that it might cause claustrophobia



So you then have basically two options: either find/invent some more optimizations, or adjust the target configuration (minimum/recommended sys spec) upwards.
Or, as a third option, just live with the mountains appearing out of nowhere, and have your game lore designer(s) come up with a really good explanation for that!

Something I have considered (not really done any work on yet though so it might just be stupid) is having a generated skybox for specific areas.  I'm developing a MMO game and the universe is constantly changing and there's reason to be able to see large planets and stations off in the distance.  I had considered having the server generate skyboxes based on certain areas that would only show large objects that are a great distance away.  Like I said, I'm not sure if this is even plausible, but for your scenario it might be easier since those mountains won't be moving around much (…that would make a really interesting game if they did though…) you could load up the game without the fog and a large viewing distance and build your skybox from screenshots.

my solution to this problem is very similar to what other plp have done.



i basically told the level designer to make sure that the playable areas r always surrounded by mountains or water bodies. so the end of any playable area is always something that the player cannot go into or go through.

There is also an extremely frustrating way of doing it… Just put an invisible wall (collidable, but not renderable), and don't allow the user to go further. If you want to wane down this frustration a little bit, just detect when the character touches this wall, and make him say to himself I am getting to far from my objectives, I should get back:smiley:

duenez said:

There is also an extremely frustrating way of doing it... Just put an invisible wall (collidable, but not renderable), and don't allow the user to go further. If you want to wane down this frustration a little bit, just detect when the character touches this wall, and make him say to himself I am getting to far from my objectives, I should get back.

i thought about using a terrainball (planet) instead of a terrainpage, which would solve all these problems. objects far away would be below the horizon. however, i tried that once, and i still have nightmares about the math equations neccesary to do this. i think i'll simply use a sky that is fog colored at the height the actor is always looking at. should work. and i think wow uses this.

Also take a look at this solution: http://www.jmonkeyengine.com/jmeforum/index.php?topic=3067.0



it is a simple solution for a (not to big) continous terrain

Make one quadratic terrain and render it in 3x3 grid. If the character steps out of the middle terrain, set him back at the opposite site of the middle terain, so he's walking in again. Add a little bit fog. It's like a sphere, just not round  :smiley:

my ideas are more game design style than technical tips :



  • Limit your world with water / sea

  • limit with a difficult but climbable mountain + sea behind it

  • put a lot of really hard monsters just before the end of the world (turn a problem into a feature ! )



and last but not least : put a zone with random generated content and monsters with warnings : " you are leaving the known  world"
For a epic/frontier like game (galaxies ... ) It would be black holes and the like but for an heroic-fantasy game it could be a jungle or some sand, or the sea.

You could even make an infinite world by making a loop , you think you are going straight but you are respawned a few kilometers behind (it would be a weird blairwitch like experience ! )

I played one game a long way back, elder scrolls part 1 I believe, that did it in a way I still like best.

There you could travel from town to town with a horse, which just had a day counter in the middle of the screen and went reasonably fast. But you could also walk from town to town yourself.

This made use of the respawning technique mentioned before. But when you know how far you walk before you respawn, you can actually use this for great effect.

Just use random monsters between the cities, and keep score of how many times you respawned. That way, you know when you reached the other city.



For instance, your respawn distance is 1km. and two cities are 25 km apart. This means you will respawn 25 times, with each respawn being populated with random monsters, before you reach your destination. To really spice things up, you could also add other random generated stuff as well, like dungeons and such. Just have one big ass list off random stuff, and select a certain number from that list each time you respawn.

This way, walking from city to city is still a long walk, but at least you have something interesting to do.



Mark