≡ Menu

Combat Chatter as AI Enhancer

Here’s one of my favorite little pieces of game AI wisdom from Jeff Orkin:

There is no point in spending time and effort implementing squad behaviors if in the end the  coordination of the A.I. is not apparent to the player. The squad behavior layer gives us an opportunity to look at the current situation from a bird’s eye view, where we can see everyone at once, and find some corresponding dialogue sequence. Having A.I. speak to each other allows us to cue the player in to the fact that the coordination is intentional.

Vocalizing intentions can sometimes even be enough, without any actual implementation of the associated squad behavior. For example, in F.E.A.R. when an A.I. realizes that he is the last surviving member of a squad, he says some variation of “I need reinforcements.” We did not really implement any mechanism for the A.I. to bring in reinforcements, but as the player progresses through the level, he is sure to see more enemy A.I. soon enough. The player’s assumption is that the next A.I. encountered are the reinforcements called in by the previously speaking A.I., when in reality this is not the case.

Wherever possible, we try to make the vocalizations a dialogue between two or more characters, rather than an announcement by one character. For example, rather than having the A.I. cry out in pain when shot, we instead have someone else ask him his status, and have the injured A.I. reply that he’s hit or alright. When the A.I. are searching for the player, rather than having one A.I. say “Where did he go?”, we can have two A.I. in conversation where one asks the other if he sees anything. The other A.I. may respond with a negative, or call out a known or suspected position.

We also use dialogue to explain a lack of action. If an A.I. taking fire fails to reposition, he appears less intelligent. We can use dialogue to explain that he knows he needs to reposition, but is unaware of a better tactical position. The A.I. says “I’ve got nowhere to go!”

A gamer posting to an internet forum expressed that they he was impressed that the A.I. seem to actually understand each other’s verbal communication. “Not only do they give each other orders, but they actually DO what they’re told!” Of course the reality is that it’s all smoke and mirrors, and really all decisions about what to say are made after the fact, once the squad  behavior has decided what the A.I. are going to do.

— Jeff Orkin from Three States and a Plan: The AI of F.E.A.R

I always love to hear about little smoke and mirrors tricks that developers can use to make players believe that AIs are doing more advanced things than they actually are. The technique that Jeff describes here is one of my favorites – it adds so much depth without really adding any depth at all.

While playing games for fun, I’m often on the lookout for examples of this. Recently I was playing RAGE and listening to the AIs yell at each other during combat. At one point one of them yelled, “He’s flanking us!” Maybe technically I was flanking them, but at the time I was running around in a circle like an idiot trying to get a swarm of dudes off of me. I was firing constantly and throwing out grenades and stuff. I wasn’t doing anything resembling strategy or tactics, I was just in complete desperation survival mode.

This dialogue was really disruptive for me as a player, and totally took me out of the gritty wasteland combat and into ‘trying to figure out the smoke and mirrors land’. I think maybe it’s a good lesson to keep in mind moving forward: if you’re going to use dialogue to enhance your AI, be careful about having NPCs TELL the player what he/she is doing. Because the player KNOWS what they’re doing, and if the two don’t match up then it can seem very out of place. It’s a major breaker of the ol’ suspension of disbelief.

To be fair, if that dude had said – “Finish him off, he’s flailing around like a moron!” I would have been VERY impressed.

{ 1 comment }

The Fifth Zombie Conversational Postmortem

I always find the process of writing a postmortem to be useful, and I wanted to do one for The Fifth Zombie. My buddy Greg did all of the art for this project, and he’s never made a game before this one – so I thought this would be a good opportunity to do something a little unique.

So here’s a ‘conversational postmortem’ (AKA GMail chat session) between Greg and I discussing The Fifth Zombie’s development process. It’s totally candid and casual, enjoy!

Steve: So the normal format for something like this is pretty straightforward: what went right, what went wrong. I think it’s probably a lot more interesting to hear what you are thinking, especially since you’ve never worked on a game before.

Greg: Well, I’ve wanted to be involved in video games since I was a kid.

Steve: Why are you chatting me from two separate windows simultaneously?

Greg: Sorrryyyyyy… Reemiiiiiixxx. Ok, we good?

Steve: Yeah.

Greg: Ok. So,  I’ve wanted to be involved in video games since I was a kid. But seeing as I have zero working knowledge, it never really seemed likely. So when you brought up the idea for The Fifth Zombie i was pretty jazzed.

Steve: Yeah the hobbyist video game world is pretty sweet now, honestly. There’s tons of available tech to make whatever you want. I would have KILLED for this stuff as a kid. I had to spend all of my time screwing around with DOS mode 13h.

Steve: The problem I have with these small games is I can do anything on the tech side, but when it comes to anything artistic, I am beyond horrible. Seriously – find a good artist and tell them to draw the worst thing they can imagine. Guaranteed I can top it, effortlessly.

Greg: haha, I loved your placeholder art. That squiggly zombie was incredible.

Steve: Sadly, that zombie is probably my finest work.

Greg: Yeah, and I have only been drawing on the computer for a little while, so I think it took the right project for us to work together. The ‘Story Game’ theme and storybook idea just fit.

Steve: There aren’t a whole lot of game types that we could have just jumped in and made with our exact skillsets, right? Storybook game is pretty much the only one.

Greg: The fact that we couldn’t really do animation was pretty limiting, but worked for the theme.

Steve: Hey, I made that page turning animation.

Greg: You made that?

Steve: It probably took me longer to make that than to make the whole rest of the game.

Greg: The game really wouldn’t work without it. We needed to literally TRANSPORT people to a world where they were reading a book.

Steve: I had visions of this really sweet page turn animation, like a classic Disney movie intro or something. Reality hit that vision pretty hard.

Greg: Yeah, well I had some pretty sweet visions too… that didn’t work out. I had a ton of fun drawing for the game, but it was just super rushed.

Steve: Probably our biggest mistake was only leaving two days to make the entire game.

Greg: haaha yeaahh. If anyone is working on a game, I would not recommend taking that same month to apply to grad school.

Steve: Solid advice.

Greg: I thought i had it pretty under control, and then I wrote a list of what art I actually needed to deliver. This was two days before it was due, and I immediately thought: “there’s no way”.

Steve: I think your art turned out pretty awesome, but the quality level pretty clearly dropped as the end of the project approached… and your carpal tunnel set in.

Greg: At 2 a.m when my wrist felt like it was going to break off… not so smart.

Greg: It’s funny you say that, because some of my favorite art is the later stuff. The simpler it got, I almost enjoyed it more.

Steve: Which were your favorite 2 or 3 drawings? I really liked the grave scene, the death at the Forgotten Cave when sneaking out, and the hero sleeping in his bed.

Greg: I think the fat zombie was number one for me, he was just a lot of fun to draw. Originally all the zombies were going to look the same, but with different colored shirts – we had discussed Ninja Turtle colors. But then you brought up the idea of a fat zombie, and it just made so much sense.

Greg: I’d love to know his back story. Was he fat before he became a zombie? Or is he a brains glutton?

Steve: Dude needs to get on P90X or something. Drop a few pounds, get back in the hunt.

Greg: Seriously. That’s why in the scene where you get eaten outside the cave, he is the last one in line. He is too fat to catch up.

Steve: That’s one thing I wish we had done a better job of: giving each zombie some kind of perceivable backstory. More personality. The fat zombie is great, but the other 3 are totally generic.

Greg: Yeah, for sure.

Steve: That was really a script problem from the start.

Greg: I think with a few subtle changes we could have added a lot of character. Maybe one has a Starbucks uniform?

Steve: We should have made one of the zombies totally obsessed with Van Halen. You can defeat him with power chords. The Axe of Destiny turns out to be a sweet guitar?

Steve: We also could have done more involved battles than just ‘brass knuckle smash’ or ‘sword stab’ or whatever. There were a few things in there to make it interesting, but they were pretty bland overall.

Steve: We should have had the battle with the fat zombie end with you tricking him into eating himself, like Pizza the Hutt.

Greg: I think stuff like that could have added a lot. I think the zombie encounters in general could have been a lot better. We had originally talked about them being these intense scenes where they would slowly start communicating with you. And then eventually you get to the fourth zombie, and it’s more of a conversation than a battle. But obviously with 2 days to go we just winged it.

Steve: Yeah, the biggest problem with the script is that we never really iterated on it before trying to crank out the entire game. I had the basic idea, which I thought was pretty cool. And then I wrote up a rough draft in like an hour… and that’s pretty much what we went with.

Greg: I think we just kind of assumed it would write itself as we went

Steve: There’s a good lesson takeaway: Things do not write themselves.

Greg: I think next time we would write a much more compelling script, and build the game around that. We need an actual script that’s good, not just a good high level idea.

Greg: Then there’s the intersection of story/art/game. Take the Revolver of Truth for example: You loved the idea of a revolver, as did I. But I could not, for the life of me… draw a revolver.

Steve: Yeah, I posted a link to the game on the Unity forums – one of the first dudes is like: “Just have to point out that the Revolver of Truth is obviously a pistol, and not a revolver. I thought there would be some special meaning to this later, but I couldn’t see any. Am I missing something?”

Greg: haha, I thought that too!

Steve: I did too, but I was hoping that nobody would notice.

Greg: The only way I drew the gun that’s in the game is that I literally held my Glock in my hand and took a picture.

Steve: You held your what in your hand?

Greg: My glock.

Steve: Even though the art didn’t fit ‘revolver’, Glock of Truth just sounded so wannabe gangsta to me. Instead of high-class, dignified zombie slaying. It was the lesser of two evils.

Greg: Yeah, revolver art would have worked so much better. Although I challenge anyone to draw a revolver free hand.

Steve: Let’s have a revolver drawing competition, I bet I can take you.

Greg: I’m sure you can. Mine looked like an umbrella.

Steve: I guess the lesson there is that people always will notice those little inconsistencies, and inconsistencies can really take them out of the experience. Even if it’s an experience about a little kid battling 5 zombies, consistency is super important.

Greg: Yeah, I think if you make a world you need to stick to that world and its rules, or else you risk taking people out of it.

Steve: No doubt about it.

Greg: Like you said… it’s a game about a kid killing zombies. But I felt like if we had made any sort of pop culture references, or mentioned anything in our world it wouldn’t have worked. In my mind this village was a Dragon Quest village on some island in the middle of the ocean. The only thing on the island is the cave, the lake and the town.

Steve: I think that’s the safe play, but some quirky stuff from our world ‘slipping’ through can be really interesting: like the idea that one of these zombies used to work for Starbucks, or that his favorite song is Runnin ‘ With The Devil. Killer guitar on that one.

Greg: haha, yeah that’s true. Little connections here and there can be pretty sweet.

Steve: That’s kind of why we went with this: “… the year was 1998″ intro, right? To give some of that weird “long time ago in a galaxy far, far away…” feeling.

Greg: That’s true, I kind of forgot about that.

Steve: Like maybe this really happened in our world somewhere, but maybe not. Maybe it happened in some other world a lot like ours.

Steve: I do love the idea of these little microcosm worlds, where literally the only thing in existence is an island, 10 people, and a cave.

Greg: Yeah… I kept imagining the beginning of a ENIX RPG.

Steve: I always think about game ideas along those lines. Like that UFO game – it’s just a man, a camera, and a lake.

Greg: There’s also disappointment . Don’t forget disappointment.

Steve: Yeah, there was also sadness, loneliness, etc.

Greg: It’s a minimalist game world where you really have to fill in the cracks and gaps.

Steve: I guess those are the real important parts of the experience.

Greg: When you give the gamer so little, those universal emotions help keep them in it.

Steve: I think the ending of the Fifth Zombie turned out pretty well, but the beginning wasn’t so hot. I wish we had worked on helping the player care about the family more.

Greg: Yeah, if we redid the game I think we would focus much more on the story and the player’s connection with the characters. And WAY more choices. I feel the experience could have been much deeper if we added a lot more things to do, which obviously we had to cut due to time.

Steve: Yeah, plus maybe some choices that weren’t instant dead ends. That was the original idea, but time struck us down.

Greg: I guess that’s the number one thing I took from this experience: time. Make sure to spread out your work.

Greg: I had a great time working on this, and it was awesome to have a hand in making something that people can actually play and experience. It’s a really cool feeling. It’s so much more of an experience to me than reading a book, or looking at a picture.

Steve: For me, the bottom line is that I just really like making things.

Greg: It was a great experience that really showed me I have so much to learn, and a lot of practice ahead. But it was so much fun, I’m ok with that. Not everything you make is a masterpiece, it will never turn out exactly how you want it. All you can do is learn at each step and apply that knowledge to your next project.

Steve: It sounds kind of weird to say, but I generally have way more fun making games than playing them.

Greg: I think that’s pretty sweet. Sometimes I will sink a couple hours into a game and afterwards think: “I gained 1400 XP… but what did I really do? I gained nothing”. At least making something, you will always have it to remind you of the work you put in.

Greg: I love looking at things I was drawing even a year ago, and wonder: “Who was that person?”

Steve: It’s a major bummer when you play a game for a while and afterwards you think, “All I did was push buttons for an hour.” Sometimes it’s awesome, but a lot of the time it’s just pushing buttons.

Greg: Yeah… that’s why something like a Team Ico game will put me back into the “game crazy” mindset. They are such an experience I don’t feel guilty… I feel like maybe I’ve been reading a good book, or been at an art exhibit or something. They’re good on so many levels I can actually justify not doing my homework and playing them instead.

Steve: There are still plenty of games that I feel worthwhile playing. Even something like NHL 12, which is not an artistic masterpiece. We play that all the time, but it’s more of a way to hang out with our friends than anything else.

Greg: Yeah for sure. Look at how much more we’ve gotten together since we started playing NHL. We share this thing, its pretty special. Not to mention the accomplishments.

Steve: I mean we scored 7 goals in a single game. That’s something to take to the grave.

Greg: I’m a changed man now. I feel like I will be telling my kids about that game someday.

Steve: Well, this seems like probably a good place to wrap this up?

Greg: Sounds good.

Steve: In conclusion: pace yourself, keep your game world consistent, actually write the story, and GO BRUINS!



The Fifth Zombie

Here’s a small game that I made with my buddy Greg called The Fifth Zombie. I had the idea for this story while brainstorming puzzles for Hero Test, and the Experimental Gameplay Project theme for this month (Story Game) seemed to fit it perfectly. It’s not super interactive, but I think the story idea is solid and Greg’s art is awesome (check out his blog here). We were really trying to play up the theme a lot, and make it feel like a storybook being written as you play. It’s part video game, part ‘choose your own adventure’, part comic book/graphic novel.

Play The Fifth Zombie right in your browser by clicking the image below. Make sure to have your speakers on.

You can also download the game for Windows here or Mac here.


The Fifth Zombie was developed with Unity3D and my friend Alex’s awesome Playmaker plugin. I used Paint.NET to hack out crappy placeholder graphics and the main menu. Greg used Manga Studio and Photoshop to make the good graphics throughout the rest of the game. I used Audacity and my iPad to make most of the audio.

We talked about making this game for a lot of September. We threw ideas around and did a quick two-screen test prototype early on, but didn’t get time to work on  The Fifth Zombie legit until a few days before the deadline. All things considered I think it’s a solid experience, and I’m proud of it. When The Fifth Zombie was done, I had fun playing it – and that’s always a good sign. Hopefully if you’re reading this, you had fun with it too!

Some Links

Check out the other ‘Story Game’ entries.

Make sure to play Story Hero, my favorite entry. This is an AWESOME idea I wish I had thought of.

And here’s the Fifth Zombie thread on the Unity3D forums.


Free Stanford ‘Intro to AI’ Class

Stanford University is going to be offering next semester’s Intro to Artificial Intelligence class online, for free! If you’ve ever wanted to learn about AI, now’s your chance. Personally I’m a huge fan of this initiative, and hopefully many other colleges offer similar programs moving forward. I’m hoping that I have enough time to follow along myself this fall.

Check out the website here, or follow @aiclass on Twitter if you’re interested.

PS: I’ve gotten a few emails about the source code to BookWormTris. It’s now included in the blog post, so check it out if you’re interested!



The theme for this month’s Experimental Gameplay Project is: Mashup. I decided to combine Tetris and Bookworm, which are two of my personal favorite

You really need a physical mouse for this one, it’s probably tough with a trackpad. You use WASD to control the falling pieces, and then you left click and drag over letters to make words. Spell longer words to maximize your score.

Click the image below to play:

More Details

I made this game in two evenings after work. The first night I implemented all of the basic mechanics and gameplay, and then on night two I “made graphics”, wrote a song, and added some UI and instructions.

I used the Unity engine with Visual Studio, Garageband on my iPad for music, sfxr for sound effects, and Paint.NET for the graphics.

I think this game idea has a lot of potential, although the current input scheme is pretty brutal. Running two very different input schemes at once is kind of cool, but will probably be a nightmare for “non gamers”. I think the basic idea is fun though, and I actually had fun playtesting – so that’s always a good sign.

If I had spent more time on BookWormTris, then there are some definite improvements that can be made. June was a busy month for me though, and I didn’t have a chance to spend more than a few hours on this one. Maybe I’ll come back to it someday, tune it up a little.

Source Code

You can download the full Unity project here!


Chance of a Lifetime

Chance of a Lifetime is a small game that I made this week. It’s about a lonely man with a dream of snapping a clear photo of a UFO.

You can click the image below to play it in your browser. I’ll add Windows and OSX binaries here at some point in the future also.

Continue reading below for more information (with spoilers)…

The Basic Idea

I wanted to make an entry for this month’s Experimental Gameplay Project competition. My first idea turned out to be HORRIBLE after about 2-3 hours of prototyping, so I started over and made Chance of a Lifetime.

I’ve always been obsessed with the idea of creating a documentary video game. This definitely isn’t it, but I guess it’s one (small) baby step towards what I think one might be like. It’s also another product of my recent obsession with the ‘failure’ genre that I started exploring with Hero Test.

Chance of a Lifetime is probably more short story than video game.

This game was made in about two or three nights after work, and one weekend evening. I didn’t spend very much time on it, so there’s a lack of polish – but it’s the best I could do in the time i had. It probably took me longer to make the terrain/level than it took to make the whole rest of the game.

The Technology

I used the Unity3D engine. I also used two awesome addons: Playmaker and iTween. All of the game logic in Chance of a Lifetime was authored in Playmaker, with the exception of the camera. I used iTween for the UFO paths and movement.

The Media

Almost all of the visual assets used are stock Unity assets. I used a UFO that I found on 3D-Animation.com.ar.

My buddy Greg came over one night after work to record the voices.

I made the outtro song in Garage Band for my iPad. It only took about 10-15 minutes. I have no musical ability at all, and this definitely sounds a Hell of a lot better than anything I’ve ever made before – so if you’re looking for a music track to quickly jazz up your game, then I’d definitely recommend giving Garage Band a shot.

I edited graphics and audio with Paint.NET and Audacity.


Experimental Gameplay Project – Zoom

The Experimental Gameplay Project’s May theme is: “Zoom”. I’m planning on making a game for this one, although I haven’t had any good ideas yet.

If you want to check out the entries from last month (theme: “Cheap Clones”) click here.


RunJumpShoot in the Wild

I just wanted to throw up a quick post and link to a few games that have been made using my RunJumpShoot starter project for Unity3D.

Here’s Twilight Dash – a free/ad-supported game for iPhone/iPad:


Here’s one that lets you call in a helicopter strike:


A month or two ago a developer sent me a link to a crazy game being made with RunJumpShoot that featured Clowns and Mimes – your weapon was a baguette. Unfortunately the link seems to be down right now.  Edit: Here’s the link:


If anyone else ends up creating a game with RunJumpShoot, send me an email and I’ll link it up here.


Hero Test Postmortem

Next weekend (April 29th -> May 2nd) is the 20th iteration of the Ludum Dare 48-hour game development competition. I won’t be participating, but I did want to spend some time writing up a quick postmortem of Hero Test. Hero Test was originally developed for MiniLD 25 and also (coincidentally) the March/April Experimental Gameplay Project. If you want to check out the game, the original blog post is here. Definitely play that first (you can right in your web browser) before reading this postmortem.

Let’s get down to it!

My Attempt at a New Genre

My main goal with Hero Test was to create a game based completely around failure. I wanted to explore a new genre: the Failure genre – or alternatively, the Robo-Asshole genre. Is this an interesting space to explore? A game where you can only really fail? I’m always a fan of negating expectations/assumptions in order to try something new. Just about every game includes some sort of concept of progress/success as a fundamental building block – so why not remove that and see what happens?

The feedback I received was very positive, actually surprisingly positive. People liked Hero Test, but remember it’s only about 10 minutes long. I doubt players would put up with shenanigans like this for much longer. It would be a major stumbling block for the Failure genre if players would only put up with games that were 10 minutes long or less. On the other hand, I did get multiple messages asking for a Hero Test II – that’s always a good sign. I have some ideas, maybe I’ll try one out for a future 48-hour game.


The reaction to the Observer2000 character was, by far, my most important takeaway from Hero Test. People HATED Observer2000. HATED.

Here’s some feedback that I received:

  • I wanna shoot that bitch talkin.
  • My avatar has no hands, and I must punch this game in the face.
  • I want to shoot that piece of crap robot.
  • Who does this Robo-?$@%@$ think she is?
  • … and many other variations on these themes.

People were really, honestly pissed off at this character. True emotion. The interesting thing here is that Observer2000 has none of the components that you generally think of when someone says ‘game character’. There’s no animation, no model, no textures, no stats, nothing resembling true AI, almost nothing at all. Observer2000 is literally just a handful of audio files tied to some game mechanics and triggers. None of this stopped players from thinking about, or referring to Observer2000 as a ‘she’, a ‘robot’, a ‘bitch’, a ‘piece of crap’, or a ‘Robo-?$@%@$’. That’s pretty cool.

When working on game AI, I’m always looking for ways to connect players to the virtual characters they are interacting with in a meaningful way. It’s cool to see such a lightweight success story. In a lot of ways, the super-abstract nature of Observer2000 helped players connect with the character. Make something frustrating, throw a cool robot voice effect down, and poke at the player a bit and you get a reaction. This is definitely a lesson for me in the future, at least when working on small games: consider making your character smaller and more abstract than you think it should be. People might develop a stronger connection. A lot of players experienced this idea in Portal, a game that Hero Test is heavily inspired by – obviously.

How to Introduce Total Failure?

When I first started working on Hero Test, I wrote down a whole bunch of ideas of potential ‘tests’. I only ended up using about a third of them in the game, and the first one is the ‘Test of Speed’. In this test, the player is hitting a button and trying to run through a door before it closes. There is no more classic game mechanic! It’s actually one that I almost always really hate in games, which is one reason why I wanted to make this the first test.

I thought it would be hilarious to prompt the player to “run” and do a “dive and roll” in order to make it through the door, but in reality pressing the keys does nothing. Here’s how I imagined it going down from the player’s point of view:

  1. Ok, let’s press this button and head through the door.
  2. What the Hell, I didn’t make it? I’ll try again.
  3. Press shift to run, ok. Why am I not going faster? Damnit, the door slammed. I’ll try again.
  4. Press R to dive and roll through the door? I can barely even walk, maybe something funny is going on…

I thought the concept of diving through the door would be clearly ridiculous (based on how primitive the movement and presentation of the game is) and trigger some thoughts questioning the experience… but a few players just thought that the game’s controls were broken. In retrospect I think that I probably should have used the ‘collect the orbs’ puzzle as the first level. This one doesn’t involve any control confusion, just simple movement and absurd failure. I think the ‘broken’ control trick would have been a better one to pull later on in the experience when more of the audience is in on the joke.

Playmaker and Unity

One of the main reasons I decided to develop Hero Test was to test out my friend Alex’s Playmaker plugin for Unity on a “real” project. Playmaker is a visual state machine editor, and it is awesome – highly, highly recommended. When you really get down to it, a huge percentage of game components turn out to be finite state machines – and Playmaker does a fantastic job of automating the creation, maintenance, and execution of FSMs in Unity. I have a hard time imagining working on a personal project with Unity in the future and NOT using Playmaker.

If you want to see what the workflow of developing a game with Playmaker looks like, here is a timelapse video I made of the Hero Test development.

FSM Structure

Looking back over my project, I made the totally amateur mistake of letting my FSMs get overcomplicated. This honestly wasn’t a real problem, since the complexity never reached a level that made maintenance difficult on a project of this scale – but I know that next time around I will be able to do a much better job. There were three major things that lead to this complexity:

  • I only had 48 hours, and had a bunch of other non-game-development-related stuff to do that weekend. Time crunch leads to poor decisions.
  • I wasn’t feeling well at all. A hazy head leads to poor decisions.
  • I didn’t realize how easy it is to communicate between FSMs in Playmaker.

The only really interesting reason in this list to talk about is the last one. If you decide to work with Playermaker (or with FSMs without Playmaker), I would recommend thinking hard about the responsibility of each FSM that you develop – should your FSM really be two separate FSMs? In Playmaker, communicating between multiple FSMs is very easy. If I had realized this earlier, than I would have pushed harder towards breaking up my FSMs more.

A good example of this in Hero Test is the Observer2000 audio triggers. For the most part, I built these cues into the same FSMs that control the level logic of the various tests. If I were to do this project over again, I would separate much (or all) of the audio cues into FSMs that are separate from the level logic. This would have made iteration easier.

Graphics and Textures

MAN do I suck at anything visual. I just have absolutely no eye or talent for making things look good. My lack of skills is the reason why there are no textures in Hero Test, just some static colors and lightmapping. At one point during the 48 hours I tried to make some textures for this game, and it was a complete disaster. I’m not talking about anything fancy here, just some basic textures for the floors and walls. What I came up with was a complete embarrassment. The texture I made for the floor was actually creating some sort of optical illusion that would make your eyes see grey lines where there weren’t any lines. Find an artist and tell them to make the worst texture they can imagine, and guaranteed I can top it.

It’s really embarrassing, and makes these 48-hour projects difficult for me since I don’t have the skills to make something that isn’t painful to look at. At some point I need to take a class or read some tutorials or something.

Level Design

The level design in Hero Test was very blocky and straightforward. A lot of this was intentional, part of the ‘charm’ of a sterile, sci-fi testing environment, but honestly I couldn’t have done anything more interesting if I wanted to. Again, this is a major missing area of my game development skillset. I used to make pretty cool DOOM and DOOM2 levels, but times have changed big time.

Even without better design skills, I should have been more aggressive in making prefab rooms for Hero Test. I made pretty much everything from scratch out of primitives, and lots of the rooms were very similar. Some simple prefabs would have made developing these levels much faster. You can see this inefficiency pretty clearly if you watch the timelapse development video.


All in all, I consider Hero Test to be a success. I definitely made some poor choices, and there was plenty of room for improvement – but the concept was solid and the execution was decent enough – especially for a weekend. I think the failure concept I developed was unique in a lot of ways, and that’s one of the main reasons to work on these 48-hour projects. Try out some new stuff and see if it works. That’s fun, right? I also really liked the end, and especially the final voiceover. I thought it wrapped up the whole experience in a pretty cool way. It was also a bit of a twist, and that’s always fun.

Of course it’s always a bonus when other people like something that you made, it makes me want to develop more stuff. Here’s some feedback:

  • That’s brilliant! I laughed out loud, several times!
  • The best game I’ve ever played.    <— Note: That dude/dudette probably hasn’t played many games.
  • I was smiling through the game for the whole time, very well done.
  • Hero Test II?
  • Outstanding!
  • This was awesome.
  • etc.

I will close with the most interesting piece of feedback that I received regarding Hero Test: “… kinda reminded me of my life.”

Thanks for reading!


Hero Test – A 48 Hour Game

So this weekend I spent some time making an entry for MiniLD 25 and the Experimental Gameplay Project. The theme was: “The Worst Game I Have Ever Made”, and I had a lot of fun making my entry: Hero Test.

Click the image below to play it in the web player.

I thought this competition would be a great chance for me to try out a funky idea, and get some experience with Unity and Playmaker. Here are the personal goals/guidelines I decided on for this contest.

  • I wanted to use Unity and Playmaker.
  • I wanted to make something storyline driven.
  • I didn’t want to make something full of (intentional) bugs and glitches.
  • I wanted to make something terrible in a more subtle way.
  • I wanted to invent a new genre, the ‘Robo-Asshole’ genre. Maybe a more realistic new genre is the ‘Failure’ genre? Where you’re just doomed to fail every challenge put before you?

I think I did a pretty god job, I’ve gotten a ton of positive feedback and people seem to really ‘love’ the game. Well, they love it by way of hating it – which was pretty much the goal.


Here’s a video that shows a timelapse view of the Hero Test development process…

How to Make a Robo-Voice

It has been requested a bunch of times, so I wanted to reveal the process I used to modify my beautiful wife’s voice into that of a total robo-bitch. Here are the steps I used:

  1. Install Audacity 1.32 beta.
  2. Record your audio.
  3. Amplify it to the proper volume.
  4. Select all.
  5. Go to Effects -> Delay
  6. Match the settings with the screenshot below and click ‘Ok':

… and you’re done!

Project Files

This project is available here on GitHub: https://github.com/spgar/HeroTest

I used the Playmaker extension for Unity, so you’ll need both of those (Unity3d and Playmaker) in order to experiment with this project. There are instructions on the GitHub page on how to setup the project.

I’ve also uploaded all of the Audacity projects for the audio files in case anyone is interested in those. You can download those here.

Good luck! Send me a message if you make anything cool!

PS – Here’s a link to the thread I made about this game on the Unity forums. And here it is on the Ludum Dare website.