At the Global Game Jam this past weekend, I was part of a team that created a Commodore 64 game called “Sleepwalking Backwards.” It’s a short narrative experience, written and designed by Jonathon Myers. Go play the game here!
Why a C64 game?
The C64 is the first computer I had as a kid, and the machine I learned to program on. The programs I would write would be simple things written in BASIC. They might ask you questions and give simple responses, or draw some ASCII art on the screen. Most of them would involve rapidly flashing the colored border around the screen, because it was an easy and fun effect. I remember filling several floppy disks with these little experiments.
Early last year my interest got rekindled in the old machine, and I started playing around with programming for it again. I remembered several things that I wasn’t able to figure out as a kid — machine language, bitmap graphics, sound — and thought it would be cool to go back and figure these things out. It sort of felt like I was taking care of some unfinished business from over two decades ago!
Why at the Game Jam?
Actually trying to make a Commodore game was the next logical step. I posted to Boston Indies (a local group of independent game developers) and gathered a crew of other interested people, and we started playing around with some ideas while I was building a code base and tools. But, it became clear after a while that we were all too busy to actually make it happen. It was tough to even get more than two of us together at a time, much less keep forward progress going on a game.
When emails started going around about the Global Game Jam late last year, a solution presented itself: I could make a C64 game at the GGJ instead! An ambitious (maybe insane) plan, to be sure. But, it solved the problem of having to regularly coordinate get-togethers. The beauty of a game jam is that it represents a commitment from everyone who participates: you’re never sure exactly what you’ll get, but everyone who shows up is going to have some kind of game to show at the end of the weekend!
How’d we make it happen?
We didn’t create a game completely from scratch in the weekend. Instead, I worked on a game framework in advance of the jam, to support a basic level of art and audio creation. The result, which I chose to call comma8, is available here.
Another tremendous asset when tackling such a project is the existence of emulators such as VICE. These emulators carefully simulate every aspect of the original machine’s behavior, right down to all of the bugs in the hardware. Because of this, we could work on modern machines for the whole jam and have confidence that the final product would actually run on the original hardware.
Transferring the built game to the original hardware is an interesting problem: to do this, you can actually play the data as audio from your computer’s sound card, and record it to an audio cassette! The Commodore has a “datassette” peripheral that allows it to save and load data from a regular audio cassette. This isn’t the fastest way to transfer data between these generations of computers, but as far as I know it’s the only one that doesn’t require any custom equipment. How computers store data has changed a lot in thirty years, but audio is still audio!
How’d it go?
The project was a big success, as far as I’m concerned! We produced a Commodore 64 game in a weekend, and had it running on original hardware at the end of it. The game, although short, also had a really well conceived atmosphere and overall dramatic shape.
Trying to make a game on a challening platform had a benefit I didn’t expect — it naturally helped us keep the scope of the game really small. We weren’t tempted to try to get too many features in, because we knew that each and every feature that we tried to add would entail some challenges. So in the end we actually ended up up with a game that was pretty polished as far as game jam games go.
In short, it was a really fun and productive weekend. I’d like to thank the organizers at GAMBIT, Rik Eberhardt and Courtney Stanton, and the team members, Arshan Gailus, Greg Kinneman, Elliott Mitchell, and Jonathan Myers, for making it such a good time!