CartRunner
A Game Developed in Three Hours
The Game
You are Mario, a disgruntled supermarket employee who is tasked with the monotonous chore of collecting the
shopping carts that stupid customers have left all over the parking lots. You are fed up with your station in
life... it's time to go nuts. Collect carts and take out your frustrations on your hapless coworkers.
Download (394 KB, ZIP)
View Screenshot
Source Code (Visual Studio .Net 2003, 10 KB, ZIP - here there be dragons!)
The Making of CartRunner
The 3H-GDC m.IV rules allowed prewritten base code to be used to make the games. Since the theme of the actual
contest was not announced until the three hours began, the amount of code that would be useful was limited.
I had a simple block of code for doing basic text-console stuff in Windows, so I decided I'd give this contest
a shot using that style.
When I first started out with my game development fixation, I was using stuff like QuickBASIC and QuickC in MS-DOS.
That meant text mode, because for several years I didn't have the resources or the craftiness to figure out the
more advanced graphical stuff. A lot of what I did was inspired by games like the Kroz series by Scott Miller.
That provided both a good nostalgic reason to do the game in this style, as well as plenty of base experience;
at one point in time I could bang out a Kroz clone in QuickBASIC in under an hour.
Times have changed, though; this is the era of Windows, and QuickBASIC is a bit out of vogue. I also didn't have my
copy handy, so that meant using what I did have - C++ base code for Win32 text consoles. A little bit of
dirty hackery and some color features, and the groundwork for CartRunner was layed.
Friday night before the contest was great; me and the Spectral Samurai stayed late at work eating pizza and screwing
around, doing stuff like scaling the inventory shelving in the warehouse area, and riding a cargo dolly around in the
parking lot, street-louge style (which, by the way, I highly recommend; get a nice dark parking lot, lay down face
first on the dolly, and roll down a hill. The rush is indescribably insane and it looks absolutely hilarious. But I
digress.) We then rented Full Metal Jacket and Shaun of the Dead to ensure that we didn't get enough sleep.
I've discovered that sleep deprivation is essential to insanity, and insanity is a large part of coming up with a game
idea and implementing it in three hours.
Saturday morning we got up and started hammering F5 on the contest page waiting for the theme announcement. Finally the
word came: "CARTS." For about twenty minutes, we just started throwing around ideas. Early on we latched on to the
concept of pushing around shopping carts. First it was a Flash-style "hit the power meter at the right spot to launch
the cart" sort of thing, but we ended up moving on from that. Eventually we settled on a GTA2-style, top-down steering
model, with the idea to collect shopping carts. (We have a deep sentimental attachment to the concept of launching
shopping carts in parking lots, but the reason for that really doesn't need to be confessed to the general public...)
As is normal with game development, we started with dozens of ideas. First we had some hoodlum shoving around carts,
gathering a "train" of carts to smash into cars and pedestrians. At one point we considered having cops run out and
give the player some Rodney King action when he lost. Unfortunately, it became clear quickly that the "cart train"
concept would take too much time to properly develop and test, so we fell back to having a single cart, and just magically
"collecting" the others.
From there the concept took shape: grab all the carts to open the exit, run over coworkers for bonus points, and grab
powerups to increase your speed and steering. It took some serious self-restraint to focus on the essentials first and
not mess around with side features like the powerups; eventually, we ran out of time, and didn't get to do the powerups
at all, but it worked out OK because the core gameplay was solid.
Getting the basic system down with the cart collection, level time limit, and scoring system took about two hours. Once
that was done, we had a playable game, but only one level - and it was clearly missing something. Hitting the little
green coworker guys was funny, but it lacked the vital ingredient: audio.
The Samurai began a campaign to find and rip some audio samples; eventually, due to the omission of powerups and cops,
we reduced the effects to a "ching" for picking up carts, and a thunking noise for hitting the side walls. The only thing
missing was splatters and screams for the little green buggers. We dug out an old lapel microphone of mine and got to
work. I made a long sequence of screams, yelps, grunts, groans, squishes, splats, splorts, and schplucks. Eventually we
picked three of each, and the Samurai mixed them together for the final game audio effects.
With twenty minutes left, we found ourselves with a hilarious game, but only one level. Making levels by hand took too
much time, so I banged out a fast Visual Basic app to randomly generate them based on generic "difficulty" parameters.
We then cranked out four quick levels to round out the game.
The final touches were bonus points for finishing a level with extra time, and "named" levels - so instead of Level 1,
Level 2, etc. you crash your way through the Left Side Lot, Right Side Lot, Loading Docks, and so on. Finally, with only
seconds to spare before deadline, I crammed together a ZIP file and sent it in for judging.
After several minutes of hyperactive yelling and generally running around in a state of pants-wetting euphoria, I sat
down to play our masterpiece. I finished the first level handily... and the game exited. Bug! I slapped together a quick
fix and resubmitted it, about seven minutes after deadline; time alone will tell if the judges are nice enough to look
at the multi-level version.
With that out of the way, we hit up the other respectable submissions to the contest, and generally snagged everyone in
the area we could find and forced them to listen to our squishy sound effects of hitting people with shopping carts. Once
all of the important stuff was done, I sat down to quickly brain-dump this post-mortem for posterity.
So there you have it. Exciting, glamorous, and all that crap. Quit reading this retarded page and go play the game!