Organizing Assets

Started by
0 comments, last by Vodahmin 11 years, 6 months ago
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.


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


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.


Game.exe
/Data
Textures.pkg
Shaders.pkg
Materials.pkg


Any thoughts would be greatly appreciated!

Cheers.
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.

This topic is closed to new replies.

Advertisement