Posts about Thoughts

IGS 2013 Soapbox Talk

March 27th, 2013

Here’s an article version of my Independent Games Summit 2013 soapbox talk.  I added the IGF stats pretty last minute, and I definitely felt like I rushed through the first part of my talk to cram everything in.

The prompt I give to the speakers for this session is “what are you thinking about?”.  This is deliberately wider than asking someone to give a “rant” (although if someone is thinking a lot about something that’s been bothering them, they’re more than welcome to rant)!

So What Am I Thinking About?

My first company, Flashbang Studios, just turned 10 years old, so I’ve been thinking a lot about that.  Many of these thoughts are just nostalgic rememberings, but a big observation is that my focus on game development has shifted over the years.


In the early days, nearly 100% of my time was spent making games.  Partly this was due to lifestyle. I lived with my then-girlfriend in her mom’s house, after recently moving to a new city.  My total expenses were $150/month, including rent, food, power, etc.  I basically sat in a room with my computer and worked on Flashbang projects.  I didn’t get out much.

These days, my time is spent roughly something like this:


My time allocation shifts month-to-month, of course, but there now are a lot of competing elements besides straight-up game development.  Surprisingly, I find some of these distractions really satisfying!  “Web development” encompasses my contract work–I built the proposals/sessions backend for GDC, and the entry/judging system for IGF.   Another surprise was that I’m a pretty good web developer.  In fact, I think I’m a better web developer than a I am a game developer.  I’m definitely more productive as a web dev, and I even think I might be more capable.  So why is that?

Developing Across Abstraction Levels

My web development projects are all solo projects:  I do everything, from the database to the client-side HTML.  This turns out to be super useful!  I’m able to take a high-level problem and implement a solution in multiple places, using the strengths of each layer.  It may be more efficient to do something more client-side, or maybe I should calculate something server-side first, or maybe I need to restructure the database relationships entirely.



In Aztez, I’m using one language, C#:


Developing Across Team Members

The above graphs reminded me of the codebase interaction breakdown we might have in one of our Blurst games, which might look like this:


Versus Aztez, which is again something like this:


Coding for Delineation

Solo coding across multiple languages/abstractions, and team coding in the same language actually feel very similar to me.  With web development, I need to clearly hand off data and functionality between the different layers.  “PHP Matthew” needs to collaborate with “HTML Matthew”.  In a team project, we would similarly create clear demarcation points between systems and people.  You want logical membranes in your project!  They naturally create clearer code and more independent systems.

When I write in one language, by myself, I tend to create much messier systems and abstractions.  Things stay in my head longer, and I’m not as strict or clean with my abstractions, simply because I don’t need to be.

Perhaps I should create artificial constraints to enforce this?  Or better discipline on code quality?  Reintroduce Unity’s JavaScript in Aztez, for different game systems?  I’m not really sure what the solution is here.

Time-to-Reward and Challenge Boredom


Game development is slow.  Even fast development is slow.  Our 8-week cycles on Blurst games felt insanely fast, but that’s still two months to any kind of finished product (and Blurst games used a pretty loose definition of “finished”).

I’ve also been developing games for half of my life.  A lot of the fascination with the challenges of development have waned for me.  I sometimes get bored with game work, especially a lot of the grunt work (UI, etc).

Enter Photography

I bought my first serious camera three years ago.  I was drawn to the promise of having a creative outlet where I quickly make finished things, and also to a new set of challenges and puzzles.  It provides a lot of the elements that have waned for me in game development over the years!


You can see more of my travel/portrait photography at

Creative Turnaround

As a very concrete example, multiple hours of my work in Aztez could result in a change that’s directly visible as this:


(The change is the addition of a “Force Direction” option in our move system, if you didn’t catch it).

And yes, I can mentally understand how this new flexibility enables new combat options, and eventually affects the player experience, but it still feels so deeply buried.  The long feedback cycle between and results hurts the virtuous cycle of being motivated from results of my work.

Compare this to my experiences with photography.  I had an idea for this photo while taking a bath, and I literally went from concept to final product in 30 minutes.  “Final” is really important to me here!  I won’t ever re-edit this shot.  It’s done and out there:


Even a “big” photo shoot is measured in hours.  Here’s a shot from a friend coming over with a borrowed straightjacket and an idea for an image:


(I shoot a lot of fetish material, if you’re curious–and it’s been really interesting and enjoyable to learn an entirely new scene over a few years from a totally cold start!)

Increasing Game Development Rewards

Fortunately for Aztez, we’re actually entering a period of development where we can begin producing alpha builds of the game that encompass the entire game experience.  I think this will help the work->results->reward cycle tremendously.  It certainly won’t be anywhere near the same feedback loop as a completed photo in under an hour, but I’m really looking forward to the feedback cycle of being excited by people actually playing our game out in the wild.

(By the way, the “Internet” slice on that pie chart is just bullshit like Reddit.  The Internet is much better at distracting you in 2013 than it was in 2003.  YouTube didn’t even exist until 2005)!

Addendum:  IGF Entry Stats

I ended my soapbox talk with some stats from the IGF backend.  In the interests of transparency, here they are:

entries-allUnique views are the number of judges that viewed the entry.  Comments are judge-to-judge discussion left on the entires.  Notes are judge-to-jury comments (other judges can’t see).  Ratings are reports on a game (which might be “hey couldn’t play, it was broken”).  Votes are the average upvotes for any category on a game (note you can rate a game and leave zero votes).

The all entries average isn’t the important one, in my opinion.  The screensaver I was running during some of the IGS breaks was built from screenshots from all entries.  You may have noticed that a lot of the games looked pretty rough, or not very “indie”, or whatever.  As any judge will know, there are a lot of IGF entries that are too early in development, or not a good fit for the conference, or simply broken.

Sorting by total votes, the top chunk of more competitive entries looks like this:

entries-top And the very top of the entries is even wider visibility.  Note that many of these entries are finalists, and that lots of judges check out finalists in the backend after they’re announced (this data was taken the other day, so it’s post-finalist-announcement):


Addendum:  IGF Judge Stats

I also crunched the judge data.  There are 195 active judges in the IGF backend.


The top quarter of judges, sorted by total ratings:


The 10 most active judges were really active:


With one judge really standing out (these stats include student entries and main competition entries both):


Contact Details

Questions or comments?  Feel free to hit me up on Twitter or via email!

First Riding Day!

March 11th, 2008

Today was the first day on the unicycle. You could tell everyone was eager to stop milling around–as relaxing as that is–and get in some miles. But first, we had to get ourselves out of Hanoi.

Early to Rise

We woke at 3:15am. There are only two flights to Hue, split between morning and evening. The morning flight departs at six, which meant an awfully early morning for everyone on the tour. It wasn’t too bad, thanks to the remainder of the jet lag. I didn’t have any trouble falling asleep early.


After a tasty breakfast, tour orientation, and unicycle assembly, we were off! The riding was very light, and spread out, with the goal of the day to visit the forbidden city and some tombs. While these tours were great, it was also a little bit too serene on a day where we all woke up hours before dawn. It was much nicer to be on the road mingling with traffic. At least that keeps you awake!

Unicycling in Vietnam

So riding around in Vietnam is completely amazing. We’re still in reasonably touristy areas, thanks to the tombs and such, but our route did take us away from that. It was awesome to be in the flow of traffic, pedaling through the city, and watching the reaction of the locals.

I was regularly struck with thoughts on how awesome/bizarre/amazing/exhilarating/mad the whole thing was. It’s a combination of everything: The sights, the people, how they live, the fact that I’m even here, and of course the fact that I’m seeing it all at 13mph on a unicycle.

Existence by Attention

One of the common themes in my thoughts, while riding, was that this stuff exists. It’s not just something I’m seeing while I’m riding by. Tomorrow, those same people will be working the same shops. The kids will again be walking home from school. That cow, or chicken, or dog, or whatever, will still be there, doing what it does.

I think in America we have this worldview that something only exists if people pay attention to it. If the news isn’t talking about an event or person, then it just doesn’t count. By implication, I–and you–need to be experiencing something for it to actually exist. It goes past that people not caring; it’s like they no longer allow a thing to be realized.

That seems different here. For instance, the newer houses in Hanoi have western kitchens. Nobody’s actually using them, though. They still go cook in the street, to talk to their neighbors and be a part of the world. It’s almost the exact opposite–you don’t exist unless you participate in or pay attention to the world, not the other way around.

Persistence and Reactive Reality

I think this points to one of the aspects of unicycling that’s so compelling. For instance, if you come here as a tourist on foot, you don’t make any indentation on the persistence of the city. Everyone’s routine is the same, whether you were there or not. Your day is no different from any other.

But when we unicycle through, we make a fairly wide ripple in reality–the people who live here–and cause quite a disturbance. It combines the two worldviews in this strange way. This stuff exists whether I’m here or not, but what I’m experiencing really is just for me, in a very severe way. When the next bus load of tourists comes after us, they’re back to the off-the-shelf, static experience of the city.

But when we roll through, we get our own experience, crafted specifically for us by our very bizarre circumstances. Kids run alongside just to watch, people come out of their shops, adults stop and stare, and curious motorists slow down for a longer look. The country itself is responding to us and actively contributing to us. It’s not the attention that makes it great; it’s that this experience is totally and uniquely ours and ours alone.

Life Lessons From Wearing Braces

December 4th, 2007

So I’m wearing braces. Again. I had them for a few years in middle school, and now I’m enjoying them all over again as a 27 year-old. Horrifying, right? It’s actually a much different experience this time around. For one thing, I’m much more aware of them at a conscious level. After all, I very definitely chose to undergo treatment, whereas when you’re younger it feels like the will the world, as implemented by your parents, is forcing you into it.

Solving Pain…With Pain!

Braces illustrate this concept perfectly. I’ve come to understand it as universal truth. To avoid something you must undergo it. What does this mean? Let’s use my braces as an example. It all started with tooth pain. Of course, nobody wants tooth pain, so I (eventually) went to the dentist. They discovered this wonderful mess:

My Teeth

Whoops! Looks like my upper wisdom teeth are causing some trouble.

It’s Going to Suck

Here’s the kicker. Want to stop your teeth from hurting all the damn time? Put on some braces. Then your teeth will hurt some of the damn time! Want to stop being out of breath after walking up some stairs? Force yourself to feel out of breath by jogging! Feeling stumped by a particular subject, like programming? Submit yourself to that stupid feeling by hitting the books! Terrified of speaking in public? Get to a Toastmasters club and, you guessed it, speak in front of people. And it goes on like this.

The Solution?

I’m not sure there is a magic workaround to this phenomenon. The best course of action is to accept it and approach it with discipline. Arm yourself with the end goal in mind and apply that vision as needed to get through the pain and discomfort, with the realization that the exact kind of pain and discomfort you’re feeling is what you’re freeing yourself from.

If you’re working out, visualize performing your physical goal effortlessly–a marathon, or a bike tour, or whatever–whenever your hit that psychological wall. Push through the confusion in your studies by imaging the clear understanding that awaits you. Dream about the appointment when your braces come off whenever a headache creeps in.

Stick With It

Eventually, the braces do come off. You realize you can run a mile without even feeling tired. The concepts and ideas that baffled you now seem intuitively obvious. All it takes is time, patience, and a little discipline.

And in the meantime, take some ibuprofen and get back to work!

Holy Crap, a Blog!

November 25th, 2007

PaperSo I’ve finally buckled and launched some sort of personal blog. In general I’d like to put out more one-to-many communications. We’ll also be launching a site soon for work that will contain a blog (mostly because you can’t tell who we are at all by looking at the current Flashbang Studios domain). I’ll be ranting a bit about business stuff there, but I thought it would be cool to talk about more general-purpose, personal, and otherwise interesting bits of information that wouldn’t be as relevant for work.

What About?

What am I going to talk about here? We’ll see how it goes–I may change things up as I see what strikes me as noteworthy–but very likely:

  • Unicycle training
  • Technology trends
  • Memes, thoughts, what I think about when I’m alone

Unicycle Stuff

I enjoy riding unicycles. Mostly I ride mountain, but I’m signed up for a 300-mile unicycle tour of Vietnam that’s happening in March. I really need to train up for that, so you’re going to see a lot of posts about my progress. There’s nothing like a little public accountability to keep motivation up!

Technology Trends

Even though I primarily do game development, I dabble in more general technology areas: web development, automation, and marketing. If I had ten times the free time I would actually do lots of things in non-game-related areas. Instead, I just think about them, so it’ll be fun to put those thoughts down in blog form to give them at least some concrete form.

Other Thoughts

And, of course, what good is a journaly blog without rants about the latest movies, games, political events, relationship insights, and Internet trends? I’m sure I’ll rant about random topics throughout the duration of the blog. I’m not sure everyone will want to know what I had for breakfast, but there’s only one way to find out!


If you enjoy reading, please comment on the posts! Discussion is great.