dev life // dad life


Calculords is out! (I made a game with numbers in it.)

February 24th, 2014

What is Calculords? It’s a totally unique combination of aliens, cards, numbers, and pixels. Take a look:


It’s available for iOS on the app store RIGHT NOW. The fastest way to find out what it’s about is just to download it. So go!

A quick note on math: the math is just addition, subtraction, and multiplication. And you can undo as much as you like. So if it helps to think of it as number puzzles, go ahead! You’ll soon find yourself discovering fun tricks to make the numbers work in your favor.

Sean Reiley, Nick Heyman, and I started Calculords many years ago. Progress stalled out after I had to take on a full-time job, and I’d basically given up on the game… until Rich Joslin picked up the pieces. He and Sean worked like crazy to whip the game into shape and put it out on Apple’s App Store.

I’m super happy to see the game finally come out, and I’ve been pleasantly surprised to see how far it’s come since I stopped programming on it. Sean’s design is totally unique, his pixel art is deliciously, hard core retro, and Rich has put it all together in a really smoothly-running package.

I don’t play a lot of mobile games, because I prefer a meatier experience. If you feel the same, don’t let that turn you off of Calculords. Calculords lets you dive in as deeply as you like.

Help me make my cool new video game, Scavengers!

February 6th, 2014

Right now, Double Fine is asking everyone (including you) to vote on what games they make next. We call it “Amnesia Fortnight.” My game, Scavengers, is one of the contenders! I’ve made a video to let you know why it’s awesome:

There are TWENTY NINE great pitches. Double Fine has put SO much effort into these, and the big challenge now is getting the word out. If you could tweet, email, post to Facebook, or tell a friend about Scavengers and Amnesia Fortnight , it would help out a lot! Here’s a link to the Scavengers video (, and here’s one to the page with voting, all the pitches, and a funny video explaining the whole thing (

Voting costs a buck, and you’ll get whatever prototypes we make a few weeks from now. Last time we did this, the prototypes were so good we turned most of them into full games! But even if you’re not interested in voting or playing, getting the word out would do us a big favor.


P.S. If you’re a fan of Adventure Time, its creator Pendleton Ward is making a game with us, too. He’s very funny, and has made a few pitches of his own. Adventure Time looks a bit like this:


Diablo 3′s Missing Feature: Cliques

May 17th, 2012

Diablo 3 is a social game. Prominent messages pop up every time a friend logs in; grouping is exceptionally streamlined; and friendly sharing is encouraged through class-specific loot dropped for other classes. (The ability to easily show an item in party chat lets you quickly ask your group if they need an item you can’t use.)

For such a social game, however, Diablo’s social tools are sorely lacking.

My most-wanted feature might normally be called Groups, but since that’s taken, I’ll go with Cliques in keeping with Diablo 3′s core mechanic. (Diablo-flavored name alternatives: Legions; Covens; Dopamine Addicts.)

What’s a Clique? It’s a non-exclusive guild. One person creates it, and can invite whomever they wish. (They can add additional officers, just as with a guild.) Once the invitee accepts, they’re in the Clique. You get to add “guild notes” just as in WoW, so you can view a list of people in your Clique and see who they are. (Three types of guild notes: the officer’s public note; the person’s public note; your own private note.)

One Clique might be “My Old Wow Guild.” Another might be “Double Fine Employees,” and maybe I join a third group, a new Diablo-specific guild called “Teh Pwnx0rz.”

Advantages, in brief:

  • More social. These don’t have to be cliques of people you already know. They can support things like guilds, which allow you to meet new people.
  • Shared friend lists. Right now, everyone from Double Fine is cumbersomely adding each other DF employee to his or her own friend list.
  • Personal and shared guild notes. in a coworker clique, people can add their real name to their note. In an ex-WoW clique, they can add names of WoW characters.
  • Competition. Just as WoW supports endgame progression competition, these would support competition on the hardcore ladder and other sorts of endgame challenges.

There are further benefits I’m not going into here, such as: context for folks you know less well; and grouped online status indicators such as “4 members of Double Fine Employees are online.”

It’s often releases of this scale that push social feature sets: consider Halo’s push for YouTube integration. Given Blizzard’s massive push for online, cooperative play with Diablo 3, a minimal social feature set would be a major missed opportunity.

Free Game Design: Deck Chair Titanic

October 2nd, 2011

Deck Chair Titanic is the exciting mobile puzzle game about rearranging deck chairs on the Titanic!

As the Titanic sinks, frantic passengers suddenly realize the folly of storing all those extra deck chairs in the life rafts. As they hurl the chairs out of the rafts, they slide across the deck of the ship, into the rafts on the other side!

It’s your job to match the chairs (only same-color chairs stack), then tilt your mobile phone to violently pitch the deck of the Titanic with an explosion. As they slide into lines, same-color matches disappear, while unmatched chairs fall into the rafts and take the place of poor, unfortunate children who are certain to die.

Outland: the Good and the Baffling

August 3rd, 2011

I’ve been playing a bit of Outland, and it’s really solid. XBLA continues to be a great place to go for highly accessible games delivered to a tiny potential market.

Early on, it hits you with fantastically harmonious game narrative and mechanics. The game’s final bosses– two sisters of opposing natures– reflect the core feature of the game, an Ikaruga style color-flipping mechanic. After foreshadowing this tantalizing set piece, the game then builds both your abilities and narrative up to the fight, in tandem. Aside from taking too long to get to the core gameplay, it works strikingly well. It makes a strong case for game designers to be game writers.

In spite of compelling narrative and mechanics, Outland makes it difficult to inhabit its world by resisting your attempts to understand its shape. Its environments make little sense. The best 2D games create intuitive maps. Castlevania: Symphony of the Night creates wide catacombs isolated beneath the castle; gradual inclines to new levels; grand towers to scenic outlooks. Super Metroid similarly plays with its simple axes of height and width to create cohesive areas with a sense of internal progression. Beyond that, appropriate creatures inhabit each of these spaces– flying spectres inhabit the towering and airy staircases; surreal swimming creatures inhabit the odd zen aquatic areas of Maridia.

Outland simply focuses on the moment to moment challenge. Its levels create interesting platforming challenges, appropriate to the character’s capabilities, ramped up over time. The monsters, too, reflect the abilities you’ve learned. None of the geography reflects the art or feel of the environment; new creatures reflect your change in abilities, but within the exact same environment that did not house them previously. My brain initially attempted to map its spaces, but gave up after seeing no pattern in the noise. I played Outland much as many people played Fable or (tragically) Bioshock– follow the highlighted trail to your goal; shut off your brain’s internal mapping urge. (Ironically, you want to go in the opposite direction of the hint trail– that’s how you get to the dead-ends that house secrets.)

At some point, Outland begins to focus more on challenge than aesthetic, so I’ve failed to progress too far. It may suit some folks who delight in mastering action game mechanics. And it’s still well worth the price of entry for the gaming tourist. Outland does enough new things with art style, narrative, and mechanics in the first couple hours to make it worth a look.


October 27th, 2010

So: I’m back at Double Fine!

This isn’t news to most of you, since I took the position a couple months ago. However, I hit the ground running, forgot to update my blog, and there’s been a bit of confusion.

I’m incredibly excited about what DF is doing right now. You’ve probably heard about their shift towards smaller games such as Costume Quest. It’s an amazing place to be right now– we get to be super creative, try on a lot of different roles, and see folks play our games a lot more often. I hope the model takes off, because I absolutely love what I’m working on right now.

Speaking of which, DF is hiring for a couple positions! :) They include a Senior Gameplay Programmer position on my team, and I honestly believe it’s a fantastic opportunity (that’s why I took the same position). Check ‘em out here:

RC Laser Warrior

July 10th, 2010

“In the world off illegal underground RC car racing, a secret sect of superhumans defy law and order. They race with nanolasers and nukes.”

My nephew was playing one of the random Cartoon Network games, RC Laser Warrior, which I found notable for two reasons. The first: its extraordinary writing, with which I’ve just rocked you.

Second, it handled kart racer pickups in a way I hadn’t seen before. Mario Kart and its imitators usually don’t allow you to pick up any powerups if you’re still holding one. This encourages players to use them right away, at the cost of some depth. RC Laser Warrior puts them into separate, visually obvious slots. A Nitro powerup goes on as a giant rocket at the back of your car, Nuke goes on top, and Lasers go on the sides. None of them stack with themselves, but you can get an item for each slot. When you press fire, all of your powerups activate– potentially nailing someone with lasers, tossing them again with a nuke, and then nitroing your car into the explosion.

The three visual slot design, plus more liberal powerups, creates additional tension around when to use a powerup. I can also see it providing more gameplay to the back-of-kart (i.e. bored) player in a game like Double Dash.


May 12th, 2010

Ludum Dare is a 48 hour game dev competition.  It has run seventeen times already. If you like experimental gameplay, I can’t recommend it highly enough– check out the top entries for any given competition. Each entry only takes a few minutes to download and play, so you can tear through more new ideas in an hour than you might see in a month of major releases. Just don’t go looking for full-fledged games: these are experiments. After all, they were made in only 48 hours!

In case you’re still on the fence, Enviro Bear 2000 was originally made as an entry into Ludum Dare 16. Yeah. Ludum Dare is that good.

My favorite entry from Ludum Dare 17 is Gaiadi (also the overall winner). It combines tower defense with shooter– and judging from the result, there’s clearly a lot of promise in that concept. There are a lot of directions to take (maybe a Herzog Zwei adaptation?). Five minutes playing Gaiadi will fill your head with game ideas for weeks.

Extrinsic Motivation: First, Do No Harm?

April 21st, 2010

This post was originally titled “Beating Zero Sum”, and I had planned to enumerate the various ways PvP game designers combat the zero-sum nature of their games. In other words, given that players are going to lose about half the time, how do you make them feel like they’re doing better than that?

What I realized, though, is that almost all early arcade games were built around you losing every single time. Sure, many folks defined a win as a new high score, but those high scores were vanishingly rare, by their nature. Furthermore, that motivator only worked for a subset of the players: I played lots of arcade games, but didn’t care at all about high scores.

The primary motivator in most games, PvP or PvE, is simply the fun of playing them. So what is the purpose of these extrinsic motivators– levels, achievements, score, gear, ranking, showiness (“X is on a kill streak!”), and so on? The purposes are tough to cleanly delineate, but on initial brainstorming I came up with:

  • Strengthen the appeal of the game: you already like the gameplay, but given a choice between two gameplay clones, you might choose the one with better extrinsic motivators.
  • Broaden the appeal of the game: maybe you don’t even find the gameplay interesting, but the social reinforcement of your WoW guild keeps you playing.
  • Enhance core gameplay: some systems actually integrate back into the gameplay, offering new skills and weapons, adding more complexity to the game on a dole-out schedule. Here’s where the line gets especially blurry.
  • Alleviate boredom: every game has lulls in its gameplay– there’s no way to ensure every player is in the zone all the time. But maybe they’ll keep playing for the story.  Or the progress bar that keeps filling up.
  • Encouragement: here’s that PvP motivation I was talking about. Yes, you just got crushed. But you’re still making progress, or are still good at some subset of gameplay.

I’ll still get around to a discussion of specific extrinsic motivators, but what I realized is that I accidentally ended up at the same place Chris Hecker did in his GDC 2010 rant: don’t break your game! External reinforcements have become easy and expected, to the point that you need to force yourself to step back and ask what each additional reward is contributing to your game. Some sample questions:

  • Does this achievement encourage an exciting twist on gameplay? Or does it promote tedium?
  • Does this leveling mechanic smooth the learning curve? Or does it artificially slow the learning process, thereby boring players?
  • Do these additional, loss-mitigation rewards detract from the feeling of accomplishment when a player wins?
  • Will this external scoring system feel meaningful to a sufficient percentage of players, and will it diminish the intrinsic satisfaction they get simply from playing, and performing well?

None of these questions or answers are simple. MMO leveling systems clearly stretch the learning curve past the breaking point, but it’s a trade-off that often works. As an RPG addict myself, though, my goal is simply to be aware of the trade-offs– without adding yet another leveling and loot system simply because I can.

(Fraud-Resistant) DotA Random Draft Pool Generator

March 16th, 2010

My friends and I like playing DotA’s -rd, or “random draft” mode. The mode selects 20 heroes at random, from which the two teams draft.  However, we like discussing the pools over email, rather than just picking in-game.  So, I wrote a simple hero pool generator.  In its most basic use, type this:

It will then generate a list of 20 heroes at random.

But what if you don’t trust your friends to generate a pool? What if the opposing team’s captain generates the pool at “random”, but it suspiciously includes their favorite heroes every time?  That’s where the other modes come in.

By using the more advanced mode of, you can generate a hero pool that’s verified random to both teams.  In technical terms, the captain of each team will pick a number at random.  The captains will then exchange a one-way hash of those numbers.  After this exchange, they will THEN exchange the original random numbers.  These random numbers will be combined to generate a seed for the program’s random number generator, which can then reproducibly generate the hero list for both teams.

So, how do you use it?  Here’s the output of “ –help”:

-s <num>: RNG seed
-f <path>: path to hero listing file.  Defaults to herolist.txt.
-h, –help: this help message
-o <integer>: hash the integer using md5 and print the output
-x <int1> <int2>: XOR the provided integers, then use as the seed (instead of the single int argument -s)
-r: generate a random number

Here’s the procedure:

  1. Type “ -r”.  The output will look like this:
    Your secret number: 1029929668
    Your public number: b322801c07f467ae63e5b648eeff99d1
  2. Email your public number to everyone.
  3. The opposing team’s captain also performs steps 1-2.
  4. Both of you now email your secret numbers to everyone.  If anyone’s suspicious, they can run “ -o <secretnumber>” to verify that it hashes correctly.  For example, I’ll run -o on the secret number above, and it had better result in the public number above: -o 1029929668
  5. Now anyone can run “ -x <secretnumber1> <secretnumber2>” to generate a list of heroes.  For example: -x 1029929668 1157727935
    Using seed 2019753083 from inputs 1029929668 and 1157727935
    Storm Spirit
    Witch Doctor
    Nerubian Assassin
    Vengeful Spirit
    Dwarven Sniper
    Centaur Warchief
    Lightning Revenant
    Pit Lord
    Slithereen Guard
    Goblin Techies
    Dark Seer
    Dragon Knight
  6. You’re done!  Now you can debate those picks to your heart’s content over email, with your completely untrustworthy friends.  When you’re done, you just pick your heroes as normal in-game using “-ap”, or “-pa” to pick allied heroes if you’re using any AIs.

If you want to add or remove heroes, they’re all stored in “herolist.txt”, in the .zip linked below.  You’ll need to add heroes as they’re added to DotA.  Also, I believe -rd disallows Goblin Techies for some reason, but I’ve left them in herolist.txt.

Note: I haven’t done any work to make this method statistically robust.  If you have basic knowledge of cryptography and want to help me improve the code, please drop me a line!  Also, thanks to Billy for coming up with a lot of the method here.  Finally, I actually do trust my friends– but this is fun to do anyway.

Download the files here.