Jump to content
  • Advertisement
Sign in to follow this  
cebugdev

large 3d levels/world

This topic is 2843 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

Hi all,

before i posted this topic, i was searching all around the new gamedev.net and cant find similar topics to my post, i think i can find some similar topics twas on the old gamedev.net. Or maybe because i cannot formulate the correct words to type on the search field.

Anyways i was tasked to research on how games such as GTA or any 3rd person platformer game implement thier 3d world level (outside level), thier world level is so huge and there is no loading time on it.

Our next project wants to implement an entire city similar to GTA but we are stuck on how to implement -- i bet a simple OCTREE cant do it.
Some give me advice to divide the world into chunks and load the chunks when needed, but i am still confuse on some details like;

- Will the 3d artist models the entire (huge) 3d scene mesh as one and only the programmers divide the scene?
- what are the decision factor of when to load a certain chunk of the scene?

Can you guys provide some information on how to implement large 3d worlds? or can you recommend some resources like URLs or perhaps a Book that focuses on this subject matter?

Thanks.

Share this post


Link to post
Share on other sites
Advertisement
Infamous did it like so. And the ever popular paper on Dungeon Siege may help too.

For the most part, you have to break everything up into chunks. Either in your art pipeline, or in the tools. Break down each zone into a fixed sized memory chunk, and load by zones. One of the more commonly mentioned methods besides the papers I linked, is to grid the world up. Then, in a 3x3 zone around the player, load and unload those grid squares on the fly. Go out to a 5x5, and load those at a lower lod. They key point being that each grid cell has to be less than some fixed memory limit, that way you can efficiently pool allocate all the resources for each tile, as well as efficiently chunk the data on disk for reading. You'll end up with duplicated resources all over the place (wasted space), but loading each tile on its own means not seeking around the disk looking for random files. If you end up with too much wasted space, start grouping up common sets that you can maintain at a higher level than the individual world chunks.

Share this post


Link to post
Share on other sites

Infamous did it like so. And the ever popular paper on Dungeon Siege may help too.

For the most part, you have to break everything up into chunks. Either in your art pipeline, or in the tools. Break down each zone into a fixed sized memory chunk, and load by zones. One of the more commonly mentioned methods besides the papers I linked, is to grid the world up. Then, in a 3x3 zone around the player, load and unload those grid squares on the fly. Go out to a 5x5, and load those at a lower lod. They key point being that each grid cell has to be less than some fixed memory limit, that way you can efficiently pool allocate all the resources for each tile, as well as efficiently chunk the data on disk for reading. You'll end up with duplicated resources all over the place (wasted space), but loading each tile on its own means not seeking around the disk looking for random files. If you end up with too much wasted space, start grouping up common sets that you can maintain at a higher level than the individual world chunks.


thanks for your reply,
please confirm if my understanding is correct:

-At the begining, split the entire 3d city into chunks (ex squared chunks).
-Load the first 3x3 chunks where the player can be found in the middle/center chunk.
-Then load the next 5x5 chunk with low LOD.

My question and I am having confusion now is;
When do i need to load other chunks on the fly?
I ment what is the decision factor of when to load the other tile?
When do i need to update the tiles in 5x5 from low LOD to detail LOD?

Is it when the player move to another chunk?
SO does this mean i need to constantly check every frame update or every player movement
whether the current chunk is same as last frame previous chunk?

Share this post


Link to post
Share on other sites
Is it when the player move to another chunk?[/quote]
Yep.


SO does this mean i need to constantly check every frame update or every player movement
whether the current chunk is same as last frame previous chunk?
[/quote]
Yep, or at least often enough that the player is moved "back" into the center chunk before the low LOD is too obvious. Once a frame is better.

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!