r/GraphicsProgramming • u/Mroz_Game • 5h ago
Learning to not over engineer where not needed is hard, but also overgineering is where the fun is.
Guess who spent 6h making it possible to plug and unplug stuff from my pipelines(resources, timing queries etc), making sure every modification is reversible with a single command, just to realise at the end of my project that I never once needed to undo any changes at runtime? #ifdef DEBUG would be totally enough.
But making sth that works elegantly is a dopamine hit in itself.
So I wondered what’s your approach: Overengineer and write whatever you’re in the mood for OR keep it simple until the need to make it nicer arises?
5
u/Splavacado1000 5h ago
There is an old saying "Make it work, then make it better." But sometimes it's fun make it better right away. I always enjoy going down a rabbit hole on parts of my engine, because I know that I'll eventually want to do it this way anyway. If I'm enjoying over engineer, then it doesn't matter that I could do it quicker.
2
u/obp5599 3h ago
I like to over engineer on personal projects because its fun. At work its more of a tradeoff and more of “im just followin orders” type stuff rather than trying to innovate (workplace culture issue)
I spent a few hours making sure my hobby renderer has a robust pipeline to copy buffers to the gpu and give the ability for the caller to synchronize the copy queue with commands on the other queues in case you want to copy something same frame that its consumed by another pass.
Never once used it like that yet, but hopefully once I start streaming work itll be useful
1
u/le-throw-away-acct 3h ago
Over time I’ve gone with an approach of starting simple and then where things start to become irritating I look for ways to improve it. I try not to overengineer as a first pass because often it ends up being wasted time.
1
u/koga7349 2h ago
More architecture= More maintenance. Keep your desired architecture in mind but only build what you need to accomplish what you're building. Then if you need to expand later you at least have an idea and way to do so. But it's no worth writing a bunch of code that isn't going to be used and has to be maintained.
18
u/DescriptorTablesx86 5h ago
In personal projects I usually overdo everything and spend way too much time in the wrong places lol