Content loading is a well known problematic. Most games store resources on disk which are loaded at startup or at begin of a new level. The same counts for content generation.
A typical solution of this problematic are loading zones. When the player moves into one of these zones, the game will be paused and a notification or a loading progress bar is showed. After all required resources are loaded or created, the game can be continued.
In my case, one of the most time intensive processes is the terrain generation. Depending on the complexity of a terrain, one patch of medium size can take up to 1-2 seconds. The peak amount of generated patches is reached when the player lands on a planet or if he moves over the surface at a high velocity with a low altitude. My first version of the terrain engine freezed the game during each terrain generation process. At the lowest altitude the player could move only two hundred meters without any freezes.
Frequent content generation processes can bore the player very soon. So I modified the engine to use an asynchronous content generation method instead. The only difference is, the game keeps running at the same time any new content is generated/loaded. Especially content generation profits from multi core CPUs.
The second version of my terrain engine is based on the concept of Thatcher Ulrich (See Chunked LOD). First it generates a terrain patch at the lowest detail level. After that, it chooses some patches near the player and divides + refines them with a higher detail level. This process is iterated continuously until a satisfying level of detail is reached.
Pretty neat, this should be a must on all modern space sims, loading time is Always a pain in the ass for any gamer.
Hope you can get it working right.>8)
Yeah its a good concept. It is actually been used in professional simulations / simulators.
Good job ! I hope you’ll finish your game, godd luck !
You REALLY need to see this:
http://www.infinity-universe.com/Infinity/index.php?option=com_content&task=view&id=98&Itemid=26
Regards.