Wednesday, February 4, 2015

Teaching game development... in public!

I remember one time in design school when a guest critic called out my classmate's project, a website to facilitate bartering. The critic balked at the idea of imposing specific procedures on how people should conduct a trade, and he talked about how the parents of Park Slope, Brooklyn shift several million tons of used toys using a very active Yahoo Groups (the class gasped in horror)... sometimes all a user wants is a message board.

So I'm one of those \Blackboard / "enterprise-class courseware learning platform" skeptics. If you've had the good fortune of never having to use one, they look like the image above, usually some really bloated outdated web portal thing with 50 different "learning modules" that 90% of university classes never use unless they're forced by the department.

As an instructor, I don't want to "setup an assignment" by digging through three different layers of menu screens! Sometimes all a user wants is a message board.

This semester, I'm running my game development courses on GitHub, Steam Community, and Tumblr. All three provide some semblance of message board functionality, so they're all suitable for teaching. Here's how I'm doing it:

For code-oriented classes, I usually teach with GitHub, though I imagine any Git service would have a similar feature-set. Here, the repository wiki feature is really great. I have my students submit work on the main wiki page, so students share a living document and hopefully feel a greater stake in classroom management. It's basically a message board with one shared post that we all keep editing.

This semester, I'm experimenting with having students create their own personal wiki pages (automatically linked from the wiki sidebar in GitHub) to keep their reading journals and project documentation. Plus, making them visit the course repository website repeatedly is also useful for getting them to "stop being scared of GitHub" and normalizes the process of looking at code from past lectures and creating their own repositories to collaborate. (To enforce this further: if students want digital copies of the syllabus, I tell them download it from the Git repository. I'm told this is a computer science professor-y thing to do. Sorry.) I know some code teachers even correct students' homework using pull requests, to help try to normalize that functionality, but personally I stop short of that.

I'm also teaching a modding classes that use Source Engine, so I've been using Steam Community as a sort of educational hub. The first time I ran the class, we used Portal 2 which had decent integration with Steam Workshop, and some students even built-up fan followings, which was amazing and very rewarding for them...

Unfortunately, the Portal 2 fork of the Source Engine has like a million problems, so this semester I'm switching to Source SDK Base 2013 instead, and coordinating them using a Steam group. Here, my intent is kind of the opposite of my intent with GitHub -- I want to normalize game design and learning as something that takes place everywhere, rather than normalizing the software... and the Steam Community is basically a giant message board. Then when it comes time to grading, I edit their post and add my feedback / comments at the bottom.

For my virtual reality course, I'm been using Tumblr since that's what we did last year. It was a great way to consolidate our progress in the course and document our work -- and imagine more than one student will be re-visiting the Tumblr to grab photos or videos of their past projects, so this public record serves as a kind of backup.

I also discovered that Tumblr has a "submit" feature, which lets me turn Tumblr into a sort of curated wiki thing / track students assignments. Some of their project documentation will involve making Vines and GIFs, and maybe their work will go viral on Tumblr. Like having fans on Steam, it would help reinforce that their education is not happening in a vacuum and their work is having an actual impact outside of the classroom.

* * *

My deeper philosophical objection to school-mandated learning software is the fact that it reinforces some problematic politics about higher education, namely the idea that learning is something that happens in this hermetically-sealed academic subdomain of a subdomain. There, the data stays locked away on the school's servers.

Like okay, maybe society DOES appreciate that you are protecting us from your English 101 paper about the symbolism of the balcony scene in Romeo and Juliet -- but art and design fields require interaction with the public and development communities, for real living people to actually understand what you are trying to do. I also want to emphasize to students that their classwork is a real-game that a real-person might real-enjoy real-playing, and it isn't an isolated academic exercise.

Some more notes about "teaching in public":
  • Whatever modern web service you use today usually works better than whatever bloated ASP / PHP / Java "enterprise-class" thing that the school IT administrator bought a 25 year vendor contract for, even if Steam Community was designed more for sharing screenshots than responding to academic readings. All I need is a big textbox that works.
  • Ironically, when outside of the protected academic intranet, students have greater access to their own data! They can always grab old project documentation or files, vs. their university disconnecting their e-mail and revoking login privileges when students leave.
  • Data privacy is, of course, a totally valid concern. I let students use pseudonyms, nicknames, or temporary "burner" accounts to guard their privacy if that worries them. They're also free to hide or delete all their data once I'm finished grading them for the semester. But they have a strong incentive not to...
  • ... because many tech employers (or any speaking opportunities, etc.) often put a lot of importance on someone's online presence. If someone has a lot of social network followers, or a very active GitHub profile page, then that reassures them that you are what you say you are. Sadly, your online presence is now part of your application / portfolio. (And if you don't have an online presence at all, unfortunately that's even more incriminating than having a drunk selfie or two.) Welcome to Web 2.0, kids.