No, I'm Serious! We Shouldn't Have to Learn Code to Make Games.

I’m going to be blunt. The fact that programming is the only way to make it as a game designer runs against our push to diversify the medium, serving to make sure that the only people who will be able to make games are the same people who have already been making games, rather than the whole spectrum of unique, creative, and often underrepresented people, all with insightful ideas and experiences to share. This is not something to be ignored. And I think it calls for a reimagining of game design tools.

I went over this in my last post. It flew neatly under the radar, but the gist of it is that unlike writers or artists, who can just scribble away on a notepad or a sketchpad, game designers have no way to create directly, having to wrangle with a completely different field before we can use our own. The necessity to program a game is a communication error, a failure of modern technology, and we'd do well to do better. It's counterintuitive, less than ideal, and has all kinds of far-reaching consequences, not the least of which is an ever-growing flock of talented would-be game designers that have no way to prove their work without getting outside help or adapting to a foreign skill set that often requires its own degree. It's a lot to ask of our budding creative minds.

Very recently, somebody responded to my first post, arguing that I was overstating the importance of these ideas, and that confused game designers should basically deal with the inevitability of it all (the actual reply was little more tactful and a lot longer, though.) I was expecting some sort of pushback from an established programmer or two, but this wasn't what I expected it to be about. I was always going to write a second post elaborating on the first one, although I was actually was going to write about something in between while I was working on it. It was going to be about Mario, of all things. But after hearing this, I switched gears. This is serious. And there's a reason why.

NOTE: Much of what I'm saying is taken from my reply to his reply. Maybe you'll see it sometime, not that you need to.

In that commenter's response, he used learning to play instruments and studying musical theory as an analogy to learning programming, arguing that not being able to pick up on those skills came down to a mere lack of discipline. But I don't think that theory holds up. In fact, the problem is that programming is less like learning to play an instrument, and more like learning to build an instrument from scratch, in that it requires a certain amount of expertise outside of one's chosen field, which can be a tricky balancing act.

It's not like needing to learn musical theory or to play a musical instrument before being able to compose music. It's like having to learn law before composing music. When someone has to juggle two unrelated degrees, we just might have a problem.

Every artform has a technical half and a creative half, sure, but in every other case, these two halves are connected to single unifying act that makes the whole thing conceptually manageable. Playing an instrument is the direct act of making music. Using guidelines and polishing linework is the direct act of drawing. Programming, however, isn't really the direct act of game design, but rather an awkward indirect workaround for our incapacity to work comfortably, directly, intuitively, a process that hasn't been questioned only because the limited amount of people that were making video games in the beginning already just happened to be programmers, and were so used to the rhythms and idiosyncrasies of their methods that they never really thought about general usability. Much of modern software, from the to the operating system on which you're reading this sentence, were designed specifically to avoid this problem, because they were made to be used by people other than the people who came up with it.

Imagine, for instance that the creator of the first automobile had used a horrific setup: a nearly out-of-reach trio of vertical levers, a hundred-piece switchboard, and a typewriter instead of a steering wheel or pedals due to the technological constraints of the day. Now, as technology improved, you'd think this fellow would switch to the steering wheel because, well, it just makes more sense.

But he doesn't, because he's so used to using that particular setup that he forgets just how unsuitable it is to the act of steering a moving vehicle, which most people would have done by turning reins left and right or turning a handle left and right, or just turning things at all. Driving his vehicle no longer becomes the act of maneuvering a moving vehicle, but the act of operating a machine, a machine with peculiarities completely unrelated to the realm of driving.

As a result, anyone who wants to drive this vehicle would have to unlearn everything they already know about driving and dedicate months or even years of their time to learning, say which 17-part combination of switch flips, precise lever positions (for all three of them) and noun-verb phrases that correspond to a small right turn. Including professional drivers.

And when the idea didn't quite catch on, the blame went on everyone else. "Of course anybody can use this! I think it's pretty easy!" But of course he thinks it's easy. He made it. His technique was fine-tuned to take advantage of the particular skill set he had before learning to drive, to exclusion of anyone who wasn't currently in his profession.

If things were for digital art the same way they were for video games, there would be no Deviantart, because every line, curve, airbrush, anything would have to be typed in, several lines per detail. It would be programming as opposed to drawing, and to make things worse, you'd have to make the drawing program by hand if you wanted it to be any better or get a minimum of versatility. We certainly wouldn't be able to make anything like this:

No, I'm Serious! We Shouldn't Have to Learn Code to Make Games.

Image credit: captainosaka on Deviantart

and certainly nothing like this:

...and I can assure you that the majority of people using this method would not be artists. Which would mean a lot of wasted potential and untold stories in a medium that would never take off.

Today's modern programming languages may be leaps and bounds above the assembly code of yesteryear, but to be fair, assembly code looked like this:

No, I'm Serious! We Shouldn't Have to Learn Code to Make Games.

Maybe it's Mario Tennis.

As far as games are concerned, going from a completely unworkable setup to an only moderately unworkable setup is only a relative improvement, not very significant in the grand scheme of things. At the end of the day, we still need complex algorithms to handle things as simple as scrolling. Today's programming languages weren't really built with video games in mind, as they were made to accommodate the majority of programs that are built with them, and video games will never be that majority, naturally. If programming languages are the primary tools for game development, and they can't even perform the most basic of tasks, much less work as a game engine, without clever manipulation, then they're not terribly good tools, or even efficient ones.

So, what options does that leave us? Suggest everyone learn programming? Sounds unrealistic. Suggest anybody who doesn't what to program ship out and work in a different medium? It would be a big missed opportunity if they did. Video games aren't like tabletop games or any other kind of game. Working with a computer has its strengths. It can do all kinds of background calculations that would make a human brain blow apart. It keeps track of the variables that define a miniature world, and has the power to represent that world with a sense of life and fidelity that other games can only dream of. It's the difference between that ethereal feeling you get inhabiting a house in Gone Home or Dear Esther, that sensation of total immersion, of existing in that space, the difference between that living world and just seeing an image of that world. Who are we to deny anyone the opportunity to use that as a means of self-expression?

Besides, that would leave us right where we started: a select league of people making a specific kind of game, and all the while we have to fend a cavalcade of critics asking whether or not games can be art, wondering why they don't already understand. If we want games to grow, we'll need reinforcements. Stanley Kubrick had an IQ of 200. By now most people with an IQ of over 100 have been warned to stay away from video games, to say nothing of making them. Many of them have listened. We need more creative people. We need all the creativity we can get our hands on.

And we need real tools. Anyone can write. All they need is a pencil or a pen and piece of paper, and presto! Instant revolution. Anyone can take a photo. All they need to is press a button on a camera, and click! Instant memory. anyone can make even an amateur film. All they need to do is get a cheap homemade camera, hit record, and voila! Instant YouTube star. There's an obvious disconnect here between the accessibility of any of these other forms of creation and the non-accessibility of video games, and that's what the problem is.

A part of this problem is that we've inherited the tendency to think of game creation as an entirely technological endeavor. Of course, computer animated films are about as technologically sophisticated as video games are (some would argue more so,) but we've somehow managed to see them as stories first, and the culmination of a series of programs second. Toy Story 3 didn't receive an Oscar nomination for Best Picture because of any technical achievement, but for the mastery with which its director and crew made us feel compassion for what should realistically be a series of inanimate objects. Nobody questions this.

Yes, video games are executed code. But then again, so is every creative work on an electronic device, to some extent, and I doubt any of these were programmed. Even Pixar designed their animation software so that actual animators could handle it with the minimum amount of adjustment. We don't think in code. The vast majority of us don't anyway. And we definitely don't think of game design that way.

So maybe our solution is something intuitive. Something like the Kodak camera or sketchpad of video games. How would that look? How would it operate? By looking into the way we approach game design off the computer, we might find some insight into how we can make making things work on the computer.

I'm going to have to go into detail on one possible way we can pull this off, if only to drive home the point that this is possible, logically speaking, and therefore worth some modicum of effort, but since I don't want to go into uncomfortable tl;dr territory, I'm going to split this into two more parts, the second of which will include that brainstorming session. But it's okay, you won't have to wait until next week this time; I'll be posting them both an hour apart. Once you're done here, check out the next piece directly above it.

In the meantime, though, I have to stress right now that I'm not out to kill programmers. I love all of you, and you will never lose relevancy. If you can make a game by coding, do it. If you think you can learn coding, go for it. There will always be games big and small that demand the sort of technical mastery that can only be obtained by getting up close and personal. I'm not even saying that people shouldn't be learning to code right now. That's what I'm doing, and for now it's the only way so I don't intend on stopping. You want learning code to be mandatory education? Good for you. But I should point out that it'll only be a gradual change, and until then something has to be done to address the missing talent. Pinning the problem on a worldwide outbreak of West Nile sloth instead of human shortcomings and difficulties is easy, but it certainly isn't productive. It doesn't do anything. (By the way, if you're not assuming that the reason that not everybody knows code is because of a lack of discipline, then o.k. I'm not talking about you. We can be friends.)

And I should also point out that a lot of the games we're talking about aren't all that technically complex. I mean, primarily, the kinds of games that somebody should be able to churn out in a few hours, minutes, or days over lunch, but can't, the kinds of games that shouldn't be rocket science but are. The problem isn't that we need code; they're called computer games for a reason. The problem is that we need code for infinitely simple things, like jumping and other basic functions, and we should have this down by now.

I'm not even saying that this game editor should entirely code-free, because including compatibility with programming and scripting is actually a failsafe against technical failures, and people will always want to push the envelope. Even diehard programmers could use a program like this to cut down on development time and costs. We will never be able to cover every idea someone could every idea someone could possibly conceive without resorting to code, but we can cover the vast majority of them, enough so that no one has an excuse to be able to make some kind of game the same way than take some kind of photo that may one day be infinitely important.

This is not an appeal to empathy. It is an appeal to reason. And it'd be wise to listen to it, not because you'd be doing me some sort of petty favor, but because it would be the right thing to do. For everyone.

This is also on my blog.