Planet-sized level format?

Started by
26 comments, last by c0mas 18 years, 10 months ago
I'm trying to gather ideas for a system to create a large terrain "world." The requirements are that it needs to feel like you're on a planet (e.g. you can start at one end and walk for a long time and end up back where you started), and there must be only a single "noticable" loading time. I was thinking maybe a streaming system could eliminate the noticable loading by loading level "patches" in the background as you travel. Anyone have any ideas or are there any papers coving this? Thanks
Advertisement
Games did this 20 years ago. Ultima games used a system of realtime loading of groups of tiles to maintain a veil that the world was endless, with little to no load time. In 1999, Ultima IX did this in a 3D setting; the player could walk from one side of the world to the other, take hours to do so, and parts of the map would load dynamically with no visible performance hit. I don't think the world was continual in a spherical sense, but it's just a planned feature I guess; not impossible.

I'd be happy to discuss this in detail; let me know, as I have loads of ideas.

Cheers,
I wonder how well this would work out...

The map is made out of 9 patches of terrain (the patches are rather large) in a grid. Let's say you're standing in grid 1 and go directly to your left. As you walk, grid 2 will load and eventually grid 3. After grid 3, grid 1 will load again. At least I think that's how it would work. Let's say you're in grid 3 on the same path as described earlier... taking a sharp left from there would take you to grid 9... but what about diagnially from 3? Hmm... Let me draw a grid.

------------------------||     |     |     |     ||  7  |  8  |  9  |  ?  ||     |     |     |     |------------------------||     |     |     |     ||  1  |  2  |  3  |  1  ||     |     |     |     |------------------------||     |     |     |     ||  4  |  5  |  6  |  4  ||     |     |     |     |------------------------||     |     |     |     ||  7  |  8  |  9  |  7  ||     |     |     |     |------------------------|


Does that make any sense? Perhaps a grid is not the best way to represent a globe o_O
As long as the size or location of any "zone" isn't larger than the effective floating point precision. That entails changing the local reference frame continually. I think this may have been what happened with Serious Sam if you walked too far off the beaten path.
Quote:Original post by MatrixCubed
I'd be happy to discuss this in detail; let me know, as I have loads of ideas.


Yes, please :) I'm eager to discuss this!

edit: Also, technically, the world of course never has to actually be spherical at all. It just has to seem like what you're on is a planet.
Well that kind of top to bottom/left to right movement emulates a sphere well enough that users probably wont know or wont care but it is actually a torus. If you would like to read up I would suggest a great article on how these topologies work at everything2.com which can be located at http://www.everything2.com/index.pl?node_id=746760&lastnode_id=1140332 . Another thought is to use a lahey space which is just like the wraparound effect you see in most games but whenever you wrap your direction is taken into effect and you are made to end up where you started. There arnt too many sources over that topology so I will point you to where I heard of it in the funge-98 code specification (funge-98 is a whole different beast, interesting none the less). go here for that and search for lahey space and how it wraps around http://catseye.mine.nu:8080/projects/funge98/doc/funge98.html
ASCII stupid question, get a stupid ANSI
You should probably take a look at The Continuous World of Dungeon Siege. It deals with just what you are describing.

jfl.
If you need a REAL planet that's sized like a REAL world (and round), then this is slightly harder. For example, the amount of data you need to store would be huge, unless you store it at very coarse grain, and let some procedural algorithm fill in the blanks.

For There, we made the world approximately earth sized. This means that you can get in a car and drive (our cars are amphibious), and it'll take three weeks of continual driving to circumnavigate the globe. A member did it (by taping down the "gas" key) just to see whether it'd work. It did :-)
enum Bool { True, False, FileNotFound };
Quote:Original post by Anonymous Poster
As long as the size or location of any "zone" isn't larger than the effective floating point precision. That entails changing the local reference frame continually. I think this may have been what happened with Serious Sam if you walked too far off the beaten path.


Can anyone elaborate a little more on what the AP said? I read in the Dungeon Seige paper that they had problems with the FPU as well. Perhaps I'm just undereducated in this area of 3D programming? ;)

Thanks
Quote:Original post by Mobile
taking a sharp left from there would take you to grid 9... but what about diagnially from 3? Hmm... Let me draw a grid.


------------------------|
| | | | |
| 7 | 8 | 9 | ? |
| | | | |
------------------------|
| | | | |
| 1 | 2 | 3 | 1 |
| | | | |
------------------------|
| | | | |
| 4 | 5 | 6 | 4 |
| | | | |
------------------------|
| | | | |
| 7 | 8 | 9 | 7 |
| | | | |
------------------------|





7

This topic is closed to new replies.

Advertisement