unity has an extremely well-designed abstraction layer over the whole graphics API, exposing pretty much everything the platforms support with minimal boilerplate. It's comprehensive enough that URP/HDRP are built on top of this layer; they don't need to drop down to the closed-source C++ secret-sauce part to make full use of the GPU
like, if you want to run a compute shader, you just put it in a .hlsl file and fire it off with like 20 lines of code
doing the same thing in unreal requires an afternoon of fucking with the build system and literally about 500 lines of boilerplate spread across multiple files. And like, yeah, running a "Hello RWStructuredBuffer" compute shader from scratch REALLY IS that complicated, but like, the whole point of using a game engine is to avoid having to do that yourself??
obviously the actual renderer is full of compute shaders and similarly-complex GPU wrangling. But like, they didn't abstract it at all. Their own developers are just writing Hundreds Of Lines Of Boilerplate every single time they do literally anything
I get that unreal doesn't WANT you messing with the renderer; it's the engine's primary selling point so you're supposed to just Use It instead of modifying it. But like, surely their own programmers would benefit from a nicer API? Doing anything complex with the GPU just seems unnecessarily Miserable, so the most Misery is presumably getting inflicted on their own team
