Building Levels with My Son

I just finished making the last of the levels for our upcoming iOS game, Flibitz. Actually, I should say we finished the levels, because I had some help.

My eight year old son, Andrew, sat by my side today for several hours, offering ideas and suggestions. He even designed one level entirely from scratch on paper. I helped him take it from concept to playable level, and I’ve got to say that it turned out great, and it will definitely be included in the final version of the game.

One by one, we finished the levels, and one by one he crossed them off of our “countdown list.” Forty-eight levels…done!

There’s still more to do. I know of a couple of bugs, and a few graphical glitches. Still some performance profiling needed to get it running a little more smoothly, especially for the iPad Mini. But that’s not what I really want to talk about tonight.

The point is, I got to make a game with my son! How great it that?

It takes me back to the summer of 1984, spending hours with my Dad and my brother, Mark, typing out the code for the Atari 8-bit game “Dragonmaster” from a magazine article.

I learned so much from that experience, not the least of which was that you should always have a backup procedure in place, preferably one that is more robust than “let’s hope no one trips over the power cord.”

Well, my little brother tripped over the power cord.

So we spent even more hours typing in that same code, yet again. Then finally it was done! We typed “RUN” and hit the return key, then beheld the fruits of our labor…a cryptic error message telling us that something was wrong with line 7040 (or whatever), even though that line was something simple like “PRINT”.

So my dad, who to this day still claims to be computer illiterate, dug through the code, found the issues and fixed them. Keep in mind that this was on a machine that didn’t even let you view all of the code at once. You had to type “LIST” and watch the code as it flew by, and then hit the “BREAK” key at the exact right moment.

Man, that was a magical machine. I know that sounds sarcastic, but it’s not. That thing captured my imagination. I spent entire summers sitting on the floor, writing BASIC code. It was so much better than playing outside (and we had a go-cart and a trampoline). WAY better than Saturday morning cartoons.

I still get glimpses of that feeling from time to time, but ironically the more I’ve learned about coding, the harder it is to come by.

In February of this year, I completed the One Game a Month challenge of making one game per month for a year. For most of that time I was pretty busy, just trying to get something…anything…done for the always-looming deadline. It was a hectic experience, but a great one.

During that time I did not share much of the development process with my kids, since I was just too busy trying to get things finished. But they did play the games as I made. Today, out of nowhere, Andrew asked me, “Dad, what ever happened to Butterbats?” Another time, he was playing Grim Fandango, and asked if he could quit and play Journey to the Center of the Sun instead.

Sorry that this post is turning into a giant blob of sleep-deprived, caffeine-fueled sentimental rambling, but here’s my point:

The best programming and game dev experiences of my life have all been mixed with drudgery. I know we don’t want to admit that, but there it is.

Some parts of this process are just not fun. And even when it’s at its best, the fun tends to run out before the work does. So we have to force ourselves to remember that there’s magic in it. We need to finish things. We need to work, even on days when we don’t feel like it, or the magic dies.

Finishing the levels for Flibitz was a milestone, and it’s great that my memory of today will be of spending it with Andrew and seeing him experience the same feeling I had back in ’84 with my dad.

It was really great to see him get so excited about Flibitz, but the best part was realizing that the main thing that made him happy was just to be spending time with me.