Sometimes, it's hard to optimize a game. Visual effects are too expensive for the GPU, but without them the game looks like shit. Music files are too big, but I ain't shipping a silent game am I? That kind of stuff. But you know what is even harder? Not thinking about it.
Enter the world of premature optimization.
Your old friend,
Premature optimization
Have you ever spent 2 hours on tweaking shadow map settings, audio codec comparisons, comparing (or, *sigh* making) small game engines?
Did you compile the game engine from source to save 1 megabyte? Even when your friends have a state-of-the-art internet bandwidth?
Did you really, for the love of all that is good on Earth, build your own soundfont?
Then welcome. Let your old friend, premature optimization, consume all your working hours, meaninglessly tweaking the various parameters of your life.
And now for a more concrete example.
Godot Engine 4 is out since 2023. As a performance-conscious hobby developer, I can choose Godot 4 for its features, or stick to Godot 3.x for its small size and fast 2D performance. Or whatever alternative engine/framework/language I fancy today, but this doesn't get very far. Sometimes, once a game project goes past the toy/prototype phase, I just make it hop around a few techs and it dies. This happens naturally, like the phases of an aging star before it goes supernova.
The more you learn about computers, the more powerful this effect is. It's the opposite of some other project stoppers like impostor syndrome. Instead of staying on a blank page because you don't feel worthy, you spend your evenings weighing the different blank pages and testing their elasticity or whatever. But still, nothing is drawn.
So how do I exit that failure loop?
Join game jams
Works well… for a while
Game jams are cool. You can go wild on making quick and dirty code, because the thing has to ship tomorrow or never!
The problem is that, after a while, you have a collection of small (mostly) unrelated games. When you look back on one big finished project you go "wow, I can't believe I made that", but for a bunch of small games you go "huh, neat", which is good enough sometimes, but not always.
Also, dammit, my itch.io dashboard is too crowded again.
Just don't make games for a while
Okay, I'll stop working on games for this week. And this month. Actually, more like this season. And oh, I forgot about that whole premature optimization thing. And I got a new game idea! What if I implement it? Let's just open that game engine. Man, this is slow, I'd better optimize that.
Back to square one.
Get a new laptop
The forbidden advice. Spend money on extracting rare earth materials from Congolese children in unsafe mines. Packaged in a new box with not enough USB/Ethernet/SD/whatever ports and a lot of bloat, or config to do, or both (depending on your OS of choice). And worst of all: politely retiring the old laptop, thinking you'll get back to it sometimes, but never using it ever again.
How sad! How could you do this to me, inevitable march of technology?
But it'll happen eventually. And it solves the optimization issues, or more precisely hides them under the rug… at least for you. You have 4 times as much RAM now. And now you make heavier games and your friends have to switch PCs too. And it's laggy on your phone. Better change that too.
Restrict your choices
What, get an even older laptop????
I just thought about that one. What if restricting your choices was the solution?
A word of warning: you must have some discipline.
Because in the end, when the restrictions aren't enforced clearly enough, I just gave up on my idea of a textless single-player physical board game without incomplete information or randomness. Huh, maybe too many restrictions is a bad thing.
Another way would be to have a forced restriction, like an accident or something. But for evident reasons, I don't wish for that.
Advice in progress…
[####......] 40%
So this may be the end of this post, but not the end of this problem. How to avoid premature optimization, especially as a hobby developer?
Maybe we have to embrace it, and the real treasure was the optimizations we made along the way?
No satisfying conclusion for now. Kind of a bummer. Thank you for reading through the end, but you really shouldn't have spent your time like that. Go read something else.
Oh actually by the way, I made Gordon Smash Bros in a few hours. You can play it here. Also, buy my commercial game, Ace of Rope. 6 of the 7 chapters are finished. Since almost nobody is reading this, might as well go all in. Both games are made in Godot 3.x. Shows that you can make big and small games with it I guess.
On that note, see ya in the next one!