Game Design for High Schoolers, Classes #2 & #3

Sunday, May 29, 2011

More notes about the game design class I’m teaching over at the Academy of Urban Planning, a high school in Bushwick.

So. Class #2. Werewolf didn’t happen. I had my fresh deck of cards and everything. But. Only four kids turned up for class due to a field trip — simply too few to play the game with. Sadly. Because I still think it’s a useful educational game because it’s so easily modified and extended. But it looks like I might not have a chance to test that idea since we’re rapidly moving into the actual “make your own game” part of the class. And now that we’re officially into learning GameMaker, I don’t think we can turn back.

GameMaker. Since Werewolf fizzled, we spent most of our second class learning the basics of this mostly drag-and-drop game-making software. (This after another round of get-to-know-yas and a recap of our general definition of what a game is and a review of some terms from the first class.)

Teaching GameMaker is both easier and more complicated to teach than I expected. Easier because all four of the kids got it that first class. We downloaded it, along with a little pack of graphics and sounds that I put together for them to use — mostly simple Nintendo sprites and a selection of sound effects that come pre-packaged with Mac OS X. And we got it installed in nothing flat on the four machines the kids were using. Great. And then I took them through the basic first steps. First, we made our player character. I had them make a sprite (and reviewed the definition — something that appears on the screen and moves). I had them make an object that used that sprite. I had them make a room. I had them put the object in the room and attach a set of events that made it move in different directions when they pushed the arrow keys on their keyboards. Run. No problem. The kids know how to use computers quite well.

(“Sprite” and “event” are two of our big vocabulary words, by the way.)

I found it a bit difficult to read their reactions, but I think they felt a nice little “whoa” moment when they saw their creations (as simple as they may have been) on screen and were able to interact with them. Processing, the Java-based tool used at ITP to teach programming, sort of had that same philosophy: The faster they can go from zero to seeing something move on the screen, the more students will be willing to learn. I know from personal experience that on professional programming projects there’s a whole list of steps you have to go through before you even get to the point of seeing a blank screen when you run what you’re working on. As experienced as I am, my first time playing around with GameMaker I felt it quite satisfying to just open the software, click on a few things, and poof — simple game that runs right there. Took me five minutes. Took us as a class about maybe 15 minute to get to this first point — really quick, honestly. That was the easy part.

The hard part will be on-going through the remainder of the class. It only consciously occurred to me during our second class that these kids would not be working on their games at home. This ain’t grad school. Or undergrad. Or even, really, normal high school. And when it comes to talking about games and computer stuff at home… Well, okay. This may sound weird for a second, but might as well write about it and see what it looks like on the screen…

I’m a white boy from Texas. My high school happened to be largely black and somewhat hispanic, but there was definitely an unfortunate barrier, for the most part, between the Science Academy kids (mostly white, including me) and the normal student body (mostly not). And maybe that has nothing to do with anything. But — it’s inarguably true that I’ve never been in a high school outside of Texas. Certainly not one in Bushwick. So I feel like I don’t have a clear grasp of what, really, the home lives of these kids might be like. It’s not a huge deal — they all seem reasonably smart, happy, and well-adjusted — but I don’t know what growing up in a minority community in Bushwick is like and so I find myself tripping on my tongue when I ask about things like computers at home. There actually may also be zero racial or geographic element to it — I’m a very hardcore computer user and I’m surrounded by people who are nearly all very hardcore computer users of one flavor or another. Regardless of our incomes, we all have fancy computers and mobile phones and all variety of digital doodads. Maybe this isn’t an issue of me not having a grasp on what the kids tech lives at home might be like — it might be more of an issue of me simply not knowing what the average American’s tech life at home is like. I don’t know. This paragraph feels all sorts of weird and rambling, but I’ll leave it in. I had no solid idea what the kids would be like before I first stepped into the classroom a few weeks ago, but the reality (so far) appears to be that this group of kids is not unlike my little group of nerd-friends in high school. So there’s not a huge cultural bump, but these are all minority kids living in a very different sort of urban environment and that must have some impact on their outlook. Maybe I’m making more out of this than I ought to, but I feel it’s worth being alert about. Anyway.

My point: It dawned on me that I couldn’t assign them homework. So suddenly we’re talking about a total of maybe eight or ten hours to learn enough of GameMaker for them to still have time to make their final project games. Which is the complicated part of teaching GameMaker, because one kid has already started talking about making his own version of RollerCoaster Tycoon (which, as a sim game, is already kind of a make-your-own-game game). And I’m already fielding questions about doing things with GameMaker which I’m sure are possible, but I don’t know if we’ll get to. (Especially given that I’m more-or-less learning this tool along with them.)

But they do seem to pick up what I teach them very quickly and all of them took the reigns and began playing around and experimenting with the software after I taught them each thing. The other stuff we did that first class included making enemies that walk around the screen, making walls to contain the level, and making collision events between the player, enemies, and walls. Basic top-down Legend of Zelda-style stuff.

So. Fast-forward one week to this past Tuesday. Five kids. And computer science teacher Andrew “Mr. Drozd” Drozd assisted instead of the usual Lisa Kletjian (although she stuck around for the first bit of class). More GameMaker. We started with a review of terms, which I think will be the new thing for each class. For those of you playing along at home, our current vocabulary list:

  • Strategy
  • Interactive
  • Triple-A Games
  • Indie Games (Interesting to note: Mr. Drozd asked if any of the kids new what “indie” meant. They didn’t. So I had to clarify.)
  • Sprite (The non-lemon-lime soda definition.)
  • Event
  • If-Then
  • Loop
  • Variable
  • Relative (In a mathematical sense, because GameMaker always asks if you, for example, want something position in a fixed place on the screen or relative to something else.)
  • XY Coordinates

So we’re getting in a solid set of programming terms, which I like.

Alright. So that happened. And then back to GameMaker.

We had one new kid who missed the previous week, so I felt a little bit of a confusion as to get him up-to-speed without boring everyone else. But two kids immediately opened up their previous projects and started messing around with them (in a good way) and the other two kinda seemed to need a review, anyway, so I just took the new kid and that pair through the steps from the previous week. Funny thing though: One kid — I swear she was just barely awake through the previous week’s class. And seemed kind of uninterested and I had to kind of push her through each step. Not her fault on the drowsiness thing — it’s a long class at the end of a long day for these kids (4-6pm on Tuesdays, remember). But. This past Tuesday when we cracked open GameMaker, she totally remembered how to do everything. And I think actually quite enjoyed working with it. A nice surprise. And the other one who I thought might need a review also didn’t need much of one. And the new kid picked it up quickly. So. Success.

Fun story: During this part of the class I poured myself a glass of pink lemonade (Lisa always provides drinks and snacks for the kids). And then managed to spill it all over my crotch in front of everyone. Good times.

So, we moved on to the new stuff. This time I had on the agenda three things: 1) Bullets. 2) Multiple rooms. 3) Points. And talking about bullets forced me to introduce the term “instance.” And points, of course, required a quick discussion about variables. (As for teaching variables in a computer science context, game lives and points would seem to be excellent hooks to get kids to understand the concept.) And we did get through all of this by the end of class. One kid — the new kid — even got a crazy multi-leveled reverse bullet-hell shooter thing happening with a screen full of enemies and bullets flying absolutely everywhere. Another kid made a maze-like game where one had to maneuver around the level to get to the door to move on. I mean, they only had a few tools at their disposal, so they weren’t going to create a wide range of games, but I was pleased to see they were coming up with different approaches.

Oh: And one kid found a sort of top-down zombie defense game made with GameMaker. And rather well-polished, as well, with good graphics and sounds. Like the zombie level in Call of Duty: World at War (but top-down): You’re in a house with a gun and zombies are trying to break in and you have to kill them before you’re overwhelmed by the flood. Definitely a game like games they had enjoyed before. But. Since made with GameMaker, I could prompt them to think about how the maker of that game might’ve built it. The kids knew how to make a player. They knew walls. Enemies. Bullets. Points. They had all of the pieces to make something like this zombie game. I think it was interesting for them to make that connection.

Another observation: For a couple of the kids, I don’t think they had quite formed in their mind a difference between player and designer. On kid, especially — the bullet-hell kid — seemed to kind of treat the bullets and points as things you might upgrade as a player in a game like Call of Duty. So he made a million bad guys. And then kept increasing the bullet spray until he cold kind of wipe them out no problem. And then he made them each worth some massive amount of points and showed off his, like, 16-digit score. Which is fine — nothing wrong with that sort of experimentation at all. But. Definitely funny. And a little insight into how these kids might think about making games, just the idea that they might need to develop a bit more of a designer’s mentality as something distinct from a player’s mentality. But. Game designers also aim to make experiences that are satisfying. And clearing off a whole screen of hundreds of enemies with a massive barrage of bullets is, indeed, satisfying.

What else? Oh, yeah. I set up the blog on its own domain (hidden from the world, for now, because of privacy concerns — sorry) as to bypass the school’s, ahem, dumb restriction on Tumblr. But we ran out of time and I didn’t get a chance to get the kids going with it. I’m getting worried about this part of the class. I very much wanted to have them contribute to the blog, especially since so much of our in-class time will go towards GameMaker. But it may not come to pass. I’ll give it another shot next week.

So that’s about it. I haven’t fully decided on what we’re going to do next week. I’m guessing a vocabulary run-down, because that’s become our thing to do at the beginning of a class. Might add a couple of new terms in there for ‘em. And then more GameMaker. I’ve tentatively got a few things on the agenda, there: 1) Lives. 2) Scrolling levels. 3) General variables (like having a limited number of bullets and picking up new supplies). 4) Something else I’m forgetting right now.

Actually, I’m like half-sick right now. And sitting up on my roof writing in the dark because the fresh air is nice (and the wifi works up here, which is convenient). So my thinking may be a little generally muddled. But there you have it.