Skip to content

Month: March 2014

“Grumpy Cat” for the Atari 2600

I’m in one of those lacunae that pop up in the middle of an author’s life from time to time. My editor gave me a heads up that the first round of edits for Brothers in Arms will be arriving in my mailbox imminently. Once it does, I will need to drop everything to review the changes and notes, and start out on the rewrites stage.

Of course, being hip-deep in Crush Story could have been an obstruction. To prepare myself to go back into the universe of Bobby, Sarah, and Gabriel, I needed to get Jason and Sam (from Crush Story) out of my head. So I put the novel aside to clear my mental palate and be ready to work.

Of course, my brain doesn’t like being inactive. It wants challenges. It wants to create. So I wrote a video game. To be specific, I wrote a game for the Atari 2600.

SONY DSCFor those of you under 30 (which honestly is most of my fanbase) the Atari 2600 was the first widely available reprogrammable video game system. It pioneered the ability to change games by plugging in a different cartridge. It popularized the joystick as a control medium. And it led the way for every system that has come since. The games were simple, but addictive and compelling. And while today people might sneer at the bad graphics and simple sounds, from 1978 through 1982 it was state of the art.

The main challenge in writing a game for the 2600 is to make it as small as possible. The average game for the 2600 is 4K. That is one ten-thousandth the size of “Angry Birds” on your phone. And you only had 128 bytes of memory for your variables. We don’t even talk in bytes any more, only in millions (Gb) and trillions (Tb) of bytes.

So I sat down to write a game. All of the best 2600 games made up for their simplicity with great theming, backstories, and creativity in imagery. So I decided to make my game about Grumpy Cat.

GrumpyCat.bas.bin

For the action, I recycled a concept I’d used three decades before when I taught myself game programming for the Atari 800 by writing a game called “Herple” which I never released. Your character moved around the screen while being chased by a number of different enemies, trying to collect items that popped up in random places. Easy mechanic, but one that can become challenging when your opponents start to move really quickly.

The theming for the game fell into place naturally. Tardar Sauce wants to eat in peace. But the universe is out to annoy her, which it always seems to do. The player needs to move Tardar Sauce around the screen eating the “noms” (the yellow dot in the screen above). Simple goal, easy to grasp.

Of course, a game needs obstacles, so I created a bunch of “monsters” that would chase through the screen in different ways that the player would have to maneuver Tardar Sauce around.

GrumpyCat.bas.bin_2I came up with five obstacles based on things that Grumpy Cat hates. I drew a smiley face, which would represent happy people. I drew a rough representation of a camera to represent a photographer out to get the meme picture of the year. I drew a Valentine’s heart to represent the concept of love. I drew a “Bluebird of Happiness,” which would flitter up from the bottom of the screen, and I drew a Shiba Inu Doge.

One of the tricks in creating the game was for each of the five “monsters” to move differently, essentially having different artificial intelligence code for each. I made the Happy Person the simplest, moving from the top of the screen to the bottom while chasing after the player as it does so. It moves the slowest of all the monsters.

The photographer moves down the screen twice as quickly as the happy person, but is the same speed as the happy person in going from left to right.

GrumpyCat.bas.bin_8The Doge is the toughest enemy. Like the photographer and happy person it will chase you down, but while it moves from top to bottom at the same speed as the happy person, it’s twice as fast in moving from left to right. At higher speeds, you have to try and get above the Doge as quickly as possible, or it will chase you down.

For the hearts I needed something different. They also move from the top of the screen to the bottom, but I didn’t want them to chase Tardar Sauce down. Instead, they will pick a direction (left or right) and move in a diagonal as they move down until they hit the side of the screen, at which point they just move straight down.

The Bluebird of Happiness was tricky. I decided that it was way too easy to just hang out at the bottom of the screen to dodge enemies before moving up above them, so I had the bird move up the screen, flittering back and forth randomly as it did so. You can’t hang out near the bottom all the time without running the risk of running into the bird.

216562503-mainI have some folks out there play-testing the game (as I call it, poking it with a sharp stick) right now, and will be fixing bugs and making improvements with an eye toward releasing it. Of course, since Grumpy Cat is trademarked and licensed all to heck, I won’t be able to sell the game. However, I will make the binaries available for anyone who wants to play it. And I’ll probably have two cartridges manufactured of the game: one for myself and one for Tardar Sauce’s owners as a thank you for not suing me.

If you know a thing or two about 2600 emulation and homebrew games, or want to learn, you can check out the thread about the game at AtariAge.

Leave a Comment