Refactoring to Get Back to Root

Despite the implications of the title, this is more of a personal post than something exceptionally technical.

A few days ago I decided to pony-up to renew my Netflix subscription. The major benefit to doing this is independent documentaries; they can be a bit hard to come by even if you’re seriously looking. While exploring the available titles, one in particular jumped out at me: Indie Game The Movie. I was completely ready to dismiss this as yet another “here’s a developer and here’s what he does on a daily basis” films but gave it a shot anyway.

Not only was I completely wrong, but I was taken aback at how much I connected with the developers featured in it.

The thing that really scared me the most is that I came to find it at a rather interesting time. I’m actually in the process of developing my third Android application which happens to be a game. While still very early on in the project, I’ve found myself going through all sorts of emotions and engaging in combat with myself over seemingly trivial things for little result in the global scope of the project.

One of the developers featured, Jonathan Blow (now most known for Braid), said something to the effect that the major difference between independent games and high-end commercial quality games is that personal character flaws present in the developer can be translated into the game making it an extremely personal affair. I can’t remember the quote verbatim but this struck a major chord with me. I’ve actually been developing games for about five years now. In that time, I’ve written four, released two, and have since lost the source and binaries for all of them. While each one of them has been different in various ways, the one thing that has remained constant is that it’s been a difficult process and I’ve always left a little of myself in them either through personal tweaks in mechanics visible only though reading the source code or via the plot of the story.

As the years went by and I fell out and back into programming, something changed in me. All of a sudden I had no desire to write code for the pleasure of it. Instead I felt compelled by the monetary gains that would follow afterward and driven by such desire. I was controlled by the pressure to code for this framework and shy away from this language because you can’t develop fast enough with it. The code itself has no personality to it. Every line written was clearly marked as nothing more than an extension to the underlying framework API. Things like code completeness and efficiency were now more important than how I felt while writing the code and then using the resulting program. Usability has always been important to me regardless what I’d written but now it felt like I wasn’t concerned about how I used it or leaving my own impression on the program.

Now I was just droning from one project to the next.

And this really bad mentality sunk into my recent game project. It shows in the code, it shows in the demos, it shows in the art. In a sense, the entire project is corrupted by this. And I knew it. I felt it. Something was missing and something was very wrong.

After hearing what Jonathan Blow said in the documentary, I stepped away from the project for a while and really thought about what it was exactly that I was missing. What I discovered was extraordinarily personal but the root to all problems.

Life has a way of making you experience things that you don’t think you should have to experience. You can’t necessarily shield yourself from the things with negative connotations; they have a nasty way of creeping up on you and making sure you know that they’re there. I can think of so many things in my life that have negatively impacted me on so many levels and degrees that it’s easy to get consumed by it: childhood hardships, the decay of family and friends, cancer, death, addiction, misplaced trust, dishonor, abuse of loyalty, hollow bonds of family, unforgivable mistakes, etc… It all detracted from the small lot of things that I did find solace in. Mostly because having experienced what I did it was really easy, and still is frankly, for me to be absurdly cynical about the world.

I took some time to proverbially “refactor” myself. Touching base with what it was that I really loved in life and finding again what I’d lost because of all the cruft, I’ve emerged feeling somewhat invigorated.

It’s truly hard to be yourself in a world that demands you be something else suitable to the context. But being yourself and not shying away from that is extremely important regardless of what you choose to do with your life. Not bringing your personality to the table might as well make you a drone.

Having done all of this, I humorously sat back down at my computer and started looking the code over again.

I’d like to say that most of it was okay. After all, structure work is structure work. Beyond that, it needed a total refresh. That wasn’t me writing that code there. It was drone code.

Is it going to take longer to get this thing done? Yes. Am I going to be happier with it? Absolutely. Is it going to be flaky like me? Better count on it.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s