Wednesday, September 21, 2011

Teaching IF at UCSC

This summer I taught my own class for the first time, through the department I recently graduated from (Digital Arts & New Media at UC Santa Cruz). The class, somewhat inelegantly titled "Games as Literature: The Intersection of Writing and Play," aimed to introduce students to contemporary text-based interactive work, giving them ample opportunities to both play and author projects across a broad spectrum of electronic literature. I'd like to do a bit of a post-mortem to compare notes with other teachers and pass on my experiences.

The course was a five week, five credit summer course, which meant an intense schedule: nine hours of class time per week. I ended up with eighteen students, all undergraduates from mostly computer science and gaming backgrounds, but with a few literature and theater people mixed in. I wanted a focus on contemporary work, to emphasize that this is a living medium with active authors, so I limited the works we'd look at to those written in the 21st century (i.e. the last ten years or so). I wanted to move students through the various subgenres of electronic literature, roughly speaking adding a little complexity each week.

So: week one was hypertext fiction (taking traditional literature and adding the link), week two was IF (adding simulation of spaces and things), week three was (the more nebulously defined) computational and simulationist fiction (adding procedurality and systems), and week four was (the even more nebulously defined) spatial and collaborative fiction (adding multiple players or embodiment of fictions in real-world spaces). Finding good material for the third and fourth weeks was more of a challenge, since they're outside established genres and are much more sparsely populated. The final week would be spent working on and displaying final projects: during each of the first three weekends of the course, students were assigned a "weekend experiment" to create a short work using a tool we'd looked at in class for creating related projects.

My initial thought was to teach three different authoring systems in these first three weeks, then let students pick whichever they were most comfortable with to create their final project. I chose Twine for the hypertext week for its free, friendly, cross-platform interface that exports self-contained HTML. Somewhat predictably, I picked Inform 7 for week two. I had a hard time finding a system that meshed with my concept for week three, however. I considered Fox Harrell's GRIOT system, but it's not publicly released and its LISP syntax would probably terrify novice coders; Chris Crawford's StoryTron was another possibility, although the interface can be fairly overwhelming. Eventually I settled on the somewhat imperfect compromise of splitting the Inform 7 portion over two weeks, focusing on rooms and objects in week two and rules and routines in week three. This in turn led me to  reluctantly assign my own book; I sort of hated to do this, because I think it puts a severe cramp in how honest students are going to be about whether the book is helping them learn anything or not, but there it was.

We touched on creative writing skills and techniques, but didn't have time to get into interactive story theory (despite there being several great resources out there these days). The "readings" assigned were all interactive pieces for students to read and discuss in class. While it would have been great to include the theory, I think the focus on encountering the works themselves (often missing in classes that teach older, more canonized e-lit often incompatible with modern computers) was more important.

Week one went well: establishing a routine for the rest of the course, we looked at a representative work in each mode together in class on Monday, discussed additional works read as homework on Wednesday, and took Friday to learn how to use a system to create such work. I tried to assign challenging work where I could with interesting themes, to emphasize that what we were looking at was literature, not (or not just) game. Starting with hypertext was a great way to emphasize this aspect of the course, and we had some great discussions about what interactivity adds to written fiction. The students did well with Twine, although we ran into a few technical problems, including some crashes and out-of-sync documentation. (I gather it's no longer in active development, which is a shame since it's an otherwise lovely and easy to learn tool.)

The two weeks we spent on interactive fiction were more challenging. I picked Hoist Sail for the Heliopause and Home (Andrew Plotkin, 2010) and The Warbler's Nest (Jason McIntosh, 2010) to show in class, two works that together are an excellent introduction to the medium's potential. Warbler in particular is wonderful at guiding players to the proper syntax and interaction points, and going around the table round-robin style suggesting commands, students could navigate to an ending without me offering any help (including a rousing discussion before submitting the final commands). We ran out of time before reaching the end of Heliopause but were doing well, and students got into the writing and fantastical setting.

For Wednesday, the class was assigned to read Earl Grey (Rob Dubbin and Adam Parrish, 2009) and Everybody Dies (Jim Munroe, 2008). Grey was maybe an odd choice: it has a clever central mechanic (adding and removing letters from words to change objects in the game world) but is railroaded with single-solution puzzles that are often far from obvious. Students were frustrated and complained, but (with no offense meant to Rob and Adam) the experience provoked a great discussion about what not to do in IF design. I think looking at some work with flaws was useful throughout the course, although in an academic setting there's always a risk that this will backfire. This happened more frequently during the close reading presentations students had to give on related work: I included some questionable projects on the list of works that could be chosen, including 1-2-3... (Chris Mudd, 2000; a much reviled piece which I've previously been an apologist for) and LASH (Paul O'Brian, 2000). Students didn't necessarily have the background or vocabulary to know how to engage with some of these pieces successfully, and I think if I taught the course again I'd replace some of these with more accessible works.

Also less successful was trying to teach students, some with no prior programming experience, a significant portion of Inform 7 in two weeks. In hindsight, I tried to move way too fast with this material: I was expecting students to be using rulebooks and extensions while they were still struggling with basic syntax. In week three I introduced them to two extensions, one for conversation (Conversation Framework for Sand-dancer, for synchronicity with the textbook) and one for combat (Inform ATTACK by Victor Gijsbers). The hope was that this would let them explore integrating systems and simulation into their projects without having to do a lot of heavy lifting from scratch. While partially successful (students were able to copy and paste from my examples to get the extensions to basically work), I think it might have been better to spend the time clearing up more fundamental questions about rulebooks, the subtleties of naming, synonyms, and the printed name property, and how named phrases (I7's version of functions) work and interact with other parts of the system.

I also have to admit that students had more difficulty picking up I7 than I'd have hoped. The squishiness of the syntax and the difficulty of determining where the boundaries are between the language proper and the Standard Rules (not to mention any extensions) led to a lot of frustration and confusion, especially among less-confident programmers. Of course, teaching any programming language is difficult, especially under such severely constrained conditions, and I'm hard pressed to think of better alternatives. One option might be to try using an IF design tool that offers a GUI (such as Quest or ADRIFT, although both sadly lack OS X versions, something of a dealbreaker when at least half of incoming students have Macs). This would let students working on basic projects about spaces and things focus more on content and less on syntax. The disadvantage of this would be robbing students of a base to build on: we certainly couldn't learn enough I7 in a single week to get to any of the advanced features that would let you do more than you could do with a simpler tool. When I floated this idea on the last day of the course, the students overwhelmingly agreed that despite the frustration, they preferred sticking with the same language for multiple weeks and building up a skill set with it over starting from scratch each week. I'm not sure there's an easy solution here.

The fourth week of the course was rather scattered (the category being a sort of "everything else" grab bag) but Echo Bazaar proved immensely popular, and we got to field trip outside to look at some augmented reality. During the final week I mostly gave class over to project work time, with an attempt to stress the importance of factoring end users into the design of any interactive work: students could beta test each others' projects in class.

Some impressive final projects came out of the course. Will Lee's Apothology switches between hypertext and IF to tell a story about the futility of choice, with a Kafka-like protagonist arrested for a crime he didn't commit and sentenced to death. The story's conclusion suggests that God is the only one with true choice, followed by a readout of the project's source code. Robert Segura's Peakstar's Legacy was a prequel to Morrowind that involved both combat and conversation systems, introducing a unique mechanism for conversation that bolded words you could ask about and italicized words you could tell about. Victor Nguyen also used Inform ATTACK to create a Left For Dead homage involving half a dozen characters, both allies and enemies, trading blows with various weapons in a gory, fast-paced free-for-all. All the final projects were damn impressive for students who had been introduced to IF and Inform 7 less than a month previously: I was very proud of all the work produced and how much effort the students put into the course.

Overall I think the course was a success, although I certainly learned a lot about teaching in general and teaching e-lit in particular. While exhausting, it was also incredibly rewarding. Maybe the best feeling came on the last day when several students asked me when I'd be teaching another course: I don't know the answer to that yet, but it was validating to hear. Even more validating was the genuine excitement about computational literature as an exciting, living movement: for students who weren't even born when Infocom went out of business, that was an encouraging thing.