I spent a lot of time reading this literature as an outsider to graphics development this summer. I agree resource management is the real engineering problem and the graphics code itself is the idealized code that is relatively small in comparison.
My conclusion is that resource management across different hardware is a secret sauce that helps individual engines push the limits of the current generation. Listening to interviews with developers, and they rarely talk about a novel lighting formulas. Instead they talk about squeezing in high res textures or more colors. How they managed so many assets or faked a reflection. I imagine the work is incredibly tedious and makes browsers differences look trivial.
Differences between hardware is largely how memory can be mapped between CPU, shared, and GPU memory.
Did you look at Unreal engine? The entire source is open to examine and modify (registration required).
Resource management can be a really big chunk of the core game engine. One reason there is less documentation is that there is generally not one right way to do it. Different games have very different requirements and solutions that work for one game/genre will hurt performance (or team productivity) for another.
One infamous example was the EA Superman game which was developed using the Madden NFL engine. At a very top level that may have been a good idea (battle tested Multiplatform engine with great character rendering). The game requirements of long draw distances, scripted gameplay, and detailed city environments were (very sensibly) not something the engine had been designed for and so became enormous issues for the Superman team.
> One reason there is less documentation is that there is generally not one right way to do it.
Yes, but the way that most OpenGL tutorials leave you at by the time you're done is distinctly the wrong way.
> Different games have very different requirements and solutions that work for one game/genre will hurt performance (or team productivity) for another.
I wouldn't say different games have very different requirements. Different genres of games have different requirements. We can make a lot of assumptions about flight simulators versus real time strategy games, for example. There doesn't even seem to be that level of discussion: what the particular tradeoffs are, where, why, and when you'd want to take them.
My conclusion is that resource management across different hardware is a secret sauce that helps individual engines push the limits of the current generation. Listening to interviews with developers, and they rarely talk about a novel lighting formulas. Instead they talk about squeezing in high res textures or more colors. How they managed so many assets or faked a reflection. I imagine the work is incredibly tedious and makes browsers differences look trivial.
Differences between hardware is largely how memory can be mapped between CPU, shared, and GPU memory.