on striving

finishing mabeopsa and starting anew

Excellence has been on my mind as Mabeopsa's development concludes. I recently reread Daniel Chambliss's The Mundanity of Excellence, a paper arguing against "talent" and instead for qualitative changes as being more important for moving between worlds within a field. Mundanity made the argument primarily drawing on research in swimming; Chambliss's later book chapter makes the same argument using teaching. It was right around this time that a friend reminded me of Brenda Romero's talk Jiro Dreams of Game Design, which I rewatched and again appreciated. And readers of my monthly highlights will recognize a similar refrain from Kristine Kathryn Rusch and Dean Wesley Smith.

In the midst of this, some friends and I started playing Civilization IV again, and its theme, Baba Yetu stood in stark contrast to the music I create and, honestly, most of the music I listen to on a regular basis. Christopher Tin's other music (Mado Kara Mieru in particular) was similarly intriguing, reminding me unequivocally about excellence in music.

I am not a world-class game designer, programmer, musician, or artist. In the past for programming and development, I've tried writing more lines of code per day. Running and participating in game jams. Different time management methods. Basically: All quantitative changes. This wasn't time lost or worthless, but I wasn't improving the way I wanted.

And so moving forward with my next project, a kanji-based roguelike tentatively entitled Namazu, I decided to focus on small, regular qualitative changes. Something like the swimmers who decided to focus on turning correctly or deciding to show up to practice on time.

A first step for my programming is variable names. In Mabeopsa, I still remember the moment where I was fixing a bug and realized I had used almost every permutation of prefix and suffix to denote "number of" (including numFoo, fooNum, fooNumber, fooLength, and fooSize). Sure, they were in different contexts, and they all made contextual sense. Using them was easy. At that moment, I was paying the cost of easy variable names by having to refer to the names multiple times while fixing the bug and adding additional features. I even caught—and, thankfully, stopped—myself from making up new prefix/suffix combinations with other variables.

And the result of this regular focus on variable names, at least so far? Programming on a daily basis has been more fun than I've had in a long time. Doing the "right thing" is not only easier to execute, but I've implemented algorithms more cleanly and found more bugs than I would under my previous approaches. It's been significant enough to try applying the approach to other aspects of the development. And while it doesn't mean that Namazu will be a radically more popular, higher selling, or more critically acclaimed game than my previous efforts, at least I finally feel like I'm on the right path.