dev life // dad life


Archive for the 'Game Discussion' Category

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

Monday, 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.

Diablo 3′s Missing Feature: Cliques

Thursday, 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.

Outland: the Good and the Baffling

Wednesday, 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.

RC Laser Warrior

Saturday, 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.


Wednesday, 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?

Wednesday, 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

Tuesday, 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.

Dragon Age Thoughts

Tuesday, February 2nd, 2010

Some quick takeaways from Dragon Age:

  • Bioware’s best content is so amazing, that people will put up with a whole lot of intestine-crawling* and monster-boxing** to see it.
  • While all game genres have to fight to keep up with the technology march, RPGs have it the worst.  There’s obvious strain between technology development, tool development, and designer learning curve.  There should be at least one more Dragon Age this generation.  DA2 : DA :: BG2 : BG?  I certainly hope so.
  • “Character” offers a riper field for productive innovation than “plot”.  While The Plot is on rails, everyone’s game experience is unique as a result of their morality intersecting with the NPC’s.  Expect to see more fruitful exploration of character development in future games, as Dragon Age influences developers everywhere.

* intestine-crawling: walking through a hallway that’s been looped back and forth many times in a tight space (usually square) so as to maximize walk distance.  This gives the dungeon more time to digest the adventurer.

** monster-boxing: stuffing monsters into a series of boxes, usually with doors.  Frequently, the monsters have no reason to be in the box, yet do not attempt to leave the box until they spot a curious adventurer.

Uniwar vs. Advance Wars

Saturday, January 2nd, 2010

A few hours of Uniwar on the iPhone have shown me: I underestimated Advance Wars.

I mean, what’s so hard about Advance Wars?  It’s a typical turn-based strat.  You make your land, sea, and air units.  You make some big ones and small ones, add some basic RPS, add terrain bonuses and penalties, crank out a bunch of maps, and you’re done.

Of course, that doesn’t give you a satisfying game.  Uniwar’s two biggest flaws:

  • Unit glut.  You simply have more units than you want to control.  Half the map is filled with units moving around, healing up, taking up space, doing nothing.  The delicate practice of using your few units to restrict the enemy’s movements is pushed to the background.
  • Drawn-out games.  After you’ve essentially won, it can take quite a while to actually complete the mission.  I last played a mission that I “failed” at the end because I didn’t farm my objective long enough before winning.  I’m not sure I’m willing to replay it.

The biggest culprit may well be the maps (or the terrain movement penalties– chicken and egg).  With few open stretches of land, you spend many turns moving units one or two spaces, clogging up the abundant choke points.  Flying units help, though you’ll end up resorting to them not because they’re better suited, but simply because you’re bored.

Furthermore, combat just isn’t lethal enough.  You’ll stack up a totally overwhelming force against an enemy base, simply so that you can kill off the infantry on it faster than the base can produce another one.

Uniwar is fun– it’s just not Advance Wars.  And it illustrates a troubling constraint on iPhone games: shoestring development budgets.  While Uniwar would be a much better game with some more time to tweak the units, playtest the maps, and improve mission design, it’s hard to say that would pay for itself at $3 a pop.

Modern Warfare 2 Goes There

Tuesday, October 27th, 2009

There’s been a lot of back and forth over the idea of playing as the bad guy in a video game.  There are the clearly ridiculous games, such as Postal.  Or PvP games, largely removed from context, in which one side is Nazis (wargames, Wolfenstein, etc.).

Most mainstream forays to the evil side bring plenty of controversy.  (Smaller indie games, such as indie game “Edmund”, about a rapist, escape notice.)  GTA’s been a favorite media whipping boy.  The game “Six Days in Fallujah” was canceled, likely because of media controversy.

Modern Warfare 2′s leaked beginning is so relevant to today’s fears, so realistic looking, that it’s going to cause a lot of people to think very hard about the role of video games.  If you haven’t seen it yet, and don’t mind the spoilers, search YouTube for something like “modern warfare 2 airport”.  (I can’t link, because Activision’s pulling ‘em down as fast as they can find ‘em.)

If you don’t want the beginning spoiled, I’d advise not turning on the TV or going in to work for the next couple weeks.