Autonomous intelligent loading of scene objects

Is slow loading of scene geometry still prevalent? I’m not sure. Based on some observations of mine on the current games (console and computer), it seems that huge scenes with many complex objects are rendered with nary a hitch.

I remember when cutting down the number of polygons of an object was necessary to quickly load it and render it. This was why viewing volumes and fog was used, to provide a better experience for the player. Is this still critical?

I was thinking, if this was still an issue, what if the commonly rendered objects were preloaded? Suppose there are a few towns in the game. If the player frequently travelled between towns C and E, it makes sense to preload the objects between towns C and E, so rendering them is faster.

It doesn’t make sense to load every single object in the game into memory. But frequently loaded objects can be loaded first, even if they aren’t always rendered. They are just more frequently rendered when the player plays the game.

This “frequency habit” is captured by the game. So each player has a different “frequency habit” list saved. Thus the game seems to be intelligently “guessing” where each player is going to go, and automatically and quickly rendering the scene.

This can apply to applications too. It’s even implemented already. The history list of a web browser. The recent list of documents.

I’m not sure if this has any impact or usefulness. I’m just sharing an idea that occurred to me. I’d appreciate it if you could share your thoughts, particularly if you’ve been developing games or had solved similar problems. Or if object loading was even a problem. Thanks.

Comments

  1. I’m working on a similar problem at the moment. I think you need to recognise the difference between caching results (web browser history) and predictive work (doing work before its needed on the basis of predicting what the user is doing)

    For example in my map application (http://blog.figmentengine.com/search/label/OpenStreetMap) the planet is split into tiles, I can cache tiles I have shown or built before – but I can also prefetch and prerender tiles on the basis of the direction they are panning the map in.

    In games development this would be akin to knowing that walking up a corridor leads to a complex area – you can start the render as they walk up the corridor, rather than waiting until they get to the end.

    Philip Fitzsimonss last blog post..OpenStreetMap rendering in Silverlight part V

  2. Vincent Tan says:

    Point taken, Philip. Predictive work is based in part on historical data. Or cached results as is the case with browsers.

    It’s sort of like the suggested feeds provided by Google Reader. Based on the feeds you subscribed, Google Reader offers suggestions based on that data.

    And great work on that map application! You have *got* to post some of that code…