Platforms and Programming: Learning Processing

adventures in gaming, Process Writing

Surprisingly empowering. These are words I’d use to describe the beginning of my odyssey into learning Processing this semester as a part of a directed reading course about platforms and processing with Rilla Khaled and Pippin Barr.

I started “seriously” making video games in January 2013, and in that time, I’ve been using programs like Stencyl, Construct 2, Twine, Unity and others that are meant to facilitate game-making for those who don’t program. I am finally taking the leap into learning to program more “seriously” – what an awful word.

Robotprogram

To be clear, I don’t mean to undermine the artists and creators who make games using these sorts of programs, which are amazing and empowering in their own rights. These programs are excellent! They’re powerful! They’re accessible! I want all sorts of people to make games, not just the ones who are interested in learning a programming language.

Nevertheless, as an artist, maker, photographer, creative-type, writer, sculptor, painter, academic, etc… I felt a bit of a chip in my shoulder (and that’s my problem, nobody else’s) about not being able to write code “from scratch” (but I mean, these programming environments are really excellent at predicting things, have plenty built-in already, the libraries are excellent… Is it really from scratch – and who cares?). Thinking about this from a software studies-inspired perspective, I also felt like I learned to do certain things in these programs and it was really easy to do them, but then that there were kinds of actions and things that I wanted to do that they didn’t permit. For example, I want to play around with chatbots, or with having people draw with their mouses. I’m sure it’s possible to do that in Construct 2, but I couldn’t have done it. That drawing stuff is one of the first things that I learned to do in Processing.

mspaintprogram

I guess, learning to program is also just something that I want to learn to do for myself. I love learning languages – the human ones. I’d say that I’m practically a native speaker for French, an intermediate speaker of Spanish, and a beginner in both German and Italian, with a smattering of the Japanese that I learned from watching subbed anime as a teenager. It’s not that I have something to prove to myself or anyone else, but that I still felt like this was something that I need to do to further my skills and abilities as a game creator – partially just for my own understanding.

The book that I’m learning Processing with, “Learning Processing” by Daniel Shiffman, is excellent. It’s friendly, accessible, and gets you going (nearly) right away. I am surprised at what I’m already able to do after just a few chapters. The truth is, though, that those two years working with WYSIWYG-ish/”not-actual-programming” tools taught me a whole lot about how computers think and about the logic of programming. And really, that feels like about half of what this book is teaching me. So, that feels pretty empowering too. I feel encouraged and eager to go on.

There is, too, a connection between platform studies and learning to program – one that I’m still forming and thinking about. In a way, the basics that I am learning, the somewhat labourious way that I am currently drawing things shape by shape and line by line in Processing, feels connected to the labour of early games, shaped by the affordances of hardware. I said limitations at first but erased that. There are limitations, for sure, but it isn’t as if there ever won’t be a bigger, faster, better SOMETHING coming out on the market that will make older tech feel limited. But, then again, “I AM ERROR,” the book we’re currently reading, talks about how Nintendo deliberately damaged the chip they decided to use to make sure that anything proprietary to Coleco (who owned the patent) wouldn’t be an issue. So that and value-for-money on these chips are two limitations that Nintendo placed on themselves.

Well, these are just a few thoughts for now. More to come as I continue learning processing!