Tuesday, September 18, 2018

What if Mario could choose his Princess?

I had my game design students read Keith Burgun's "What Makes a Game?" essay. I think it's an interesting perspective for helping students think about the roles of decisions, solutions, and ambiguity in their game designs. I used it myself a few years ago in a retrospective on my own game design projects. As I have done in the past, students had to bring with them examples from each of Burgun's four levels: Interactive System, Puzzle, Contest, and Game. I pointed out to my students, as I will also do for those of you unfamiliar with Burgun's taxonomy, that the names of these levels are essentially arbitrary: he's not claiming that only things at this level in his taxonomy count as "games", but rather that the things at this level in his taxonomy are what he references as "games." This is reminiscent of the classic McDermott article, "Artificial Intelligence meets Natural Stupidity," which points out that just because you make a Lisp function called Understand doesn't mean that you've made a program that understands anything.

A student presented 2048 as an example of a Puzzle, Super Mario Bros as a Contest, and Hearthstone as a Game. This was enough to spur serious conversation when I asked if the rest of the class agreed or disagreed. Students provided reasonable justifications for their claims. Once the conversation settled down, I clarified the taxonomy based on having read several other essays by Burgun as well as his two books, Game Design Theory and Clockwork Game Design. In one of those (I honestly cannot remember which), he uses Super Mario Bros as an example of a Puzzle because there is a series of inputs that will lead you to the "correct" solution. I pointed out that, in Burgun's lens, the choices you make in a level are not meaningful, not in the same way as the moves are in a game of Hearthstone. We also discussed how you could turn a Puzzle like Super Mario Bros into a contest by, for example, trying to beat your past high score, or by playing it in a tournament, but that now you're essentially making a new Contest where Super Mario Bros is one of the elements.

This got the students thinking back to their understanding of the reading, and I asked them to look at their peers' work, which was posted to the classroom wall, to see if they saw anything in particular that they thought strongly exemplified—or completely missed the boat about—Burgun's taxonomy. One jumped out to me: a student had identified Fallout 4 as their example of a game. I asked if, after the previous discussion, they agreed with this assessment. A student responded that, indeed, because the game has multiple endings and your choices are meaningful to which ending you get, that it was therefore a Game. This got me thinking about the Super Mario Bros example, so I took the devil's advocate position and asked, "What if, at the end of Super Mario Bros, you got to choose whether you got a blonde princess or a brunette princess? Would that now make it a Game instead of a Puzzle?"

We had actually run a minute over time, and so I left them with the challenge of considering where Fallout 4 fits into the taxonomy. As we packed up, one of my students told me that he was pretty sure it was "just" an Interactive System, and not a Puzzle, Contest, or Game. I encouraged him to write up his thoughts on the discussion board or share them in our next meeting.

I wanted to capture this little piece of my teaching experience in part because I like the idea of adding "narrative choice" to Super Mario Bros. I think we can all look at that and say it's not really an interesting decision, but it's harder to distinguish the systemic differences between choosing your princess and any of the binary-ethical-choice BioWare games. Isn't Mario choosing his princess effectively the same as Commander Shepard seducing a selected crew member? What if it didn't matter what you did the whole game, you just picked an ending that you wanted? Then, as I was writing this, I realized that I was describing the conclusion to Deus Ex.

Friday, September 14, 2018

The Paper Metaphor and the Brainwashing of Writers

I had a parenthetical phrase in my previous post that was about as long as the paragraph that contained it, so I decided to extract and reform it into its own post. It's something that's been on my mind the last few days in two of my classes, specifically game design and human-computer interaction. I'm using Google Docs in these classes, as I have done for years in many classes. Google Docs has some excellent affordances for learning, perhaps the most obvious being that student teams can collaboratively write in a convenient way. To me, however, this feature is secondary to the ability to highlight and comment on specific parts of a document and then to transform that comment into a conversation in the margins. If I see something interesting or confounding or insightful in a student submission, I can highlight it and leave a comment. The comment might be a question designed to make a point, an honest question of my own curiosity, a reference to relevant work or other student work, or really anything else I can express in text. Whoever wrote that section of the document gets a notification, and anyone who reads the document can join in this comment thread.

The problem is that my students are not responding to the comment threads. In fact, I believe that this entire semester so far, no student has responded to or even resolved my comments in any of their submissions. I paused to wonder why this was the case, and I came up with two answers. The first is the simple pedagogic answer that I had not incentivized them to do so. Students, like many of us, are busy—some are even busy with with their studies. If there is no incentive to respond to comments, then why bother?

When I teach CS222 (Advanced Programming), I often use a resubmission policy through which students can rework old assignments, learn from their mistakes, and resubmit for course credit. If a student resubmits something and they have not responded to my comments, they should expect me to simply kick it back to them. I believe that this policy is generally good for students, since they have a real incentive to learn from their mistakes, although it also has the negative consequence that some students submit substandard work knowing they can resubmit it later. That aside, the resubmission policy requires a lot of effort on my behalf: not only do I have to grade a submission more than once, I also have to try to understand and comment on the differences between the original and the revised submission. The burden on my time is one of the reasons I am not using a resubmission policy this semester.

I think there's something going on here besides just the incentive structure, however. Conventional educational practice involves students "turning in" work to the teacher, who then evaluates it, assigning a grade and giving some feedback. A student gets the paper back, looks over the comments, and then discards it. Online writing environments like Google Docs draw upon a conceptual model of writing on paper, in part because the legacy of text editors is often tied to the concept of printing onto paper. It's worth noting, however, that "plain text" editors make no such pretense. While it's possible ti know what "page" you're on when programming in your favorite programming environment, nobody does it. Concepts like "page" are purely metaphorical in a digital writing environment: there is not a "page" at all, not unless work is printed onto said page. Because rich text editors draw upon the conceptual model of paper, however, students get drawn into the same one: whether a student gives me a URL or a printed sheet, the culturally expected behavior is the same. This phenomena rose its head earlier this semester when I noticed how many students were putting hard page breaks into their Google Docs documents that are intended to collect all their work. This makes it tedious for me to scroll through their work, because to me, the conceptual model is "chronological log of work," but to them, the model appears to be "series of pages of work."

What I intend, when I leave comments into a student's document, is the conceptual model of conversation, not submitting paper to a teacher. Imagine sitting with a student who makes a claim such as, "I don't think Don Norman gives enough credit to the role of amateurs in his discussion of the future of design," and you say to him, "Why is that?" and then they simply walk away. Cultural constraints around conversations tell us that this is not only strange but rude. However, I have left, oh, let's say thirty questions in students' submissions already this semester, and they have all essentially got up and walked away. I think it's a mismatch of mental models: I think we're having a conversation, where they are in a transaction.

Unfortunately, it's not clear to me how to encourage students to use the feedback-as-conversation mental model without adding incentives such as resubmission. This means that once again, it breaks away from being an exchange of ideas and into a transaction around points. There's always the opportunity to turn it into an achievement in a course that uses it, although I'm not using many achievements this semester as I experiment with specifications grading instead.

My observations beg the question, "What would a digital writing environment look like that fosters the conversation rather than transaction mental model?" I hate to beat a dead horse, but I think this is exactly what Google Wave was getting at, and perhaps is one of the reasons why it didn't catch on. It was solving a problem that people didn't know they had, because they were locked into a different conceptual model of how writing and conversations manifest. For programmers, the answer is clear: digital writing looks like GitHub, which integrate writing and conversation along with version control and issue tracking. If GitHub supported commenting on text without needing a pull request, then perhaps using it and Markdown would be a viable alternative to Google Docs for the kind of learning environment I want to foster.

Wednesday, September 12, 2018

Fairy Trails as a Lens: A Tale of Classroom Surprise

Regular readers will remember that last Spring, my immersive learning team—Guy Falls Down Studio—collaborated with Minnetrista to release Fairy Trails. Fairy Trails was a notable project for its unconventional design. It is a geolocative game based on Minnetrista's campus, what I have sometimes called "hyperlocal" because you can only play it at these specific places in Muncie, Indiana. It is driven by an Android or iOS app, but the gameplay happens in the physical world outside the app. This is done in part by designing the app for facilitators, those who bring others to Minnetrista and are focused on these others' enjoyment. This design decision was made in consultation with Minnetrista, who use a local modification of Falk and Dierking's taxonomy of museum visitors to describe who comes to their site.

This semester, I am teaching my Serious Game Design colloquium through the Ball State Honors College. I posted about the course design a few months ago. I am continuing my partnership with Minnetrista, and so one of the major outcomes of the colloquium should be that each student produces an original game design based on our partner's themes. I have also peppered references to Minnetrista through the exercises in the first half of the semester. This semester's students had to play Fairy Trails in the first week of classes. A later assignment involved writing a critical analysis of a game they had played, and I was surprised how many chose to write about Fairy Trails. In almost all of these essays, the students made claims about (1) what, in their mind, the game was supposed to teach, and (2) about how it failed to do so. When I pushed back on these claims in my comments on Google Docs, none responded.

The assignment due yesterday involved the students' reading a chapter and a short summary about taxonomies of players and fun, and then to propose new fairy encounters for Fairy Trails, drawing explicitly upon the taxonomies in the reading. Here's the surprise hinted at in the title of the post: some of their designs were really good. Let me share with you a few of the more memorable ones:

  • Several designs involved the herb garden, in which the players have to try different herbs and then are encouraged to gather a few for home cooking.
  • At the wishing well, the players each make a wish. The fairy asks them to categorize each wish as love, fame, or fortune; they are then rewarded with an excerpt from a classic fairy tale based on the same theme.
  • A fairy wants to get from the Oakhurst mansion to the E.B. Ball Center, but she has to stay in the shade. The players have to take paths through the Oakhurst Gardens rather than taking the direct route along the road.
  • A few students involved the nature area in reflective exercises, including one that involved finding different particular sites or species on the trails. 
  • A fairy explains that the Ball family had an enormous collection of fairy tales because Elizabeth Ball's love for them, and then asks each to share their favorite book.
  • A fairy encourages players to engage in a game of hide-and-seek in the Oakhurst garden.
  • A color fairy in the backyard garden invites the players to find and share colorful discoveries with their friends.
To me, the most fascinating part of this list is how different it is from anything we discussed in the production of Fairy Trails and how different these are from the kinds of prototypes built by last Spring's class. The crucial difference between last year and this year is, of course, the creation of Fairy Trails itself. I suspect that having this game available changes the lens through which students can consider the creative challenge of incorporating Minnetrista's themes into a game.

After their presentations, I asked the students to reflect on how these ideas came to them. In particular, I wondered if these were ideas they had from before playing Fairy Trails, immediately after playing it, or in response to the aforementioned readings that they had successfully incorporated into their presentations. Many of them responded that they felt the original Fairy Trails fell flat for them: they had assumed before playing it, based in part on my explanation of the course, that it should have more explicitly informative and educational material about Minnetrista. Those who have played the game know that it does not: it contains three fairy adventures that are designed to be fun for groups to play, especially family groups, and it is not at all didactic. Many of this semester's fairy designs then were informed by this idea, such as including reference to the Balls' fairy tale collection and the fact that you can sample and collect herbs from the garden. The student who designed the scenario to roam the nature area wanted something "less childish" than the current game. The hide-and-seek designer noted that Fairy Trails does nothing competitive, and so he was inspired to create something that would appeal to player types not currently served by the app; he used the readings to inspire him along an angle that he wanted to include. Only one student said that the readings directly influenced her design: she had noticed earlier in the semester that no existing fairy used the herb garden, but had not dwelt on this. When she read about "sensation" as a kind of fun, it brought this to mind and she realized that she could use taste in her fairy encounter.

We discussed briefly the fact that several people had chosen the herb garden (and one, the community garden) as locations, while the Fairy Trails production team never considered these. I wondered at this for a few moments until I remembered that we designed the game in the winter! Although last Spring's studio team could see where the herb garden and community garden would be, we could not actually see it functioning. I think this gave that team a blind spot that this group, who visited in the peak of herb and vegetable season, was able to see and take as inspiration.

Several of these fairy encounters are very exciting to me, but I don't currently have a team who can put them into the existing version of Fairy Trails. It's still a toss-up as to whether we will expand on the existing app in the Spring or whether we will pursue a different direction. In any case, I wanted to capture some of these experiences here on the blog. Even if we do not come back to them as inspirational fairy encounters for Fairy Trails 2, I think it's quite interesting how having a working version of the game changed students' ability to conceive of interactive, Minnetrista-themed activities.

Wednesday, September 5, 2018

Configuring Perforce Helix for simplified Game Programming project grading

My game programming students had their first mini-project due yesterday, and I'm happy with the results. The "Angry Whatevers" project is designed to get students familiar with UE4 and Blueprint by making a simple fire-a-projectile game. It's essentially the same introductory project I gave in Fall 2017, when I first switched the course to UE4. However, this year's projects were on average much more interesting and higher quality. I attribute this to two factors: first, I used a specifications grading approach, which made it very clear to students what they had to do to achieve different grades; second, I am more seasoned with UE4 and was able to articulate, teach, and clarify more easily than last year.

Last year, we used GitHub for version control, but this caused several problems for us, the most pressing of which was that a distributed model doesn't work well for the non-mergable binary assets that constitute the bulk of a Blueprint-based UE4 project. In the Spring, I learned and deployed Perforce Helix with my studio course, and I decided to go ahead and use that for this semester's game programming course as well. It was a little choppy to get started as I had become rusty with some of the core configuration. My first pass involved making one depot per team, but I my conceptual model of workspace mapping was wrong.

When I spent several hours trying to rebuild my understanding of Perforce Helix and how to integrate it with the course, I realized that I could get away with one structured depot. This depot was called CS315Depot, and I wrote up instructions and recorded a private YouTube video explaining how to set up the mapping. One of the crucial steps that I had forgotten was not to use the graphical mapping tool in P4V. Instead, we used the text-based mapping specification, so that if I was working on a Project 1 ("P1"), then I would make a workspace called PaulGestwicki_Laptop_P1 and use my UE4 project as the project root. Then, I use a mapping to the depot like this:

//CS315Depot/P1/PaulGestwicki/... //PaulGestwicki_Laptop_P1/...

What this does is map all the files in my local workspace to the folder P1/PaulGestwicki on the depot. The real magic, then, is that when I want to grade the first project, I can make myself a new workspace, something like PaulGestwicki_Laptop_GradingP1 and map it to the whole P1 directory:

//CS315Depot/P1/... //PaulGestwicki_Laptop_GradingP1/...

In one action, I can grab all the student projects into my workspace and then batch-grade them, without having to make N trips to the depot or create N different workspaces. Also, I could easily set up one group (CS315) for all the students and give that group write access to the shared depot and read access to my depot of demos. Note that this does mean that students can check out each others' projects, which I am happy to support; it also means that they can accidentally destroy each others' work, but that's why we have version control in the first place.

One of the common errors I saw with several students was that they forgot the last slash in the mapping, which ended up with them dumping their Content, Config, and .uproject files into the root of the P1 directory, prepending their usernames to each file. Some students recognized the problem, and I was able to just obliterate their old files so they could try again. Because it was so easy to recognize the error by glancing at the depot, I was also able to email students and point out where they had unwittingly made a configuration error.

Perhaps this idea will be useful to you, dear reader. In any case, I hope it will be useful to future-me in case I forget how to do such a thing in the future! I offer my public gratitude to Perforce for their academic licensing that allows my students to use their software, and of course, gratitude to Epic for the very generous licensing of Unreal Engine.

UPDATE: When I went to adjust some grades the other morning, half the projects were gone. I looked at the changelog history, and I found one that looked suspicious. It touched every file in the depot, which makes me think they had a mapping wrong. What was really strange to me was how this affected the tools themselves: when I viewed the project in p4admin, I could see all the files I expected; when I viewed in p4v, half the student folders were gone and could not be mapped. I am still quite perplexed about what could cause this. However, the good news is that after I backed out that changelog, everything ended up back where it was supposed to be. Version control for the win!

Thursday, August 2, 2018

Family Crafting with Gaslands

You may recall that my boys and I played our first game of Gaslands several days ago and really enjoyed it. Inspired by the fun game and the photographs in the rulebook, we were excited to try making our own post-apocalyptic death race cars. We have a few Matchbox and Hot Wheels cars around the house, but these are played with pretty regularly by my younger boys, and so I was hesitant to take those. We stopped at two local thrift stores and found not a car in sight; there must be other players scouring the area. I put out a call on social media for unused cars, but all our ready sources are hundreds of miles away. The boys and I ended up just going to Meijer and buying some new ones. I was disappointed not to find anything to fit the lightweight cars category—buggies or motorcycles with sidecars—and the selection of pickup trucks was very thin. We found enough to get started, brought them home, and then started beating them up with files—an idea I got from Universal Head's car modding tutorial.

I have been painting miniatures for about four and a half years now, but I do almost exclusively board game miniatures. As a result, I don't have much of a bits box, just a very few odds and ends. It seems some of the people who are into the hobby are drawing on existing collections and kit-bashing experience. In my case, a bit of online searching helped me find FunBoardGames on Etsy, who sells 3D-printed accessories that are a good match for Gaslands. I picked up a few items, knowing that the boys would likely go hog-wild, and FunBoardGames was kind enough to throw in an extra bag of bits that the guys could use.

That's enough of the backstory, let's get to the cars. I'll start with mine, and then I'll show you what my boys have worked on as well.

This is Spiky Poles, who is named after a helpful tutorial message in Prince of Persia: Sands of Time that my wife and I have been laughing about for years: Avoid spiky poles. This is advice to live by. The car here was best pickup I could find, and I knew I wanted a turret-mounted heavy machine gun in the back. I ended up cutting up a plastic pipet and using the fluted part. It's a bit flimsy, but I hoped that with the addition of glue and paint that it would hold up.

I decided that I would show solidarity with my boys and, instead of working on the cars in the sanctuary of my office, I would work alongside them at the kitchen table, using their craft paints and ragged brushes. These craft paints behave very differently from my model paints, being very gloopy and hard to thin. They also take unbelievably long to dry. The downside is that painting was very slow, but the positive side was that I could mix a custom color, go have lunch, and come back to find the paints still wet. In fact, before we started painting, I splodged some black onto a newspaper, and after several hours of painting, it was still wet when we cleaned up. The paints' deciding not to dry inspired me to do some wet-blending, so I put flames on the hood of this truck. Then I looked over the rest of it and thought, "Should I add more flames?" I laughed, because of course there should be more flames. I mixed a black and sepia ink wash to pinwash the recesses. For weathering, I mixed some rust colors as I did for Stuffed Fables, stippled a light brown on the lower portions of the car for dirt, and used a sponge to stipple gunmetal onto some raised areas to give the illusion of chipped paint. I also mixed up black and brown ink with some matte medium and used this as a rough wash around the lower parts of the gun.

As usual, I used hot glue to affix the models to corks for ease of painting. What I didn't expect was how tightly the glue adhered to the underside of the cars. I accidentally broke the machine gun off its turret while futzing with the glue. Look again at the pictures and you can see the plastic turret showing through. I will touch it up later, but I leave it here as a reminder to myself to be more careful about such things in the future.

This is Guy Smiley, a little hatchback I found that, from the moment I saw it, I could picture a giant minigun mounted onto the luggage rack. I started with the red-orange color without much of a plan. The piece along the bottom was a different color in the original car, and I decided to do something bold and go with purple. This looked OK but still felt like it was missing something. Out of nowhere, the idea of zebra stripes came into my head, so I started freehanding the stripes along the purple parts of the car. Now I was getting somewhere. Just having stripes on the bottom didn't seem right, though, so I painted the lines along the front and along the doors and back, along with a "V" shape on the front. The sides still looked too plain, but now I was getting into a useful creative mode: I could start to picture a half-mad gearhead detailing his precious minigun hatchback. I added "Get Out!" to the driver's side and "Die" on the passenger side, and this made me think of a maniacal face with a grin that exceeds its head. About twenty years ago, a friend of mine made me a mix tape when I was feeling down, and she drew this funny little guys with smiles twice the size of their heads, and that has always struck me as a wonderful mix of cheerful and creepy. I replaced the hood's "V" with something more thematic, made the back look more like a creepy face, and added another smiley guy to the side. Nice. The lining and weathering on this car was done as with Spiky Poles.

Turns out that #1 Son and I had similar ideas for our teams. This is his car with a front-facing minigun, although he chose to side-mount it rather than top-mount. He is 11, and he has correspondingly more patience than his younger siblings. I think he did a fine job on this car. I mixed up a black-and-brown ink wash for him, which he decided to put over the whole thing, which gave it real dingy look. I suggested he go back and add highlights, but he decided he liked it the way it was.

When I realized I could put some inspirational writing on the side of Guy Smiley, I asked aloud, "What should I write on the side of this car?" #1 Son answered, "Loser." Perfect, I thought! Then he admitted that it's what he had been thinking of writing on his. Well, I couldn't use that any more, but I think he did a good job with it. It's a little hard to see, both because of the wash and the angle of the picture, but he actually wrote it in two colors on the passenger side. The two colors looks great, and I thought about copying that for Guy Smiley, but I decided to stick with the single detail color to keep a simpler color scheme.

Here is #1 Son's truck-with-ram-and-turret-mounted-machine-gun, which again was developed totally independent of my own. As we were planning out our colors, he referenced a color wheel and decided intentionally to take complementary colors for high contrast. This kid, he'll turn into something. The base of his turret is another piece of that pipet that I cut up.

Looking over his cars now, I wonder if he would have enjoyed adding some weathering. I did my dirt and chip effects after the guys had gone to bed. Next time, I'll show him more about how I did that, in case he wants to try it himself.

#2 Son is eight and worked on these two cars. We developed his team before acquiring cars, and the team includes a buggy and a car. Unfortunately, we found nothing like a buggy, and he really wanted to use this humvee as a "car" and not a "truck". It gives a little bit of dissonance in the game, and a few times we forgot that the jeep was a different weight for purposes of smash attacks. That's just part of playing with younger guys I think, though. I think he did a pretty good job here. We used an ink wash to got into the recesses, and a bit to my surprise, he took some time to go back and add some highlights to a few areas. He was inspired by the lettering on our vehicles, and so he wrote "race" on the hood of the jeep. (And yes, that jeep has a side-mounted machine gun.)

I remember when I was a little boy, I had an orange muscle car, and I painted a confederate battle flag on the top of it to make it into the General Lee. I can picture it in my mind's eye. I knew it was not a perfectly rendered flag, and yet I was so proud of it, because it was the General Lee. It was almost like an icon or a signifier rather than the thing itself. I have not asked my younger boys about any of their artistic decisions, about if elements are supposed to be something else I don't recognize, or if the chaos of the brush and the paint is enough.

There is a sense in which this is the coolest of the cars. #3 Son is five years old and, for as long as he can remember, has loved to wave to the garbage man. Turns out, we have a very cool garbage man, who will always honk the horn and will regularly come out and talk to the boys. This morning, in fact, he got out of his truck and joined them in drawing with sidewalk chalk for a minute or two. Many months ago, he gave the boys little Muncie Sanitary District trucks. When I explained to the younger two boys that they could each pick a car from their collection to mod, #3 Son went right to his trusty garbage truck.

I dumped out the bags of weapons, and he picked out a 120mm gun and two machine guns for the top, a ram, and two more machine guns for the sides. The way he wanted them all attached was tricky to do all at once, but I was able to get the guns you see here attached in between helping the other boys. He ended up being content with this set of weapons and went on to paint it.

The truck started out in bright and bold colors, but keep in mind that these craft paints just won't dry. As he added more colors, especially as he started adding some black, everything ran together into kind of a mess of brown. I encouraged him to let it dry, then come back and "highlight" it. He was unsure at first, but he came back and added more bright colors on top of the muddy browns, and now it has a lot more life. Along the way, I also talked to him about ensuring that he painted into all the recesses so that we could add a wash to bring out some of the details. He was over the moon at this idea, and he did well for a five-year-old. He even added another layer of highlights after the wash.

The Youngest Son is only three, but of course he wanted in on the action. He picked some kind of emergency vehicle and was content to put the largest possible gun on top of it. You can't go wrong with being three, having trucks, paints, and giant guns, and sitting with your dad and brothers at the crafting table.

The two younger boys are too young for Gaslands, and in fact, the game may be a bit too long for #2 Son as well, who is at the edge of the recommended age listed on Board Game Geek. However, I also recently bought the rulebook for JUNK'D, a simpler yet similarly-themed game that is designed to support modded cars. We played a whole-family game using the Print-and-Play components on Tuesday, and the little guys did OK with a bit of coaching.

Yesterday, the two older boys and I got our cars to the table for our first Gaslands death race.

Here they are, lined up at the starting position on the dining room table. I won the roll for pole position, and so Guy Smiley was lined up in position to shoot straight through a sort of obstacle funnel that we had on the table.
Despite the poor quality of the photo, you can see the chaos after the first full round. Guy Smiley has already made it through the first gate, while most everyone else is jammed up. A lot of those cars have rams, so there was a lot of "take that!" which worked to the advantage of Guy Smiley. He took a few shots from #1 Son's cars, but he was able to turn the corner and hit high gear to escape to victory. We had a lot of fun, and the boys are eager to play again.

The boys and I had picked up a few extra cars, and I think they're excited to build more teams and mod more cars. With my Meaningful Play paper accepted, a grant proposal submitted, and my three Fall courses revised and in place, I'll be looking forward to more crafting and racing.

Thanks for reading!

Friday, July 27, 2018

Summer Course Revisions 2018: Human-Computer Interaction (CS345/545)

Wrapping up my series (1, 2) of summer course revisions is this one: the revision to CS345/545, Human-Computer Interaction. Regular readers may recall that I wrote a public reflection of the Spring semester's offering early in the summer. In a strange twist of scheduling, the course is being offered again in the Fall, which means I get to make revisions and apply them right away. (Even stranger, another faculty member offered a summer section that made enrollment, but that's not directly relevant to my own work.) I made some of these revisions alongside the changes I made to my other courses, and then I picked the course back up yesterday morning for the finishing touches. 

I tried to keep what was good about Spring's section while remedying some of the items that I found problematic or confusing. The overall structure of the course is the same as before: we will spend a few weeks on background readings and regular exercises, focusing our attention on Don Norman's The Design of Everyday Things. We will be moving from three meetings per week to two, so I adjusted the readings and assignments accordingly. It's a rather aggressive reading schedule from the get-go, which should help the students recognize they need to allocate adequate time. I added a few readings and videos, including Steve Krug's usability testing video from Rocket Surgery Made Easy, a recent Designer vs Developer episode from Google that gives a good overview of design principles (though I take serious issue with the implicit epistemology of that series' title), Jakob Nielsen's "Why You Only Need to Test with 5 Users," and Andy Rutledge's series on Gestalt principles of perception.

I have kept the grading scheme essentially as it was, although I added a new required assignment for graduate students. This will help distinguish their work a bit more than it was before during the project section of the course. Grad students will have to choose one out of four options, each having a different theme: scholarly research, software architecture, design principles, and design methods. As before, they will also have an additional set of assignments early in the semester, which give them a crash course in some of the ideas that the undergraduates would have seen in their prerequisite, CS222. Our graduate program has no equivalent course that can be used as a prerequisite for grad students, so these extra assignments help to catch them up to where the undergrads are.

Last time, I used triage grading as the theme of the short project: students had to talk to others who were exposed to triage grading and design something that would help them with the transition. This backfired when many of my students did not take the time to learn triage grading for themselves, and so they were unable to create interventions of any merit. One group even insisted that the best solution was to change triage grading, essentially replacing it with conventional grading; despite repeatedly discussing this with them, they didn't ever seem to understand that this was not within their jurisdiction. Several times during the final project, I referred back to their failures on the triage grading project; some students seemed to be able to take this as a learning experience, but others didn't seem to show any recognition of what went wrong, judging from what they ended up with.  Suffice it to say, I am going with a different theme this time: BSU freshmen who do not know local jargon and landmarks. Freshmen are plentiful for use as research subjects, and my students are not themselves freshmen.

About two weeks ago, I set up a partnership with the David Owsley Museum of Art (DOMA), which is really a treasure of Ball State University's campus. My students will go on a tour of the museum early in the semester, and then, after we go through some of the background material and the short project, we will talk to them again about their mission and goals. The students then will have creative freedom to create an original, prototypical software system that explores these themes. They were very happy to have my students accessing their digitized data as well, although it is managed through the university's Digital Media Repository.

Here is where things started to break down. I assumed that my students and I could just get read-only access to the database. They shied away from that and asked if we could work with a dump of the database. I've been going back and forth on emails for the past two weeks now trying to sort this out. To be clear, everyone is very supportive of the idea, but nothing seems to be happening. At this point, I'm awaiting a dump of a database to see what I can do with it, but I don't have an ETA. I've been working pretty consistently all summer, and I'm heading into a family vacation and "taking some time off" mode, so if I don't get my hands on that data soon, I won't have time over the summer to sort it out. The good news is that I found a good back-up plan. Searching the Web for art museums with public APIs, I came across the Digital Public Library of America. They have a nice, open API that seems to aggregate many other data sources. If we cannot get access to DOMA's data, I know we can use DPLA's, at least for the sake of our prototype. If we go this route and a student makes something that really excites DOMA, we can look at stitching it back into their data.

I've copied over the new decorum section from my other two course revisions into this new one. As I wrote about earlier, this section is designed specifically to address some of the frustrations from Spring's HCI course. You can be sure I'll let you know how it all turns out by the time the Fall semester is over, if not before.

That pretty much wraps up my summer course revisions, modulo some potential extra work specifying another mini-project in game programming or tinkering with data sources for HCI. It's been a productive summer so far. I spent a week writing a manuscript for Meaningful Play, which I just found out was accepted, so I look forward to returning to Lansing in October. It needs just a little bit of revision which I will do tomorrow morning or next week. I also am one click away from submitting a grant proposal for a new educational game collaboration. Of course, I started the summer by sinking a lot of time into Collaboration Station and Fairy Trails. I've triaged the former into a holding pattern: although the anonymous authentication feature I needed was finally added to the third-party library we used for multiplayer, the changes to that subsystem require more effort than I am willing to donate. I'd rather spend that time on some new prototype ideas, playing around with Unreal Engine 4.20. I think the next project on the docket, though, will be building some custom cars for Gaslands: that will make it really be a summer vacation.

Thanks for reading!

Monday, July 23, 2018

Getting started with Gaslands

My brother told me about Gaslands, a post-apocalyptic vehicular skirmish game, and it piqued my interest. My elder son and I played several games of Frostgrave a while ago and really enjoyed it, although our campaign petered out without fanfare. (Wow, was it really two years ago? More on that later.) Both games are from the same publisher—Osprey Publishing—and just like Frostgrave is based on using your existing miniature collection, Gaslands is played with whatever old Hot Wheels or Matchbox cars you have. I ordered the rules and sped through them; my son saw me reading, asked about it, and read them as well, and we agreed that this sounded like fun. Vehicle maneuvers depend on movement templates, which we could have made ourselves out of paper or cardboard, but hey, I got promoted, so I bought some MDF templates and tokens from MRlasershop on Etsy.

I shared these short session reports on Facebook, and I decided to copy them over here to the blog, where it would be easier for me to revisit them later. In preparing this post, I looked back over the Frostgrave one, and it's hard to believe that was really two years ago. One of the reasons Gaslands caught my attention is that the BoardGameGeek page claims it's playable by ages 8+, compared to Frostgrave's 12+. My second son is 8, and he sits pretty well into the BGG recommended ages, so while I suspect Frostgrave is still too much for him, I thought Gaslands may be just in the zone of proximal development. (Yes, that's how we do things around here.)

The day my templates arrived, my older son had a class to attend, so #2 son and decided to jump into Gaslands' recommended starting game: two cars per player, each with a front-mounted machine gun, in a last-man-standing deathmatch.

My son's bedtime was not too far off, so we agreed to play a time-limited game. It was a little choppy as I was trying to sort out the rules. They are presented in the book like they were written by a programmer: concise, clear, in order, and decomposed into named procedures. This makes them easy to reference, if you know what you're looking for (that is, debugging), but it's not necessarily the best way to express the big picture ideas. I had printed up the official quick reference card and a convenient cars-only dashboard I found on BGG, and these helped smooth out the experience.

Toward the end of the first game. MDF movement template example shown behind the red and black hot rod.
We began in a tight grid formation for maximum carnage, and I only have that one picture of the game. This is a shot right before my son misjudged the tightness of a hairpin turn and smashed his grey car right into that orange gate. It let us learn the collision rules, and it took us right to bedtime. Play time was just under an hour, and we enjoyed it. #1 son was jealous when he saw the cars on the kitchen table upon returning from his meeting.

The next morning was Saturday, and we set up a three-player game with the same rules. We took two cars each and set up a pair of them—controlled by different players—at three points of a triangle. I took a few more pictures of this one, not really intending a full battle report, but it turns out I had enough to capture some of the highlights.

#1's gray car is about to move in and take a solid shot on my black car. My white car (bottom right) is thinking vengeance and swings in behind him. Out of nowhere, #2's red buggy (top) comes flying forward, sliding and spinning, ending up right in front of my white car. He blasts away with his machine gun, but now we're both in third gear and practically bumper-to-bumper: collision on one of our activations is inevitable.

Then, #1's white car (bottom left) comes careening toward us and rams #2's buggy! Neither one is destroyed, but my #2's car are still headed for inevitable collision.

My white car slams into the front corner of #1's white car. Neither driver tries to evade, and my car is destroyed. It flies forward, ramming into #2's buggy, demolishing it as well. #1's white car somehow survives this carnage, as neither my nor #2's car explodes.

Behind all this, here comes #2's orange hot rod, making an easy medium straight maneuver. The crew leans out with their pistols and put the last point of damage onto Alex's white car, destroying it. That's how we all lost our first cars.

Now that orange hot rod had pulled off a crazy sliding, spinning maneuver on its first activation, which had let it tear into one of my cars with its machine gun, but it's sitting on several hazard tokens. At this point, it's in fourth gear and headed toward the edge of the table. #2 drops his gear and tries to turn, but a really unlucky roll has him slide off the table, disqualified.

In truth, #2 son was having a hard time staying focused on the action. Even though the turns go quickly and—from my perspective—everyone has a stake in each turn, it was just a bit too long for him. He's also a really kinetic kid, and so he would go physically spinning off into the next room, making explosion and crashing sounds and throwing his arms into the air as anything exciting happened. Having him eliminated first was okay, and I think we'll have to take his developmental limits into consideration if we try to play any other scenarios. I'm wondering if he would be better served by a small custom game, something less than the recommended 50 cans.

Back to the session report. My black car spun around and tried to out maneuver #1's grey. I wasn't able to get it under control though and had to choose between ramming the pillar or his car. The choice was clear. We smashed into each other, leaving each with just one hull point remaining. He pulls of a crazy hairpin turn and spin, finishing me off with his front-mounted machine gun. #1 son is victorious!

The interlocking system of gears, maneuver templates, and skid dice is really excellent. It's pretty elegant: the higher gear you are in, the more moves you get, but the more dangerous the moves are. On any move, you can roll skid dice to attempt to shift gears, spin, or slide, but sometimes this goes very badly. I've seen enough post-apocalyptic movies to vividly picture the setting, and I've seen enough action movies to picture the crazy car maneuvering. Heck, I've spun and skidded out in my own cars, and so I know that feeling viscerally. My wife asked an interesting question about it: how do my kids envision it? How does someone with no cultural context around MadMaxian post-apocalyptic cars visualize the action?

This brings up another interesting piece of the game, and I've tried to capture this in the session report above: it is cinematic. It's turn-based, but it feels more like everyone is moving at once, but the camera keeps changing. One of my drivers sought vengeance for his team. The driver of the orange hot rod pulled off crazy maneuvers but overdid it and ended up careening off the cliff. Three different drivers headed straight for each other in high gear in an insane game of chicken. I think this dramatic sense is facilitated by the fast turns and what are really simple rules, once you get the basics down. To this end, the designer's suggestion of playing the two-car deathmatch is a good one.

My boys are all pretty crafty kids, and I think they will enjoy converting some old cars into Gaslands teams. The kids don't know it yet, but I ordered a bunch of 3d-printed weapons from FunBoardGames on Etsy, and those should be here this week. I'm thinking about seeing if they want to try crafting the rulebook's recommended team builds as a first try. I suspect a trip to Goodwill to look for more vehicles to beat up is in our near future.

Thanks for reading. As I mentioned above, I enjoyed going back and reading my Frostgrave report while writing up this one. This is one of those posts that is mostly for future-me, so I can look back and remember some fun family memories. Who knows how often we'll play this one, if it will fade out like Frostgrave, or if it can all come back to the table as the younger boys get a bit older as well.