• Advertisement
Sign in to follow this  

Organizing Assets

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

Hiya,

I'm using a package file format to group assets together on disk, and I've been thinking about how to organize the various packages. I've come up with two ways of doing this, and I was hoping someone can suggest one over the other.

The first is to divide assets into actor packages and level packages. The assets for each actor can be compiled into separate packages, as they generally need to be loaded together. Each level (which references the actors it needs) can then also be put into it's own package, along with any 'per-level' assets (skyboxes come to mind). Shader programs are shared widely between actors (and even the GUI) and would probably needs to be bundled in their own package.

[CODE]
Game.exe
Shaders.pkg
/Actors
Actor1.pkg
Actor2.pkg
/Levels
Level1.pkg
Level2.pkg
[/CODE]

The second is to divide assets into packages by type, e.g. Textures.pkg and Shaders.pkg. I could then use the game logs to (automatically) re-order the package contents in the order they will be loaded. A problem here might be that the game doesn't load in this way, by batches according to the asset type.

[CODE]
Game.exe
/Data
Textures.pkg
Shaders.pkg
Materials.pkg
[/CODE]

Any thoughts would be greatly appreciated!

Cheers. Edited by Telios

Share this post


Link to post
Share on other sites
Advertisement
I think the more efficient approach would be to create a global package for all common assets (such as UI, background music, common texture/models etc.) and then unique packages for each level (such as cinematics and level-related actors, textures and sounds). The level-related packages could also contain AI scripts and level-related configs.

If you're planning to make your own memory-pool, you'll find this design to be quite straight-forward. After each level, you unload the entire package and load a new one, while still keeping all the common files in the memory.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement