   Resource Management
  Hi,Would people suggest creating a template resource manager that can handle any resource type, or an individual manager for each type? As I see it, they each have pro's in their favour - A template based manager would save development time, and individual managers could be more specialised and therefore make some internal optimizations.Any thoughts would be much appreciated.[EDIT] Spelling.   
  Personally, I do both. I have a templated resource manager which does the generic type-agnostic stuff, which is then inherited by a more specific manager which does more specialized things.   ;  I thought about a templated resource manager for our engine but decided against it.  I have a general Resource Manager which handles loading/unloading (passes on the call to registered loaders that put data into seperate, specific managers like Texture/Shader/Audio/etc).  You then get an ID back from the Resource Manager (passed back up) you can use to get info on what was just loaded.  The Resource Manager handles freeing stuff if it's not used often, or memory is needed etc.  While the "lower", specific mangers handles passing the data or info (texture data, width, height, etc) to whatever is requiring it.  Is it the best solution?  Na.  But it's easy to implement, not really that complex, expands well if I want to add in new sub managers, someone using my engine wants to load a certain file their way, etc.There is no truely right way to handle this.  It's whatever you thing is best or the right way to do it.I like my way, but see the appeal of templates too.  Mine you do this to load and use a texture...ResourceManager->Load(Filename, bool deepcopy); // deepcopy gives you a second copy instead of returning an existing ID.SetTexture(..., ..., TextureManager->GetData(), ...);It works for us.   