I've got a resource manager implemented in my engine, but I'm starting to wonder if I've over-engineered it. I built a resource management system that uses ResourcePackages (or resource groups) and resources are addressed using a ResourcePath. The ResourcePath is like a normal file path, except that it contains the package name before the path for example "package:folder/directory/resource.res".
I'm starting to notice it's becoming increasingly difficult to manage the package names in my content pipeline, because I have to manage all the links between resources. A mesh links to a material that may or may not be inside another resource group for example.
I implemented resource packages originally because I want to be able to pre-load entire groups of resources all at once, and also be able to unload entire groups. I'm starting to wonder if my package system is overkill though. For a small world it's obviously overkill, but I'm trying to build an engine optimized for massive open worlds. I already have background loading, load/unload events, and a cache to keep frequently used resources in memory.