This is my own 3D engine, which I'm currently porting my upcoming game to. It's called "Brutus Force" / brutusforce and it doesn't even use matrix math. It's just trigonometry (you can - obviously - create 3D graphics with only easy-to-understand trigonometry, but no one talks about it!)
That's also why real quality survives all trends, because it can't be replaced by anything new, because nothing else can be like it.
Compared to This Is (NOT!) A Car Club, I want to improve quality instead of quantity. Have an interesting variation in the graphics instead of just _many things_. So I'm designing shaders to be able to use multiple images for house textures and character/object sprites without slowing down the GPU.
Technical things like this are advanced but very solvable. Making good tools is mostly about de-learning all the bad tools with too many options and buttons that put technology in the way when you try to focus on your art.
Actually getting good at art and graphics is the real work, there are no cool tricks for this except experience and time...
Changed my font file (TTF format) to be "installable" instead of "restricted", in order to work in IE11 (http://carnage-melon.tom7.org/embed/)
Made pixel art images bigger instead of using "image-rendering: pixelated;" (not very supported before 2020)
But this doesn't matter in object-oriented programming anyway, because the objects have overhead in code size, memory usage and computation time, that makes the code automatically much less efficient anyway.
Abstractions also promise to make code readable, but it doesn't make the actual working CODE more readable, it just makes the abstractions more readable. So even if it's easily readable, you won't understand the interesting parts anyway.
When abstractions aren't used primarily for code reuse, but instead to hide meaning, the program will grow more and more inefficient. Because you stop reading the actual code and only read the abstractions.
And then you won't know about what actually happens anymore underneath the abstractions anymore. Now those things can be as efficient as they want without you knowing about it. And it tends to grow more inefficient and not the other way, because of our large RAM sizes and CPU speeds today.
This is why Notepad is slower today instead of faster. It's not because of slow hardware or incompetent programmers, it's computer bureaucracy (probably heavily influenced by the organizational bureaucracy at Microsoft).
So, abstractions probably won't create programmer efficiency either, because abstractions lead to less understanding of the actual program, which leads to computer bureaucracy, which is a much bigger problem to handle than just editing code.
So... I remove all object-orientation and unnecessary abstractions in my code, and just use functions to prevent too much code reuse. All other structure is in comments so they don't fill up the executable (like objects and functions does, no matter how efficient your language claims to optimize those)
The point of all this is: Don't create more technology to handle your technology, that will leave no space for art.
Made the game's 3D world smaller. Less areas but with more polish, quality > quantity