Open world video games are very expansive, and yet they don’t allow loading screens while you’re walking down the street like in Grand Theft Auto 3 or 4.
So far I know they use LODs to make the game faster for obvious reasons. But how do they load like all the neighborhoods without the use of loading screens?
Do they use threads? If so, are threads a smart thing to use on Xbox 360 and PS3? Are threads a smart thing to use on android phones?
-------End of question----------
Below I want to elaborate a bit more for those who need more information in order to reply to the question.
In Dead Space to and Mirror’s Edge when you get inside an elevator you cannot see out side, you are basically inside a closed box. These two games are not open world mind you. How do they load the next level while you are on the elevator without presenting a load screen or pausing the game?
Yes it is most likely done with threads, you can only get away with loading relatively simple objects on a per-frame basis without threads, without seeing various pauses while assets are loaded from disk and put into memory. I would suggest creating all objects, physics collision shapes, audio nodes, particle emitters etc needed on another thread, and enqueue them back and add them on a 1 object per frame basis to the scene graph (as a guideline). This will have minimal impact on the render thread, and appear to have a seamless game with no loading.
The elevator idea you gave is a good example. You can be in a closed elevator for an unlimited amount of time, while the next level loads, and once its all done, elevator opens.
Thanks. I guess all devices nowadays supports more than one thread. Because I used to make Java 2D games that used multi-threading. I don’t remember the days when more than one thread were not supported though. :\
This makes me happy, now I know I have the knowledge and experience to make a full-fledged PC game. My new adventure game, here I come!!