you should not be a 10x engineer or whatever, you should be focusing on the vision and ideas and emotions that make your project interesting and beautiful and touching. some of the greatest indie games of all time have absolutely nightmarish codebases because the creator was rightly focused on the player experience
if it shipped, it works
And really - unless you work in a big team and can afford a departure the from the actual work, you should consider whether you really need something to be done in the fastest/most elegant way possible.
Even if the solution is a bit of a hack, you can always come back to it later if that ever becomes an issue.
And indie games are often small enough that "come back to it later" becomes "keep this in mind for the sequel" if the game is well-received.
Once finely put into words by a friend, "While you're optimizing your Entity Component System, folks are shipping their third GameMaker game".
this is a thing i am trying very hard to work past with my own game dev stuff. on the one hand i try to keep my systems just flexible enough that i don't have to recode things unless i absolutely need to, but on the other sometimes you put together what works and then keep it pushing unless you wind up having to go back to sort things out later.
like last wednesday i figured out how to localize the names, flavor text, and effect descriptions for cards in ulkss without having to rewrite a bunch of things, but that means adding extra fields to the json files for the card database so that the card database itself has all the info for localizing the text i need localized.
outside of that, viral core busters (and later, ulkss, once i add yarnspinner to it) is basically running off of several csv files and two completely independent systems (yarnspinner for dialogue, my own custom-written scripts for every other bit of in-game text) in order to localize all the text--but the system works and from what I can tell performs pretty well in practical use, enough so that you can change the language mid-game without having to restart the whole thing, and that's what matters.
like i was saying to my mom earlier today--the most empowering part of having done that is that, sure, was it an "elegant" solution? probably not! but i came up with it, and it works. and considering that i have had a Lot of Complicated Feelings about my ability as a programmer for the last several years of my life, i can live with that.
