In 2011, Wired UK and New Scientist described how “SpaceChem, a science-themed puzzler hailed as one of the year's best indie games, is aiming to make the leap from bedrooms to classrooms.” Today, SpaceChem is used by schools in the United States, eastern Europe, and the United Kingdom to supplement computer science curricula. We spoke over lunch at GDC with Zach Barth, developer of SpaceChem and founder of Zachtronics Industries, about the special challenges involved in creating this kind of game. (We’re especially thankful to Zach for permitting us to transcribe such an informal conversation.)
The following excerpt jumps into the design philosophy that Zachtronics uses to design educational games, the challenges of creating games that incorporate programming concepts, and Zach’s thoughts on the relationship between games and learning.
MP: What's interesting to me is that the mechanics [of the educational games you have created for clients] seem fairly well married to the educational content.
Zach: We use MDA: Mechanics, Dynamics, Aesthetics. It's a design philosophy. The idea is that when you make a game, all you're doing is implementing mechanics, right? But the interaction of those mechanics and how players work creates dynamics – let me give an example. In TF2, they have a mechanic called random crits. Sometimes you'll be firing and all of a sudden shiny, magic bullets will start coming out of your gun that do tons of damage, especially at long range. This just happens randomly.
So that’s the mechanic. On its own, it means nothing; it's just a mechanic. Is it good or bad? I don't know, it's just a mechanic. But in practice, it has this effect that… well typically, you go into an encounter in TF2 and the player who's better will win. Sometimes it also depends on class balance. The dumbest pyro against the best spy—the spy is going to die. That's the normal dynamic. Like if you have two heavies against each other, the better heavy will probably win— unless one of them gets random crits. So there’s this chance that the worst player will come out ahead just because of this random thing.
So that’s the dynamic: sometimes players who are not good can win in a situation where they should have lost. And the aesthetic that this creates is that, hey, sometimes you win more than you ought to when you're learning the game. The aesthetic it creates is that this game feels — I don't want to say TF2 is really easy to pick up because it's got a lot of nuanced hard stuff, but the mechanic makes it easier to get into. It gives new players a win; you're not going to have zero kills. You actually have a couple because you might have gotten random crits.
The reason I bring this up is that we use this for all of our designs because we make a lot of games from scratch. So this is sort of the model we use to try to at least have some understanding of what we're doing.
I think a lot of games insert the educational stuff in the mechanics; we go for the dynamics. So in Number Munchers, one of the mechanics is that you have to do math. You have to find the answers that are true and then you have to walk over to them. In our metabolism game, in the mechanics, there's no real educational stuff; you’re just flicking particles around and certain things combine. But based on the math that we have and the rules that we have, it creates these dynamics that actually resemble the real life system.
It also ends up creating the aesthetics not of a textbook or something, but just of a game. We have time pressure, so you're trying to do stuff quickly and do a lot of different things at once, like you’re trying to do something with the lungs while you're doing stuff with the stomach. And you have to make a ridiculous amount of energy, but to help with that we give you upgrades that are actually found on the body—like the fact that your lungs work automatically, you could buy that upgrade. So it just feels like a game.
MP: So you’d say that the content—say, the relationship between energy and the lungs—is embedded in the fact that the dynamics map onto the real world?
Zach: Exactly. It feels like a game with the mechanics, and it feels like a game with the aesthetics. It just happens that somewhere in between, it feels like real life. That's how we do educational games. I think that SpaceChem's a different kind of experience, because the metabolism game only teaches about metabolism. It doesn't teach you anything about problem solving, or discovery, or science, or any of that.
It's hard to make a game about science, because science is about not knowing what you're doing, but discovering it, which is the opposite of user‑friendly game design. Science is awful, when it comes to that. You can barely even see what's going on. You have to sometimes build tools just to intuit what's going on. It's not user friendly. It's not meant to be.
MP: Was SpaceChem intentionally a game about science, or was it that after you completed it, you thought, "This is like the scientific process; this is like programming"?
Zach: There's a little bit of that. The programming part was deliberate. The part that I think is great in SpaceChem, that really came out—and we never intended for it to be an educational game but it’s definitely in there—is problem solving. That's a big thing. All my Flash games had a lot of problem solving, engineering, programming, and that's just because programming is problem solving. When you make a game about programming, it's going to have some problem solving in it, unless you do it poorly.
We offered SpaceChem to schools, and one of the things that you had to tell us was how you were planning to use it. This is more anecdotal than anything else, but American schools would say, "We want to use this game as a chemistry review for our students." Basically, half of them. This is the worst game for that. We had to say, "No, you should not use this. This is not for that problem." But a lot of the schools in the UK wanted to use it to teach computer fluency stuff, because there's a big computing‑in‑schools push in the UK; they’re into the idea that kids should be computer literate.
It's a very practical version of STEM. STEM is very lofty, and doesn’t mean much on its own. But computing in schools is very specific: exposing kids to stuff like programming, and making websites, and tech literacy. They were like, "We want to use this game to teach kids about programming." I think they have a lot of people who teach clubs; they use it because SpaceChem is really a programming game.
The Eastern European schools, a couple of them contacted us saying "We want to use SpaceChem to teach problem solving, abstract critical thinking." I think that's a cultural difference there in what they prioritize.
MP: A lot of things in SpaceChem map onto pretty solid programming concepts. I was curious whether that was by design.
Zach: There are a lot of people who make programming games, and a lot of times, it's really hard to escape conventional programming paradigms. Even in my old games. I made a game called Manufactoid, which is like the granddaddy of SpaceChem. There's a show called, "How It's Made," which I love. I saw this show when I was in college, and I was like, "This is amazing. I want to make my own factories. I want to make my own assembly lines, and I want to make a game to do it." I made this really crappy Python version, and eventually, I made a proper release of it, and called it Manufactoid.
The problem was that the way you automated your factory was by programming it in Lua, which is completely inaccessible. I really liked Manufactoid, and people liked it. But having to program in Lua is ridiculous. I was like, “Even I don't know Lua, this is stupid. No one can play this game.”
A lot of people make programming games now. A lot of people who play my games make programming games. I think one of the mistakes that a lot of people make is not having an original enough programming paradigm. Because otherwise, it's just programming.
You want to make sure that it feels like programming, and is functionally like programming, but, is so different that it opens up new—like when you're playing "Portal." You have the whole "Thinking with Portals" statement, which is not just their tagline, it is literally what happens the first time you play "Portal" and you're like, "Holy fuck. This is strange. There are new pathways forming in my brain."
You can feel it, because you can feel the dopamine rush that's associated with forming new pathways in your brain, or whatever. I'm not a neuroscientist, so, I don't know if that's technically it, but you can feel it. It feels great. If you make a good programming game, it will feel like that, because you're teaching people a totally new way of thinking and structuring things.
I took a class in Chinese. I'm terrible at it, and don't remember much at all. But when I first started, you're writing out these symbols, and you can feel it changing how you think. It's like, "I've never written a symbolic language like this, a non‑phonetic thing, an ideographic language." It's awesome. It's like, "This is something that's so different, but yet so functional and meaningful that it's making me think in new ways."
I think a lot of people don't realize that's the draw of SpaceChem. They just make a game like, "Here, you can program in Lua." That doesn't count.
MP: One concern I would have if I were, say, a CS teacher thinking about using SpaceChem in my classroom, is that it's a great metaphor for a lot of important programming concepts, but I don't know if they would actually transfer [to real-world programming ability].
Zach: I almost think that's totally missing the point. If you want to teach people to program, just teach them to program. It's fun. That's why I started programming. You don't need to beat around the bush. Teach people programming, and make it fun.
But if you want to teach kids that thinking about stuff can be fun and that problem solving is good, then let them play a game like SpaceChem. SpaceChem teaches programming concepts, but whatever, that's not the point. If that's what you need to hear in order to sell you on it, this is not for you. The reason you have to want SpaceChem is because you want SpaceChem. Programming doesn't involve building machines that fight monsters. It doesn't have a story in it. That's why SpaceChem is fun. But the problem is nobody in education says "we need more things like SpaceChem." They say "oh, we need things that teach people real life skills."
With games, you have to make a leap, and you have to let some stuff go. You have to stop worrying so much. It's hard to say that and have people take you seriously. I'm not trying to sell anything on that basis. This is what I think. I think lots of things that are ridiculous.
[GDC] SpaceChem's Zach Barth on educational game design by Gabriel Recchia, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.