Source Code is Now Publicly Available


Here it is: https://github.com/reiganm/catchup. I also have a dramatic personal story for you, so read along if you're interested.

One of the major obstacles that held me back from making games was the worry that I would do something wrong. My code would suck. My art would stink. My stories would be stupid.

While over time I've grown content with making stinky art and stupid stories (they're the most fun to make, actually), the idea of writing bad code still felt dreadful. One thing that helped me alleviate this dread was reading the source code of actual games kindly released by their creators.

The code I've read usually wasn't very good. You could optimize a thing here or there. This object could have a better interface. That class there does a bit too many things. I could voice a lot of complaints, a ton of nitpicks about their code. Mine was prettier.

But there was a bigger difference between my code and theirs. Their code did something. It humbly served its purpose as a part of something bigger. Mine being prettier was only a byproduct of my obsession with getting every single detail right, all the time. It was never finished. It never served a purpose. It constantly demanded attention that I could've used to focus on the bigger picture instead. So I didn't focus on the bigger picture. And I couldn't finish my games. And it sucked.

So if you are worried about your code like I was at some point, go read source code for some games โ€“ mine, for example.  Imagine how you would improve it. Look at all the stupid decisions I made. Point out silly hacks and how they could be avoided if you just made a tiny refactor.

Then forget about all of that. Return to your own project and make your own stupid decisions and your own silly hacks. Allow your code be imperfect. While taking pride in good engineering work is a positive thing, you as a human need room to breathe, much more than your design does. You should control your design, not the other way around. You call the shots, you prioritize issues, not the Almighty Lord Of Best Practices or Your Computer Science Professor Who Had A Strong Opinion On How You Should Do Things.

This post probably mostly applies to independent creators. In the team environment where you can just write code and not do anything else focusing on quality of the design is arguably more important. Still, I don't think it's a thing you should obsess over. "Good enough" is good enough in most cases. Aim for perfection when imperfection can ruin lives. In all other cases, let your code humbly serve its purpose.

Leave a comment

Log in with itch.io to leave a comment.