Much of my recent code cleaning/load time tinkering/performance refactoring has been just small skirmishes in a long-running overall battle with my tendency towards excessive over-polishing. In the past I have spent far more time on, for example, my Log utility (nothing more than a fancy console logger with a dashboard for tweaking parameters on the fly) than I should have for something so trivial, and although it’s still productivity of a sort, it reeks of procrastination. It’s almost as though my brain is paranoid about “smarter people” one day digging into my code and sticking their noses up at it. And to be honest with myself, the majority of C# coders out there are probably much smarter and more experienced than I am.
I know it’s counterproductive, but I find it really difficult to stop myself polishing my work. Back and forth I go each night, shoehorning in whatever latest C# trick I’ve learned during my day job, or idea I’ve had in the shower for better design pattern usage, or recoding something over again just because I’ve had some niggling doubt about whether it followed the “best practice”, all the while failing to progress in a meaningful or time-efficient way. It also doesn’t help that I get excited about new ideas and solutions every time I have a shower (seriously, it’s the best place in the world for unlocking inspiration) and then before I’m barely even dried off I have to jot down those ideas before I forget them.
Enough. This is the same stain of perfectionism that has befouled so many of my writing projects in the past. I have drawers full of overly perfect first chapters that died in their infancy. Even this game has been rebooted several times over the past few years, ostensibly to “clean up the code”, and it’s a miracle I’ve managed to keep it going this long. Could I have finished and got it out there in the market by now if I’d just worked harder at controlling my character flaws, rather than diverting all that work into futile polishing and retooling? Probably. I still would have binge-watched Breaking Bad and Game of Thrones though, and played Trine with Matthew, so no matter how productive I might want to be, I’ve still gotta factor in a certain amount of downtime.
It all adds up – between the unholy trinity of procrastination (a topic that could fill many pages, really), perfectionism, and polishing, I am certainly not the most efficient game developer in the world. But there is a real goal here, at least in my mind: the hope that by the end of it all, I’ll not only be a better and more experienced coder, if an exhausted one, and that much of the code will be in a more generalised and reusable state for benefiting future projects. And most importantly for this project, the structural and math-based bugs from my previous attempts that couldn’t be figured out back then because of the state of the code will hopefully be fully resolved as a result of having cleaner structure. Maybe. If I don’t decide to polish it yet again…