Archive for April, 2011

Date: April 25th, 2011
Cate: atom zombie smasher, patch
Comments Off on Atom Zombie Smasher v1.77 patch

Atom Zombie Smasher v1.77 patch

Atom Zombie Smasher version 1.77 patch is now available. This patch includes a new gamemode, “Chooser”, where you choose which mercs to bring along. Here’s a screenshot of how the Chooser interface looks like:

Full v1.77 changelog:

  • Gameplay: added “Chooser” gamemode. Select mercenary lineup every month.
  • Gameplay: dynamite no longer required for mission start.
  • Mods: added FORCE_CHOOSER parameter to force the Chooser gamemode.
  • UI: press Enter to end planning phase.
  • Fix: fixed Combatant gamemode (was always on).
  • Fix: fixed typo in mine_triggertime parameter.
  • Fix: fixed “Bookworm” achievement.
  • Fix: crash when time values are too large.
  • Fix: crash in File Manager.


The Steam patch is now live! Grab the non-Steam patch here.

Date: April 20th, 2011
Cate: atom zombie smasher, development
1 msg

Urban Renewal Kit

Over the years I’ve become interested in procedurally-generated content. On the gameplay side, it provides a tremendous amount of replayability. On the production side, the bang-for-the-buck value is phenomenal.  I thought I’d take a moment and talk about how levels were created in Atom Zombie Smasher.

Street work

The level first starts off as a blank slate:

At this point, it’s just a big empty plot of dirt. I find a random spot and lay down a street:

Then, I start laying down the major “avenue” streets.  These streets are laid down in a such fashion to guarantee very large city blocks:

The major city blocks are now defined. I now divide these giant blocks into smaller pieces.  One-by-one, every city block is measured; if it exceeds a certain threshold size, I divide it with a street.

With that, the streets are all done!


Now that the roads are completed, the level is ready to be filled with buildings. The building population system is fashioned after how you pack furniture: first you pack all the big items (the sofa), then you take care of the small stuff (the sofa cushions). In this case, I first start with the large skyscrapers:

Notice the little empty plots of land neighboring the buildings. Tiny one-story buildings are now crammed into these these spots:

Finally, some of the buildings are replaced with stunningly beautiful city parks:

Done!  People are then distributed throughout the streets, ready to be either rescued or eaten alive.

Et al

This is an extremely straight-forward way of creating a city – there aren’t really any surprises in how it works. It’s based on a grid, making it very easy to check for intersections, overlaps, building sizes, and such. It’s fairly fast; the load time is hidden when the map zooms down from the world map to the city map.

If I was to return to this, I’d integrate more gameplay rules into the city generation. For example,  creating “districts” (residential, industrial) characterized with certain buildings, building behaviors, population types.

Furthermore, something I’d like to try to tackle is non-perpendicular streets and buildings.  This would allow for things like curved roads, round-abouts, etc., and introduces more variability than a straight grid provides.

At any rate, give procedural content generation a try.  I specifically love how such content gives every player their own one-of-a-kind experience, a custom map that only you will ever get to play. This is something very unique to video games. My favorite description of Atom Zombie Smasher is from Tom Chick, who said it “uses tiny dots to create moments of drama.”  I certainly didn’t author any insightful dialogue or thought-provoking art — the game systems organically conjure moments where civilians are put in back-against-the-wall situations.

Some wonderful games that focus on procedural content – Darwinia, Dungeon Crawl Stone Soup, Minecraft, and my beloved X-com.  I will never forget my best sniper in X-com, Abraham Lincoln.  You had a clean shot across the map, and you nailed it like the best damn 16th president of the US of A.

If you haven’t played these games, then do so!

Date: April 12th, 2011
Cate: development
1 msg

Unkempt Activity

I visited the Game Developers Conference this year and was fortunate enough to listen to Eric Chahi’s Another World retrospective. Another World remains one of the most beautiful and forward-looking games I’ve ever played.  It was a game with a fantastic cinematic feel, made before games with cinematic feels even existed, and commits itself so wholeheartedly in creating a bizarre universe you’re aching to explore.

Something I loved hearing: after Eric Chahi created Another World’s introduction sequence, he then thought, “okay, so the character gets zapped and disappears. I guess I now better figure out what happens to him.” In hindsight, this improvisational style seems obvious.  First you’re racing from a cave flood, the next moment you’re in the cockpit of a gladiatorial warmachine.  I have no doubt Eric surprised even himself during development, and it’s that spontaneity that gives Another World so much charm.

On my own projects, I usually begin with a rough idea and just start implementing it.  I find the most interesting ideas never just float around in the ether. They’re buried inside the creation process, waiting to be unearthed.

A broad example is level creation. At one time, I used to spend a lot of effort in the paper sketch phase, planning out how a level would work. The catch was: once I laid down my first few blocks in the world and viewed it from my character’s point of view, I’d see new, better connections everywhere.  “Ooh, adding a tunnel going under there would work great!” That unplanned tunnel then starts the domino chain-reaction redesign of the neighboring areas, and the paper sketch becomes instantly outdated.

(Though, I do think paper sketches and documentation are important.  It serves both as a good starting point and a way to get a grasp of the high-level “big picture.” If there was a way to feed paper documentation into a machine and pop out a completed game, that would make the process a whole lot easier, albeit less fun.)

A friend once described this approach as Termite Art-esque, referring to the Manny Farber White Elephant Art vs. Termite Art essay.

Good work usually arises where the creators seem to have no ambitions towards gilt culture but are involved in a kind of squandering-beaverish endeavor that isn’t anywhere or for anything. A peculiar fact about termite-tapeworm-fungus-moss art is that it goes always forward eating its own boundaries, and, likely as not, leaves nothing in its path other than the signs of eager, industrious, unkempt activity. […] The best examples of termite art appear in places other than films, where the spotlight of culture is no where in evidence, so that the craftsmen can be ornery, wasteful, stubbornly self-involved, doing go-for-broke art and not caring what comes of it.


Though I’m completely bastardizing the point of the essay, I love that description of nibbling forward purely for the love of nibbling. Is it a smooth ride?  No.  Will it function well? Probably not.  Will it appeal to a mass audience?  Not a snowball’s chance in hell.

But it’s damn satisfying on a personal level. There’s great joy in diving headfirst toward a direction you think is interesting.  That joy is reflected in your work, and players instantly recognize it. When people write to me asking about game development, the best suggestion I always have is: just start making something!


Date: April 11th, 2011
Cate: atom zombie smasher, patch
Comments Off on Atom Zombie Smasher v1.73 patch

Atom Zombie Smasher v1.73 patch

More patchy goodness:

  • UI: added music links to main menu.
  • UI: added file count to File Share.
  • UI: fixed File Share scrollbar.
  • Mods: new nighttime length parameter (NIGHTTIME_SECONDS).
  • Fix: added error popup for audio crash.
  • Fix: ensure outbreak cities always have correct population.
  • Fix: fixed crash when BARRICADE_LIFETIME is too high.
  • Fix: fixed various city size-mod crashes.
  • Fix: fixed crash in when retrieving vignette data from profile.

Audio woes

For those getting an audio crash upon startup: the problem seems to be related to the OpenAL audio library I’m using.

Apply the 1.73 AZS patch and run the game normally.  If the audio crash persists, a popup window will now appear, asking you to download the latest OpenAL audio library from the official OpenAL site.

Direct link to the latest OpenAL library: click here

Mac build

I’ve been puzzled by why AZS works on some Macs and not on others. After talking with some Mac users, I believe the problem is related to the operating system being used. In short, Mac OSX 10.6 and above works fine, whereas anything below 10.6 may not work.

Mac OSX 10.6 has an updated OpenGL implementation, whereas OSX 10.5.8 does not.  Apparently,  upgrading to a newer operating system is the only way to acquire this newer OpenGL implementation.

If anyone has any further insight (or corrections) about this, I’d love to hear it.

Get patching!

The Steam patch is now live. The non-Steam patch can be grabbed at this page.


Edit: non-Steam patch had the wrong version number and is now fixed.


Date: April 6th, 2011
Cate: development
5 msgs

Primordial Soup

While tidying up my hard drive, I found some old Doom II maps I made back in the wild and woolly days of the twentieth century.  Everyone starts somewhere, and for me, Doom II mapping was where I got interested in game development.

According to the timestamp on the map files, I made these maps somewhere around 1997-98.  Yes, while all the cool kids were playing GTA and Quake 2, I was going nuts over making Doom II maps.  I’d love to say I was making a profound artistic decision, but honestly, it was entirely because my computer just couldn’t handle new games.  I had an ancient 486DX computer, way out of league from the fancy new-fangled Pentium machines.

But, that didn’t bother me.  Just being able to make little worlds and then exploring them was absolutely thrilling.  I grew up playing games with stories and characters, specifically the Sierra adventure games and the LucasArts adventure games. So, my first instinct was to make maps with some sort of narrative.  Considering the game engine wasn’t designed for this (and combined with the fact I was still learning how to even use the tools), achieving this was remarkably difficult.


See that door at the end of the hall?  I was so intensely proud of that door. The door is slightly ajar; squeezed beneath it is a bloodied corpse.  Beside it is a wall switch, presumably to activate the door.

But here’s the gag that (I thought) made this door brilliant – the wall switch did nothing.  You press it, the door doesn’t move.  In order to open the door, you have to click on the door itself.  In my mind, I saw the player having to manually lift up the metal barricade with his hands, straining against the door’s whining servo motors.  It looked so amazing in my mind!

And then when you actually play it, it just looks like a bug.  The designer forgot to link the button to the door – how lazy!


I struggled with creating some semblance of a scripted sequence.  Basically, everyone in Doom II just wants to shoot you – there’s no real latitude given there.  You do, however, have control over the environment. As a result, most “scripted sequences” basically boiled down to “walk onto a pressure plate and a wall opens.”

In this case, a wall of crates slides down to reveal some baddies.  Why would a contractor construct a facility where the crates slide down a few feet?  I have no idea why.


Somewhere around this time, previews for Half-life were popping up.  And it blew my mind.  Levels based on realistic environments?  A strong focus on storytelling?  Allied characters who helped you out?  It was like Valve peeked into my brain and said “let’s make the perfect game for this guy.”

I made this map in anticipation of Half-life, modeling the facility as if it could be a liveable, useable place.  There’s a warehouse, an office, a break room, all of which I thought was very novel at the time.

The level also foretold the name of a future Valve game.  My divination powers used to be so strong.


This level is an unashamed recreation of the first level of Dark Forces.  What a spectacular game.  I’m not sure what voodoo magic LucasArts was dabbling in, but that amazing string of X-Wing, Tie Fighter, Dark Forces, and Jedi Knight made it all worth it.


And here, at long last I achieved something I had been trying to do for a long time: a scripted sequence with a character.  It’s a terrible sequence, but dag nabbit, it’s a sequence nonetheless.

The premise is that you and your commando sidekick are sent into a dangerous enemy hideout.  Your buddy steps into the teleporter and is zapped there.  You follow suit, and in a grotesque freak accident, teleport at the exact same spot where your buddy is.  The laws of physics demand no two objects can exist at the same spot. Your buddy bursts open, like a hefty bag of tomato soup dropped from a ten-story building.

It’s a terrible sequence.

Morbidly Curious

For the morbidly curious, all of the above levels can be downloaded from this link.  And if you think the above stuff is bad, you should see the stuff I lost in my hard drive crash. Yikes.

And on a closing note, I’ll mention an very impressive mod I recently played, Research and Development.  It’s a great set of levels that de-emphasizes combat to a wonderful extreme.  If you haven’t played it yet, then do so now.  Go ahead, I’ll wait.

It’s interesting to see how mods have changed.  Simply, making mods now is so much more complex.  Making a mod for Doom II was basically “connect-the-dots” – put down four vertices, connect them with four walls, and bang! You got a room.  Since then, making a map has exponentially grown more elaborate.  Shaders, normal maps, specular maps, scripting, pathfinder mapping, visibility, cinematics – yes, people are more tech-savvy now, but the barrier of entry has likewise shot up at an alarming pace.

I feel to some extent that modern independent game development has co-opted mods.  I think the same people who would’ve been constructing Quake mods as a hobby are now indie game developers.  With the internet as a viable distribution outlet and so many tools freely/cheaply available, it seems there’s little reason to not just roll your own game – depending on your skillset, it’s sometimes even easier to make a stand-alone game.  I see that same crazy “let’s make something bonkers” spark in indie games that I once saw in the days of QPong, Lithium CTF, and Team Fortress.

People want to be creative, and love expressing that creativity. Hence, the success of things like LittleBigPlanet and Minecraft.  Making mods gave me my start, and I’m certainly curious to see how mods will look like and change years from now.

Date: April 4th, 2011
Cate: atom zombie smasher, patch
2 msgs

Atom Zombie Smasher v1.72 patch

Version 1.72 is out!  Full changelog:

  • Gameplay: fixed Zed Bait last-saved positions.
  • Gameplay: zombies & humans can no longer both get points from same territory.
  • Gameplay: ensure populations are always set during No Quarter games.
  • UI: add UI that highlights dynamite.
  • UI: added scrollbar to File Share
  • Mods: fixed mod loading when continuing a savegame.
  • Mods: Zed Bait parameters now accept decimal values.
  • Mods: Mine damage parameters (MINE_MAXDAMAGE, stuff MINE_MINDAMAGE)
  • Mods: Mine trigger delay (MINE_TRIGGERTIME)
  • Mods: allow milestones to be triggered on both zombie and human track.
    • MS_CABIN_Z
  • Fix: fixed crash in File Share.
  • Fix: fixed crash in mod diff viewer.
  • Fix: fixed crash in finale audio.
  • Fix: added error-checking for some ATI video cards.


The Steam update is now live.  Get the non-Steam patch by clicking here.