Archive for May, 2011

Date: May 24th, 2011
Cate: development
4 msgs

The Lincoln Letter

I’ve always loved comic books. So, some time during college, I made a few myself. Here is The Lincoln Letter, a story filled to the gills with educational value.

Whenever I make a game, I spend a large amount of time iterating and experimenting. The start of a project is particularly daunting – the game can go in any direction, so having to choose just one path can sometimes be paralyzing.

This little comic project was no different. Here’s a rough draft of the above story:

The script went through the wringer a few times. Then the script and the layout had to be reconciled: fitting together the text bubbles, images, and flow from one panel to the next. With those pieces, the process became a matter of figuring out how to best put the puzzle together – tweaking word usage, moving the panels around, cutting material.

This is not unlike reconciling between art & gameplay. A basic example: a modern military shooter game. Gameplay-wise, I want players to instantly recognize who is and isn’t on my team. Art-wise, I want the game to look gritty and realistic: everyone wears dark camouflage uniforms. So how do I instantly differentiate friend and foe if everyone wears very similar uniforms?  There is no one correct way to resolve this discrepancy – just a lot of different ways to fit the puzzle together.

(Personally, I’d add pink bunny ears and call it a day.)

Date: May 18th, 2011
Cate: development
Comments Off on GDC 2011

GDC 2011

I attended the Game Developers Conference up in San Francisco this year.

This was my first GDC, and I got a lot out of it – interesting discussions, meeting lots of like-minded strangers, and reuniting with friends I haven’t seen in years. It was held for about a week starting on February 28, so the timing on this writeup is comically poor. (let’s pretend you’re reading this a couple months ago.)


I loved hearing Andy Schatz talk about Monaco‘s history, namely, in how Monaco originated as a side-project borne out of frustration from another project. In a matter of weeks, this quick ‘n dirty diversion became an amazing full-fledged game (that’s at the top of my “things I gotta play” list).

I imagine this happens surprisingly often.  My game Flotilla bore a similar development cycle – Flotilla began as something to take my mind off another project that was being pouty with me (a very early version of Atom Zombie Smasher). I wanted to teach myself how to code 3D graphics, and Flotilla’s space combat fit the bill.

This also reminded me of something my college professor said.  He said that viewers can instantly recognize whether the filmmakers enjoyed making the film. Enthusiasm and energy have a way of just leaping off the screen. Alas, the opposite is also true – if you or your team is miserable, your misery and disgruntledness just oozes out of your work.

Another World

I wrote about Eric Chahi in a previous post, but one thing I wanted to add was how crazy is it that just one guy made the entirety of Another World. There’s such a beautiful recklessness in Another World’s design.

Chris Crawford

This was one of the best talks of the conference. Chris Crawford talked about very early video games & development and compared them against their modern counterparts. It was fascinating to see how in a lot of ways, “the more things change, the more they stay the same.”

It brought to my mind what I think is one of the more exciting aspects of small-studio independent development: failures are okay. Development time is fast enough and cheap enough to absorb failed experiments. Sinking and making a new & better rowboat is do-able. Sinking and making a new mile-long oil tanker? Lucy, you’ve got some ‘splainin to do.

IGF Awards

My game Flotilla was nominated for an award!  I got to sit in the fancy-pants roped-off area.  I didn’t win anything (Amnesia won it, and deservedly so) but just being there was damn exciting.


It was a joy listening to Peter Molyneux talk about Bullfrog’s history and Populous’ development. I especially loved hearing how much of the game design was made ad-hoc through happy accidents, futzing around in multiplayer, and discovering via the debug tools that “hey, lowering and raising terrain is actually kinda fun.” I love that excitement of discovery, and game development provides no shortage of it.

When you take a look at Bullfrog’s work, it’s really quite spectacular to see how diverse and forward-thinking their lineup is. Populous, Syndicate, Magic Carpet, Theme Park, Dungeon Keeper. The fact that all of those came from one company is very impressive.

There was a great surprise at the end of his talk. He fired up Visual Studio C++ on his system and attempted to compile his pet project. It unceremoniously fizzled out several compile errors. He eventually tracked down a pre-compiled binary and ran it.

It was Populous! But not just Populous, it was Populous with all the niceties you’d expect from a current game. The UI was modernized, the screen resolution was crispy, and multiplayer supported 256 players.  It was wonderful to see that an established developer like Mr. Molyneux still enjoyed mucking around in the code on fun hobby projects.

(doubly fun when you realize this Populous redux will likely never see the light of day due to legal/licensing reasons)

Strategy Games panel

This was a nice way to end the last day of GDC. The panel was a who’s-who of strategy game developers – lead designers of Starcraft II, Civ 4, Civ 5, and the Age of Empires games. One point brought up was the need to streamline strategy games, a genre often characterized with over-complexity and obtuse UI. I couldn’t agree more. I feel the user experience is of utmost importance – getting lost in a bank of 100 UI buttons is rarely a good way to start a game.

And to top it off, my game Atom Zombie Smasher was mentioned by the moderator Tom Chick during this panel talk. It caught me completely off-guard. Somehow, I managed to resist the temptation to whisper to my neighbor, “I totally made that game!

Date: May 16th, 2011
Cate: atom zombie smasher, patch
Comments Off on Atom Zombie Smasher v1.82 update

Atom Zombie Smasher v1.82 update

Atom Zombie Smasher v1.82 update is now available! The new goodie in this update is the hotkey UI. A number hovers above each mercenary, buy displaying their respective hotkey.

1.82 changelog

  • UI: added “Hotkey UI” to display hotkey numbers on mercenaries.
  • Mods: particle effect color when helicopter gathers civilians (HELI_GATHERCOLOR)
  • Mods: particle effect color when Zed Bait gathers zombies (NECTAR_GATHERCOLOR)
  • Fix: crash in cityscape UI renderer.
  • Fix: fixed bugs in territory generator.

    The Steam patch is now live. The non-Steam patch is available: here

  • Date: May 11th, 2011
    Cate: development
    16 msgs

    Civil Resistance

    I’m currently re-playing Half-life. At the moment, I’m heading into the mysterious Lambda lab, where I’m told the last hope of resistance lies.

    It’s a game worth re-playing, and it holds up remarkably well. But there’s another reason why I decided to fire Half-life back up. And it’s sort of embarrassing.

    Here it is: the first time I played it, I cheated my way through Half-life. Back when Half-life first came out thirteen (!) years ago, there were two sections of the game that consistently twisted my nipples and made me cry uncle: the underground rail-train chapters, and the Xen chapters. The former is because the soldier enemies are soul-crushingly brutal, and the latter is because I’m terrible at jumping puzzles.

    But now, I’m playing it honest. No more cheat codes, none of that monkey business. I’m enjoying it immensely; I guess somewhere in the past several years I picked up how to not play terribly. And in spite of inspiring a new wave of single-player first-person shooters in the intervening years, Half-life still impresses with its clever scenarios and puzzle-solving elements, not to mention having a deft hand at sprinkling its story bits.

    I love the world that Half-life creates. I love the variety of obstacles and the mysteries it raises. What’s the deal with the G-man? Was the resonance cascade intended to happen? Who sent the military? What was the extent of Black Mesa’s dabbling in teleportation experiments? Why is Gordon Freeman preternaturally inclined to bludgeon everything that moves?

    Facetious as it is, that last bit got me thinking. During the introductory tram ride, we’re informed Gordon Freeman is an MIT Ph.D graduate, and is now a research associate in New Mexico’s Black Mesa Research Facility. After the lab disaster, Gordon Freeman proceeds to spend the next several hours shooting rifles, throwing grenades, and firing rockets into hundreds of military personnel and extraterrestrial wildlife.

    So, as a thought experiment: what if Half-life was designed with zero combat? I’m not talking about a “remove bad guys” hack, I’m talking about if the game was designed from the ground up in such a way that Gordon Freeman never holds a gun. In fact, take any game with great worlds – Ultima Underworld, System Shock, Pathways into Darkness, Deus Ex.  In these games, there are many things you can do that don’t involve guns – could a full-length game be built around those things? Is run’n’gun combat a necessary part of this game genre? Is killing things needed in order to be commercially viable?

    The Portal games do just that. They’re first person shooters in that they’re played from the first-person perspective, but they eschew conventions of guns, ammo, reloading, and monsters running around. Players concentrate solely on puzzle-solving; Valve makes this even more frictionless by setting Portal in a test lab, creating a convenient mechanism for shuffling players from one puzzle arena to the next puzzle arena. It should be noted Portal is considered a relatively short game, as compared to its Half-life brethren; would Portal’s puzzley gameplay have worked if it was 11 hours long?

    I made a snack-sized game some years ago, Gravity Bone, that had this goal in mind. I wanted to make a game with a rich, colorful world of espionage and mystery, but arm the player with very un-gun-like “weapons”: a tray of wine, a ball-peen hammer, a Nikon camera. It was an experiment, and I was surprised to hear from a lot of people that they wanted more of this. Gravity Bone takes maybe 10 minutes to complete; I’d love to see how this type of game would stand up in a longer format.

    One full-length game that has taken and run with the no-guns approach is Amnesia: The Dark Descent. In most games, you shoot bullets into monsters, and the monsters drop dead. Not so in Amnesia. Basically, Amnesia is a thriller in which monsters can (and will) eat you, so your best weapon is to run and hide in a cupboard like a scaredy-cat. And boy is it effective. Every several minutes I have to pause the game and take a break, because I get way too wound up by all the spookiness.

    In closing: less guns; try it, you might like it.

    Date: May 9th, 2011
    Cate: atom zombie smasher, patch
    Comments Off on Atom Zombie Smasher v1.81 patch

    Atom Zombie Smasher v1.81 patch

    The Atom Zombie Smasher v1.81 patch is now available! Check out the Behind the Scenes feature in the Extras page.

    • Mods: parameter for controlling how often zombies chase humans (ZOMBIE_CHASECHANCE)
    • Extras: added Behind the Scenes page.
    • Extras: added Version History page.
    • Extras: added Newsletter page.
    • Fix: fixed mystery dynamite appearing at 0, check 0 position.
    • Fix: crash in dynamite detonation.
    • Fix: crash in texture renderer.


    The Steam patch is live! Get the non-Steam patch here.

    Date: May 3rd, 2011
    Cate: atom zombie smasher, development
    16 msgs

    How Braaaains Work

    Some time ago someone asked me how AI is implemented in Atom Zombie Smasher. So, here’s a short writeup on it.

    Braaaains 1

    In my first attempt at zombie AI, they began as mindless automatons. Here’s how they first worked:

    1. Find a random place to walk to.
    2. Walk there.


    That’s what zombies do, right? They like to take walks. It looks disgustingly simple, but was surprisingly effective. The zombies spread across the map in a fairly natural-looking way.

    A problem arose when the human population dwindled down to very small amounts. When just a few civilians were left, the game became awkward. These last holdouts had an extremely good chance of surviving for a very long time, due to how zombie wandering was left completely up to random chance.

    As a result, the finale of a map tended to drag in an anticlimactic way.

    Braaaains 2

    For my next attempt, I tweaked the zombie AI:

    1. Select a random civilian.
    2. Walk to that civilian’s position.


    Zombies were transformed into extremely efficient civilian-hunting machines. This fixed the problem of map finales dragging on – when just a few humans were left, they were promptly devoured.

    A new problem arose: the game was now nigh-impossible. Once a chain-reaction infection starts, it’s difficult to stop.  Due to how these new hunter-zombie powerhouses behaved, these chain reactions were now happening from the moment you started the map to the time you stopped. Furthermore, the cold efficiency in which they behaved was more akin to a special weapons team rather than rumpled zombies.

    Braaaains 3

    For my third (and final) version of the zombie AI, I combined the above two systems together:

    1. Zombie makes a random decision:
    2. 25% chance the zombie hunts a random civilian.
    3. 75% chance the zombie wanders the map randomly.


    This achieved the “rrgghh, brains!!” mindless behavior expected of zombies, but also ensured civilians were getting eaten at a reliable rate.

    But really: implementing zombie behavior is a bit of a cheat. One of the nice things about zombies is that if they behave stupidly, it’s generally accepted – after all, they’re zombies. A zombie is expected to act like a drunk fella, aimlessly stumbling around and making questionable decisions.

    The hard part was implementing believable civilian AI.

    Civ Brain

    Civilians are the currency in the AZS world: the more civilians you save, the better. As a result of that, it was important that civilians were fairly capable of self-preservation. Here’s what runs through a civilian’s brain:

    1. If I’m near a zombie, run away from it.
    2. If I’m in range of a rescue helicopter, run toward it.


    Civilians get a “panic” speed boost when running away from zombies, allowing them to outrun pursuers. During this panic state, civilians wear blinders – they run toward their destination with complete disregard for their safety. As a result, a panicked human during the beginning of a zombie outbreak has a good chance of surviving; panicking during the peak of an outbreak, not so much.

    An unintended effect of this speed boost was that the little civilian dots were given a wonderful little personality. On screen, you see a civilian dot wander near a zombie and high-tail it the other way at a sprinting pace. The abstracted visuals make it easy to fill in the blanks – you can imagine the civilian’s surprise at seeing the zombie, the crazy flailing-arms as they run away screaming, having no idea what street they’ve ended up on.

    Et al

    I find AI to be one of most difficult parts of game development. It’s very demanding on both a technical and design level.  AI is not my strong point, so AZS mostly designs around that – zombies are not expected to be intelligent, and civilians are prone to panic & hysteria during the end of the world.

    Games with good AI are rare finds. But when a game nails the AI, it makes a world of difference.  The Halo games are good examples of this.

    I’ll end this with a bot for Quake II that I thought was particularly clever, the Eraser Bot. Basically, the Eraser Bot learns from players. As you run around the map, you drop an invisible “popcorn trail” wherever you go. The bot then uses this data for its pathfinding. As you play more, you generate more path data, making the bots “smarter.” They begin to hunt you down with ruthless efficiency, taking unexpected shortcuts and sticking crazy trick jumps.

    Maybe I’m just terrible at shooters, but I found the bot’s effectiveness to be pretty frightening!

    Date: May 2nd, 2011
    Cate: atom zombie smasher, patch
    Comments Off on Atom Zombie Smasher v1.79 patch

    Atom Zombie Smasher v1.79 patch

    Atom Zombie Smasher v1.79 is now available! Lots of miscellaneous tweaks requested by various folks.

    v1.79 changelog:

    – Gameplay: fixed conflict between Elephantbird and Chooser gamemode.
    – Mods: Reload mod data button is now backslash (Steam version)
    – UI: added option to turn off tutorial tips.
    – UI: Improved the Fileshare’s scrollbar.
    – UI: Catbird was mistakenly labeled Elephantbird.
    – Fix: joystick now only updates if more than one player is enabled.


    The Steam version is now live. The non-Steam patch can be grabbed here.