Libraries (Assets/Textures/Shaders)

I’m curious what your take on libraries are.
By libraries I mean assets, textures, shaders that live outside the current project structure, that are meant to be used again and again on all sorts of projects.

I’ve worked in a lot of different companies with different sizes and everyone seems to have different takes on this and more than often don’t have a plan for how to handle it.

How do you deal with “external” assets (models, textures, whatever) that does not exist within the project? Do you copy assets into the project? (ending up with duplicates) Do you rely on the path to the library (risking all links will be broken)? If working from inside the project, how do you deal with adding files to the “global” library? Do you ever use references from outside the project?

Very broad question. But I’m just curious on everyones view on this. Personally I try to keep the structure within the project. Ending up with a lot of duplicate files, but also less headache in the end.

At Volition we ensure all source art; models, textures, etc… are in each specific project database. So when the game is done and shipped we have a valid snapshot of what was in the game at that time and what source art generated the in game assets. That way if we ever need to go back to it (say 10 years or so later for an HD remaster as has already happened for 2 or 3 of our older titles) we don’t have to worry about external dependencies that may have changed.