Taken to School

On emerging from the (still) terrifying world of “rolling my own” physics for You Say Jump I Say How High I’ve found myself wandering into a brand new field: level design. So now I sit with a notebook going through the unfamiliar practice of drawing little doodles of how levels in the game could look, which is a lot of fun but also very foreign. As I was doodling this evening, I found myself thinking of just how much of my experience of making games so far has been an endless treadmill of learning. I’ve mentioned this before, but it continues to amaze me when I look back. Almost each and every game has involved a crazy learning curve.

GuruQuest involved working out how to make anything game-like at all, let along the amateurish attempt at procedural landscape generation and hacking a chatbot script to sound suitably guru-like. It was basically a huge adventure in the very notion of producing a final product that looked and felt as though it were complete in some way – it’s also one of the only projects on which I’ve spent longer on polish than on getting the basic system up and running, I was really obsessed with the way the game looked. But still, most of all it was an object lesson in the discipline needed to finish something.

Let There Be Smite! introduced me to the world of Flixel for the first time, which meant bending my head around a bunch of very fundamental concepts behind game libraries. Notably ideas like “states” and “sprites” and all that stuff. It vaguely amazes me now, but that stuff was really hard to deal with in my initial foray. It was all I could do to pull together the extremely static game that Let There Be Smite! is. It’s also a good lesson in terms of both the importance and time-investment involved in learning frameworks. Learning flixel was harder than I’d expected, but now that I’m familiar with it, it certainly makes a lot of stuff super easy.

The traditional learning continued with Safety Instructions, which introduced me wholesale into the world of frame-by-frame sprite animation. Some of those animations had over 100 frames, and it was a total nightmare to put them together. I had no workflow to speak of and Pixen, the application I use, can be a real bastard to you at times, even though it’s still basically the best pixel and animation editor out there for mac. Again, the game itself was extremely simple mechanically, in favour of learning to produce reasonable quality components – in this case the graphics.

And on it went! The Artist Is Present was my first attempt at the “avatar in a world” stuff you need for so many kinds of games, effectively ending up with me writing all my own (crappy) code to simulate Sierra-style interaction. That included messing around with invisible layers for hit detection with pixel perfect collision and working with something on a weirdly big scale, as well as “AI” for controlling other entities in the world more complex that the whirling sticks of Let There Be Smite!. Trolley Problem was simple enough except that I had to find out how to use cookies to save state. ZORBA required figuring out a way of synchronising music and keystrokes, which was frankly pretty nightmarish! All’s Well That Ends Well was an exercise in figuring out how in the sweet hell Box2D works (answer: I still don’t really know).

In fact, Let’s Play: Ancient Greek Punishment is literally the first game I’ve made that was trivial to put together. It was just an idea, some quick “mechanics” (let’s face it, they were kind of simple), and some very basic animations (very few frames to agonisingly draw). The fact that that game was a pretty big success is gratifying in one way, and kind of irksome in another: I spent the least effort on it – it’s like the universe, like the sirens, is tempting me to stop my journey and just relax into docile simplicity.

But no. You Say Jump You Say How High has been the asshole programming challenge I needed. From physics to level design, it’s been another schooling.

7 February 2012
← next words previous words →