"When we start designing levels, we don't think of them in code right away," he continues. Levels are often designed by the game's artist, Bair, who knows less about programming. They've even built a traditional boss battle into the game.
According to Kermanizadeh, Bair will design something like, "What if here you have to tick something to a specific number and then that unlocks that door that then you can go through to beat the level?"
Then Kermanizadeh and fellow programmer Rice turn that outline into, "There's an integer variable that you can then adjust and then we have the Boolean that's private so the player can't change that. By changing the integer value it unlocks the Boolean which then takes you to the next level."
"That's a really crazy way to design a game," I say.
"At first we did it in terms of code but our own heads wanted to explode," says Kermanizadeh. "We were talking about code but then we had to code the code for the code—it was like this weird Inception of code."
So [Code] won't necessarily teach you to the correct syntax for C# or Python. On the other hand, it will teach you what to do with those languages.
One level in the IndieCade demo, for instance, teaches you the broad strokes about "For Loops," a common programming technique that executes the same block of code repeatedly. It turns out that despite syntax differences, a For Loop works the same in Python as in C# as in BASIC. [Code] might not teach you how to set up a For Loop in your language of choice, but you'll understand why you should implement a For Loop—a much more valuable skill.
"We really didn't want to focus on teaching any specifics of any one language because then we felt like it would kind of lose the value of the teaching aspect of it. So we just try to teach the overarching logic behind programming and computer science," says Kermanizadeh.
The team plans to have 64 levels total, and hopes to complete the game by early next year—after a lot of playtesting.
"We do want to give it more mass appeal but we don't want to alienate our niche of programmers and coders," says Kermanizadeh. "Those are the people who are really going to love the game. That's who we are and that's who we're making it for. We want to make a game that we'd want to play."
For now, you can check out the [Code] demo here (it runs using Unity Web Player).
Sign up for Computerworld eNewsletters.