March 2013 Archive

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.

flashbang

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:

pie

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.


web-languages

 

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

game-languages

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:

blurst-breakdown

Versus Aztez, which is again something like this:

aztez-breakdown

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

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!

photos

You can see more of my travel/portrait photography at mwegner.com.

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:

aztezunity

(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:

792210_10151476290425522_1914088217_o

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:

i9-nowatermark

(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):

entries-contenders

Addendum:  IGF Judge Stats

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

judges-all

The top quarter of judges, sorted by total ratings:

judges-top

The 10 most active judges were really active:

judges-insane

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

judges-tim

Contact Details

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