Jump to content
  • Advertisement
Sign in to follow this  
3DModelerMan

Large world streaming

This topic is 1934 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'm working on a game that requires a pretty large world with no loading areas (sorta like a Skyrim map type). What is the best way to stream large worlds like this? Right now my engine loads objects from scene files all at once. How should I break up the world and load it? I thought of making an object type that would load another scene when needed and placing those at the edges of world regions but I'm not sure if it's a good idea. For one there's going to be alot of work maintaining a system like that if things are changed in one world section close to the edge. Any suggestions?

Share this post


Link to post
Share on other sites
Advertisement

Depends on how you intend to implement your large worlds.

 

Often the game objects include a resource proxy. That proxy can either point to live resources or to placeholder resources.  As the resources are needed the proxy becomes populated with actual data, and the live resources appear.  As they are no longer needed they get pruned and replaced again by placeholders.

Share this post


Link to post
Share on other sites

That would probably work pretty well. How are which ones to load usually determined? At first I would just say distance, but would it be better to take into account the camera frustum?

Share this post


Link to post
Share on other sites

That is an open problem.  

 

Proximity is often good, but not perfect.  Consider objects that constantly ride on the edge, which will be always loaded. Also consider objects that are rapidly approaching, they may be near the player before getting streamed.  Very large distant objects may suddenly pop into existence right at the border.  A distant fog can be useful to hide it, but it is far from perfect.

 

Visual error through heuristic is useful. A very large object could have some bit of data that says to load it early. Fast-moving objects could similarly have such a flag. Some objects could be marked 'always load'.  Again the heuristic will likely have issues and  edge cases.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!