Jump to content
  • Advertisement
Sign in to follow this  
fayt

Auto load a level?

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

So there is some games out there that load the next section without disrupting gameplay. Generally it's a long bridge or something you walk across and it loads while you are crossing it. Sometimes it has a very slight frame or two lag when it starts.

How would something like this be done? I am interested in creating an RPG where there are no loading screens, no fade to blacks, etc. It gives the impression that the entire world is one level.

Thanks!

Share this post


Link to post
Share on other sites
Advertisement
This is a programming/code design question, not really a game design one. A smart programmer could come up with a handful of different ways to achieve this goal. They could pre-load adjacent maps (so any two connected maps can be seamlessly crossed without any disruption). They could store the entire world as a single map and divide it up into screen-sized sections, keeping all adjacent sections loaded in memory at any time. The best solution would be dependent on the game's minimum system requirements, the way you represent and store maps, etc.

Share this post


Link to post
Share on other sites

This is a programming/code design question, not really a game design one.

Amen. Moving to Game Programming.

Share this post


Link to post
Share on other sites
It is, in line of concept quite simple - of course devil is in the details but I suppose you want to keep this easy for first.
First, there must be some kind of partition as Roots suggests. Second, instead of saying "Load chunk", you either "Load Chunk" in another thread or load only a sub-part of the new chunk.
For example, say you need 30 new textures in this new chunk.
Instead of creating them all at once, which might give a hiccup, you create one per frame.
Instead of loading a texture from disk in a single blow, you load it incrementally (some image libraries do that natively).
What they do is to take this "peak" of requests and spread it across multiple frames.

However, unless you need very big world or you work with quite limited hardware, I seriously don't suggest you to play with this. It's fairly involved and buys little for simple projects.

Share this post


Link to post
Share on other sites
Sorry about posting in the wrong area, I almost posted in game programming but wasn't sure.

That makes sense, so you need an engine with multiple threading to achieve this right? I am interested in creating a massive RPG in 3D but didn't want to constantly have like 20 second loading scenes every time you enter a house, or leave town, etc. I don't mind a couple little lags at all.

Thank you guys for the help.

Share this post


Link to post
Share on other sites
Don't know if this is exactly what you are looking for, but here is a very technical description of what the game Dungeon Siege did. It was basically a 3D dungeon crawler (diablo clone) type of game that never had any loading screens between areas, it would just seamlessly load them in the background. Here is the link: Continuous Worlds. It's a very interesting read and I would encourage you to give it a look.

Share this post


Link to post
Share on other sites
Yeah, that Dungeon Siege link is practically required reading for this sort of thing.

To be honest the loading/streaming of data in to the game is the simplest bit of the whole thing; keeping floating precision over a massive world is a much much bigger problem to contend with as it has implications all over the game (from locations to rendering and physics).

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.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!