I'm walking through the firehouse in Culver City where a good portion of the games at IndieCade are set up, and then I see what looks like "not a game." And I don't mean that in the disparaging, "Your game doesn't have guns so it's not a game," way that the Internet sometimes means.
I mean, quite literally, it looks like not a game. As far as I can tell, the guy standing in front of the laptop is staring at a text editor. Maybe Notepad++. There are quite clearly lines of code on the screen. My heart goes out to the team. "Oh no," I think, "Their game must have crashed bad if they're coding on the show floor."
Turns out, it is the game. A game called [Code], where you're tasked with deciphering a program in order to solve puzzles.
A surprise hit
"When I first made this we thought everybody was going to hate it, you know, because the class is mainly full of people with non-programming backgrounds," says project creator Rambod Kermanizadeh. "So I thought me and like two other guys in the class were going to get it."
Kermanizadeh and a small team—Trevor Rice, John Bair, and Daniel Romero-Quiroga—created [Code] for famed designer Richard LeMarchand's Experimental Game Design course at the University of Southern California last spring. LeMarchand urged the team to submit the game to IndieCade on the strength of the original three levels, and the project was accepted.
In [Code], you control an "@" symbol. You have no real purpose. No function. You're a memory leak. "You're just doing your own thing in your own little block of memory and then the evil garbage collector comes by and he's trying to reclaim the memory for the system to use. He doesn't quite succeed and releases you into the world," says Kermanizadeh.
The garbage collector in pursuit, you must figure out how each program (level) works in order to open the next stage. For instance, the first level looks like this:
Touch the public bool levelBeat, it switches to equal true, the metaphorical "door" pops open, the @ sign does a little dance, and you jump to the next level.
"But wait!" I hear all you programmers say, "That's not real code in the example. That would never run!" Okay, you caught them. It's not real code—more a pseudo-code or an All-Language.
"People who have actually played with Unity or C# go, Oh, is this C#? This seems like C#,'" says Kermanizadeh. "The actual levels themselves were originally laid out just like the code for C# but we kind of made them a weird pseudo-code because there's a lot of information that confused players or didn't necessarily matter to the level itself."
Sign up for Computerworld eNewsletters.