In The Beginning There Was The Code
Taught the first lecture of my “programming for designers” course today, so I’m back in the teaching saddle. The course is essentially just an introduction to the fundamentals of programming (from update loops to variables to conditionals to object orientation etc.), but of course with a slant toward games. Once again, that relationship between the fundamentals of programming and games just seems to insanely interesting to me – I find it frustrating I can’t quite get into words how interesting it all is. I think that there’s great stuff to this effect in Ian Bogost’s work, of course, but I really wouldn’t mind being able to articulate my thoughts on this better.
In essence it comes down to the basic nature of code and the fact that code is the underlying material from which games are made. Clearly the aesthetic aspects are extraordinarily important too, but I suppose you can make some sort of argument that the code bits, the rules (though of course you can “code” the rules in different ways, including verbally, say) are the really game-y bit of games. To the extent, then, that it is a programming language which is used to define those rules, the underlying mechanisms by which a digital game works, then that programming becomes enormously important and influential.
I’ve spent a lecture in my other course on experimental interaction trying to think through this kind of in the opposite direction with students – what if we try to think about the implications for game design of programming concepts like the variable or conditional. It’s clear these concepts can be limiting too – conditionals almost seem to beg for a kind of obvious, banal view of morality, for instance. “If you kill the Little Sister, you get bad guy points, if you let her live, you get good guy points” and so on. So there are many philosophical elements involved there.
For the purposes of the programming course, though, the thing that I think is the most exciting is the thought of putting the truly fundamental tools into the hands of designers. It allows the shedding of the various layers of sometimes extraneous interpretation that is otherwise put between a person and the game they want to make. If you have a programmer creating your design, for instance, you idea is automatically going to be heavily filtered. But likewise even for the “higher level” tools used for game making. Obviously something like GameMaker will bias the kinds of games we might produce. Even the Flash IDE encourages particular forms of conceptualisation.
It’s no surprise that tools have influence of this kind. And programming languages themselves have influence too. But they can also push us about as close as we can go to freedom of expression. It’s scary in part because it makes everything more difficult – the tropes we’re used to think in are not as immediately relevant, we thrash around looking for something to hold onto in the general blankness of the world of code. We could do anything, and so we might do nothing.
But perhaps we’ll really do something.