What I had for DEEP Space was a system where things were separated out. There were five or six blends, for things like enemies, the player, powerups and the level itself. Then I just assumed they were all the same size, and incremented a bar as they were loaded.
I’ll keep playing with this whole loading-bar thing and see if there are any other work-arounds.
Getting a good percentage is still something that needs to be done for libload. Right now it only gets updated twice:
90% when the scene is converted
100% when the scene is converted and merged
Merging probably doesn’t need to end up on the progress (seems quick enough to just ignore). However, how should progress actually be calculated? Number of objects converted? How much percentage should world conversion be?
So, this isn’t so much a bug as a limitation of the current system.
Don’t other engines do this by tracking the number of resources already loaded vs. how many are needed?
So you would calculate percentages by the kilobyte size of the number of resources loaded vs. the kilobyte size of the resources needed but not yet loaded, this might mean jumps in the loading bar or percentages at points, but I’ve seen this being very common in games.
I’d be happy with a set percentage system, similar to what there is but a little more detailed. So percentage numbers for things like:
10% loaded all textures
40% loaded all local meshes
60% external libraries linked in
70% created all instances
90% merged
The fact is that I actually have no idea what goes on behind the scenes, but what I am saying is that it doesn’t need to be a running percentage of how much of each section is loaded, but just a finer-grained system would be nice.
@Moguri - Would it be possible to adapt the asynchronous LibLoad function to work with scenes in the same blend file? Or otherwise to have a smooth loading system for single-blend games?