Driven Insane is AAGH Games‘ third Ludum Dare entry. I am our artist/programmer, so I’m mostly going to be covering that angle in this postmortem post. We’re fairly happy with our concept and the finished product but naturally there were some hitches along the way. You can play and rate it here.
Day One: Getting the theme, brainstorming and starting work
We were online waiting for the theme to be unveiled, and neither of us honestly had a goal theme in mind. None of the possibilities sung to us so we were open minded and ready for any theme. When we saw, “an unconventional weapon,” we sat back and debated what would be an unconventional weapon in a game. Everyday objects? Sporting equipment? Eating utensils? Melee weapons in a ranged weapon scenario? While debating this we also discussed what genre to use, going from fighting games and RPGs to adventure games and platformers before we had our big breakthrough: a racing game where you are the hazards instead of the driver.
Brilliant, we had a basic concept, but what hazards would you be? Ramps, spikes and barricades seemed too conventional for an unconventional weapon themed game, so after some debate, Floata (AAGH Games’ musician and level designer) reaffirmed his dislike for farm animals (he was the one who suggested killing chickens in another game of ours) by suggesting that we run into a cow. I got to work mocking up placeholder art for the cow and car when he suggested a flying pig as well. Sure, why not? Here is my original placeholder art.
Early car, cow and pig designs
Before we called it a night that first evening (we began at 9 PM) I redrew the cow and made an impact animation with cow-smashing special effects. With that complete, night one came to an end.
Yes, the cow explodes into hamburgers
Day Two, Part One: Flying Pigs and Actual Game Play
Early on day two I woke up and redrew the cow, pig and car properly with my graphics tablet and put them in the game. Downsizing them cost them a little detail, I think.
Just a little size difference
Now that we had the visuals halfway ironed out, we needed the thing to actually be a game and not a tech demo (or worse). Step one to making a game out of this melange was to asign point values to the various actions and configure a score counter, but that’s not enough. As it was, you could throw down limitless cows and pigs all over the screen, and worse they didn’t do anything since the car didn’t register any damage yet.
My first order of business was to make the pigs and cows go on cool down after use so you couldn’t just spam them. Applying the cool down was no big deal – it was applying a visual indication that took longer than expected. I didn’t want to draw individual frames for the buttons during their cool down periods but I eventually had to. I drew each one in 10 frames which worked for the pig (which was on a 10 second cool down, so 1 frame per second). The pig took some finagling since it used a 5 second cool down. I am crap at math so fortunately it wasn’t too complicated and I got that in.
Next I added a car health bar and set damage values to the car hitting the cows and pigs. At this point the game was really easy because as long as you used your animal attacks when they were off cool down you were golden. What we needed was a way for the car to defend itself and some degree of strategy and skill to using your attacks. The answer came in the form of health icons.
I drew some health icons and made a randomizing system to stick the health in the car’s path at different locations each time you played. The player needed a way to stop the car from getting the health icons so the pigs were given double duty in clearing health icons away and damaging the car. The pigs were only available every five seconds though which made for relatively long periods of helplessness on the players part -never a good thing. The cure was a third animal, one who would be usable often and whose sole job is to remove the health icons. Enter the squirrel, who – by being on just a 3 second cool down -was almost always ready and when used in concert with the pig made it possible for a skilled player to keep the car from ever touching a health icon.
Day Two, Part Two: Just Blips on the Radar
My biggest complaint while testing was that you never knew how soon the road would end on you, meaning you didn’t really have an idea how much time you had before you lost until it was too late. The answer – to me, anyway – was a mini map. I wanted it to be easily transferable from one level to another, and I didn’t want to have to constantly fiddle with its configuration, but the levels were not uniform in size, nor were they even proportionally scaled – they were all very different lengths. I ended up taking the length of the mini map area (400 pixels) and finding out how many times that would go in to each maps length (say, 17 times, rounded) and telling the map’s car location icon to move starting at the map’s left X position plus the car’s X position divided by that number I found earlier (17 in this example), and it worked. Success! That was the first time I had done anything like that so I was kind of surprised that it all worked out as well as it did.
Day Three: The Final Details
By day three Floata (the game’s co-developer, remember?) came through with the music for the game so I put that in and it fit really well. My biggest concern now was getting sound effects in before time ran out. I mooed and oinked into my mic, I read lines for the squirrel to squeak, I smashed pop cans and boxes for car crashes, and the results – while not exemplary – were satisfactory to me. The last step was adding a title screen, an end-game stat screen, a tutorial screen (or three) and testing the game for balance and stability. Satisfied with what we had and time running out, we submitted it and the rest is in all of your hands.
Take some time and give Driven Insane a rating, and please leave a comment letting us know what you do and do not like about it. Thanks for reading, and good luck to everyone.