Wednesday, August 26, 2020

Family Painting Massive Darkness: The Mobs

I have written earlier this year about our Family Painting projects. Everybody in the family—all four boys, my wife, and I—works together to paint a set of board game miniatures. all of which came from the Arcadia Quest series: we have painted the core set, the Riders expansion, and the Beyond the Grave expansion. Everybody enjoyed it, and especially the youngest boy was eager for the next chance to paint together. Where could I go next? What figures did I have that would look better painted, despite the range of patience and skill of the painters?

How about 101 figures from Massive Darkness? Yes, that just might work.

I backed the original Massive Darkness campaign and enjoyed playing with my two older boys. More recently, we taught the third boy how to play, and he loved it. For those who are unfamiliar with the game, it's a bit like Diablo turned into a board game: throw a handful of dice to swing your mighty axe and watch the enemies fly off the board. It has received some criticism for its design, but we have always enjoyed it for what it is. Like a lot of people, I backed it in large part because it was a great deal to buy a bunch of beautiful D&D-style miniatures. The fact that we enjoyed the game is kind of icing on the cake. 

Regular readers may recall that I painted the base set heroes and the Kickstarter extra heroes a few years ago. I still think that some of those heroes are among my best paint jobs. I have not painted any of the amazing monsters from the game, as something always gets in front of them. I wonder if I was playing more tabletop fantasy roleplaying games if that would incentivize me to beautify the monsters. In any case, the mobs are a foundational element of the game, though transient. You bring out a group of, say, Goblin Warriors, consisting of a mob boss and maybe six or twelve warriors. These warriors are essentially the hit points or health of the mob, each point of damage inflicted taking one off the table. They don't usually last very long, and the mob's boss is the last one to go. Over the course of the last several months, I have primed and mounted on corks all 101 of them, and over many sporadic sessions, we painted them all.

When we did the Arcadia Quest figures, I put the initials of each painter on the bottom, figuring that it would be fun to look back in a few years and see how skills improved. A lot of these figures were painted by individuals—the bosses in particular—but maybe half of them were painted by multiple people. My wife's style in particular was to keep applying paint while she had any in her palette, so if she had a good skin tone for dwarves, then she kept churning out dwarves. These ones, then, are not marked for who painted them: it's a product of the collective.

Without further ado and in no particular order, here they are! The bosses are all on the left of the photographs.

Goblin Warriors

Goblin Archers

Dwarf Warriors

Troglodyte Warriors

Orc Flayers

Troglodyte Brutes

Dwarf Defenders

Orc Enforcers

All together in imperfect lighting on my spare table, here they are!

101 Cornets Close at Hand

I don't think we were even done with the last figures of our last set before my youngest son (5) asked what we will be painting next for family painting. I explained that he could save up his allowance money to buy any kind of figure he wanted, and that I would be happy to sit with him and paint together that way. He was unimpressed.

I did actually just back Massive Darkness 2, despite some significant disagreement with parts of the artistic direction. Some of the figures look great, but I'm most excited about how it might breathe new life into this game that now we've all invested a lot of time into. Although the last thing I need in my office is more plastic, it will give us plenty more fodder for family painting as well, though I don't expect it to arrive until two years from now. 

Incidentally, while the family was painting the mobs, I painted the agents. I was originally pretty excited about these four figures, starting with the Troglodyte Agent. The next day I woke up and had a funny realization: doesn't the dwarf figure also have the same kind of funny ear coverings as the Trog I just finished? I pulled out the card art for the dwarf... it's wearing basically exactly the same thing as the Troglodyte! Look at the Goblin and Orc... I had no idea, but they're all basically wearing the same thing, like some kind of bad-fashion cult. This took some of the wind out of my sails, and I figured I'd just batch-paint the other three. It turns out there are some tonal differences in them, and so they weren't as much of a let down as I had feared. I think the result is good, and of course, they will look better painted than not. 

Orc, Dwarf, Troglodyte, and Goblin Agent

Hm, that makes me really feel bad for some of the big bad villains. Unfortunately for them, they got pushed to the back burner yet again as I have started another board game set, but you'll have to come back another time to read about that.

Thanks for reading!

Friday, August 21, 2020

A slightly easier way to get started publishing to GitHub Pages with Workflows

 I wrote a while ago about an approach to automatically publish Web apps to GitHub Pages using GitHub Workflows, looking specifically at approaches for Flutter and for Godot Engine. I have used that approach a few times since blogging about it, and the one step I really never liked was that necessity to push something to gh-pages before it would work. I could never remember the command-line syntax either, so I kept having to look up my own blog posts to make it work.

This morning, in preparation for the start of classes and recording a video tutorial, I came across the recently-released manual event triggering with workflow_dispatch. It turns out that by adding one line to my existing workflow specification, I can make it so that the workflow can be started from GitHub's site.

Let's cut to the chase. Here's what I consider the simpler approach:

  1. Include workflow_dispatch: in your on: triggers in the workflow specification (see below for an example).
  2. After your initial push, go to your Actions tab on GitHub, and you should see your workflow listed there with a button to manually start it. Go ahead and do that.
    • At the time of this writing, I noticed that the UI did not automatically update to show that the workflow was running, so try reloading the page after starting the action.
  3. Once the action is done, go to the project Settings, and you should now be able to select the gh-pages branch that was created by your workflow as the source of your GitHub Pages site.

That's it. Save the option, give it a moment to publish, and you should be able to see your site hosted on GitHub pages. All subsequent pushes will run the workflow automatically as before, without your needing the manual step.

I have updated my public gists of the workflow specifications to include the necessary modification, and I'll link the other two blog posts here for folks who want my latest approach explained. Below is the Godot Engine approach, just to round out this post.

Tuesday, August 18, 2020

Cleaning the abandoned lab: Photo Essay

Fall classes start on Monday, but only recently have faculty been given the green light to come and go from our buildings during regular business hours. I went in today to clean out RB368, the classroom where my CS490 Game Production Studio was held. It was a time capsule, a snapshot in time from the middle of development before we all had to leave campus and work remotely. The projects were completed, but the room never changed.

I share with you this photo essay of the abandoned space.

Remember the poster that had fallen off the wall? I picked it up and found a second half of it that had fallen completely behind the table. Here they are, stitched back together on the floor.

I had to go through many piles of things, and a few pieces struck out to me as especially interesting, so I photographed them separately.

Thursday, August 13, 2020

Summer Course Re-Revisions 2020: CS445 Human-Computer Interaction

Yes, you read that title right: this is a re-revision of my Human-Computer Interaction course, which I wrote about revising back in early July. Since then, I learned that all my courses would be asynchronous online (after being told that we would almost certainly be able to do them with synchronous online meetings). As I mentioned in my game design revision notes, then, I have had to come back to the HCI course to figure out what to do about it.

Like basically all of my in-person course plans, my HCI course traditionally relies upon in-class activities to help students understand the concepts and build a community together. The original synchronous plans assumed that we would have time to work together, even if distributed physically. Removing that constraint meant that I had to revisit the design to make all the required conversations asynchronous, which means more formal structure around discussion board posts.

After some consternation, I decided to follow a model similar to what I am using in my game design course. I will set up small peer groups who are required to read and comment on each other's work, in the hopes that this not only helps students sharpen their skills but also build some community and get to know each other. I thought about adding a requirement that each group get together online to discuss the readings and work, which is something I've seen in a colleague's online graduate course, but I decided that I wanted to keep this in fairly small, contained steps.

Along those lines, I copied over and lightly edited some of the additional prose I have been adding to course plans back into the HCI one, including several paragraphs about commitment. This may be one of the hardest parts for the students. It has always been the case that I have designed my courses to take nine hours of effort per week, which some students struggle with anyway; without the valuable three contact hours per week of structure, discussion, rapid feedback, and encouragement, it is not clear to me how many of my students will be able to keep their heads above water. Yet, it seems to me to be the only honest option: if we're going to take their money for an education, and federal financial aid law makes these demands on the effort-hour-cost equivalency, we cannot pull back on expectations without a concomitant decrease in tuition and fees. Assuming I can keep my head above water, my plan is to record a short talking-head video each week to release to my students, talking about what excites me about their work and where I see challenges. I hope that will at least help them remember that I'm rooting for them.

I reviewed all my notes and did some additional research as part of my re-redesign, and I added two new elements to the course which I hope will work well with the distributed mode. I added several videos from Scott Klemmer's series of lectures based on his Stanford course. I watched a lot more of the series than I will be assigning. It certainly seems prudent to use his nicely polished videos rather than record inferior ones myself. Incorporating his content made me rethink the ordering of some of the topics I wanted to cover as well.

The other formal element I added was a requirement to complete the five-step OpenMind tutorials. I heard about these through Heterodox Academey I think, and this past week I took some time to actually go through them. There was nothing in it that I had not heard before, but I suspect there was quite a bit that my students would not have. Some of it is relatively simple contemporary psychology, such as the idea that the emotional system is fast and dominant but trainable (the riding-the-elephant metaphor). Other parts mix pragmatism and ethics, such as the importance of intellectual humility. Taken as a whole, I liked the presentation, my only major criticisms being that it starts on the wrong foot and has an imbalanced obsession with Buddhism. Knowing the unprecedented breakdowns of discourse in modern times, and how the Internet seems to be fueling the fire of ideological demonization, it seemed like the HCI course was a good place to inject some of this content. I am eager to hear what my students have to say about it.

We are less than two weeks from the start of classes, and I find myself nervous about the semester. I am grateful that I can do my work from home, but I am concerned about my students' experiences. I still don't really have a plan for how I will do anything like office hours aside from a passing fancy about livestreaming my course-related relevant work. At the same time, I've put in an unprecendented amount of effort this summer to revise my courses for Fall, and honestly, I feel like I could use a vacation, just as the meetings are kicking up for the semester's start.

Tuesday, August 4, 2020

Quill: Stories and Games

I did some research into single-player tabletop RPGs as part of my planning for my Fall game design class. I would not have taken the time to do so had I not recently been blown away by Tim Hutching's Thousand Year Old Vampire. I backed that project on Kickstarter on the recommendation of some game design guru that I follow on social media, although now I could not tell you who. The experience of playing TYOV was amazing, much richer narrative than I expected, and it made me change my assumptions about single-player RPGs.

I decided against requiring my students to buy TYOV: although I think it is worth $15, I know that my value per dollar is not the same as my students, so I've left TYOV as a recommendation. When I looked around to see what other single-player RPGs were recommended, a few titles came up regularly. One was Ironsworn, but this was clearly too heavy-weight to use in class. Mythic comes up as the premier “oracle” or simulated dungeon master, but this also was too heavy and didn't hit the point I wanted to make about constrained storytelling.

The third that I saw recommended in a few places was Quill: A Letter-Writing Roleplaying Game for a Single Player. Right off the bat, this hit strong notes for me, taking the unique form of letter-writing and, since it is pay-what-you-want, it is essentially free for my students. Indeed, I wrote this game into my course plans before having played it, based on recommendations and my reading the rules.

Yesterday, I tried it out with my wife and two older sons. Yes, it's a single-player game, but there's no reason you cannot play next to each other and share your tales.

Caution: Spoilers about the scenarios below.

Although I had read the rules and saw that there were multiple scenarios, I did not really read the scenarios themselves. I was surprised then when the first one in the book was to write a letter of condolence to the archduke on the death of his sister. I did not expect the letter to be poignant, and this certainly gave some gravitas to the letter-writing experience. My younger son had trouble getting started, struggling with structure and form, but he did fine once we encouraged him to let loose and let it be silly, if he wanted it to be. And, indeed, it was very silly, though the rest of ours were serious.

I was surprised when cleaning up to see that another of the four scenarios is also about death. This actually made me a little angry, like the author was playing too much on our heartstrings rather than relying on solid design—like the strings in a movie soundtrack, I felt that he was toying with our emotions rather than allowing us to grow them ourselves.

It was pretty clear in our post-writing discussion that the “game” is really about getting points for rolling dice. The letter-writing is almost a separate experience from the game of rolling dice. I like the ink pot system, which requires the player to have a particular listed word in each paragraph provided some constraint to the creativity; yet, one could just write a word, roll the dice, get points, and “finish” without engaging in the story at all.

This brings me to my point, which is the reason for taking time to write this second blog post today. I hope that my students enjoy the game, and I hope that they bring up the point I made above, that the dice “game” seems separate from the ”story.” My question, then, is what makes Quill any different from a game like Final Fantasy? In Final Fantasy, you play a game about making numbers go up by maximizing skills, finding items, and exploiting combinations. Meanwhile, there's a movie going on about spiky-haired teenagers saving the world. There is, from a systems design point of view, no connection between them except that you get rewarded with story for doing well in your game.

Hopefully, writing this down here will help me remember to bring this up when we get to Week 4 of the course plan.

Summer Course Revisions 2020: CS439 Introduction to Game Design

I am grateful to once again be able to offer my Introduction to Game Design course as a seminar in my home department. Like last year, it will be offered as CS439, and I've asked the front office to waive prerequisites so that anyone who wants to take the course can do so. I published the course plan earlier today, which lays out details up through mid-semester and sketches the rest.

I wrote earlier about my revisions to Game Programming and Human-Computer Interaction. I saved my game design course for last, knowing it would be the hardest one to transition from face-to-face instruction. The whole course was really built on a model in which students present their work to each other, and I correctly deduced that working out some of the logistics of my other courses would help me focus on the substantial changes required for this course. Additionally, it was between planning the HCI course and this one that I received official word that my courses would all be entirely online: this gave me some freedom on this course to know, ahead of time, how the students would move the course, but it also means I have to go back to the other two courses and remove any synchronous aspects.

Early in Spring, I picked up two books to review as alternate textbooks, but given all the other chaos around us, I fell away from reading them and decided to stick with Ian Schreiber's Game Design Concepts. This allows me to keep the kind of cadence I want in the class despite the format change, and having used this text many times in the past, I have a sense of how students will engage with it. In part to compensate for the lack of face-to-face discussions, I have also added more readings from different authors, trying to round out students' learning experiences.

I will miss the discussions though, since this was really where the best learning happened in conventional classrooms. Most assignments in the past had the requirement to present a summary poster to class, and it was a great joy to see them all posted on the wall. I believe it gave students a great opportunity to get to know each other, as the work was clearly personal rather than abstract or faceless. I have replaced these with required discussion board posts and responses, which I have never used before. I am hopeful that we will be able to make some hay with them, but I am dubious that it will be equivalent.

One of the things I have been writing about for some time is the desire to have my students engage with some of the great games, but asking them to play more always felt like I was asking too much from a one-semester introduction. With the removal of face-to-face class time, I have injected more required playings. I divided each week into two parts: playing with ideas and working with games. The former are building the fundamental skills and knowledge for game design, and the latter is a path through important games and game mechanisms. The two work in slightly different rhythms, because the former requires responses to discussion board posts while the latter does not. I hope that the students will be able to keep these straight, and I think clever deployment on Canvas will help.

By adopting Board Game Arena and Roll20, we should be able to maintain the ability to play some games together. The part that I haven't quite written up yet is the glue between the first half of the semester, in which students build their background knowledge, and the second half, in which they work on a project. I would like to use a week or two in the middle to look more carefully at solo print-and-play games, which seem salient given the COVID pandemic. I am eager to see if students get inspired by this idea. Of course, those who want to make conventional, non-solo games would be welcome to, but only if they can articulate a playtesting plan for them. (I'll be writing up the final project specifications later, maybe before the semester starts, but certainly before the withdraw deadline.)

I started my course plan by cloning an existing one, but knowing that we would be entirely online prompted me to revisit large portions of the course overview. I added several paragraphs that explain my motivation and provide more direct guidance. For example, the introduction section says a lot more about what we will be doing in the class and about what kind of commitment students are signing up for, the decorum section has been changed to focus on online interactions, and the grading section has been rewritten to expose more of the rationale and philosophy that I would otherwise introduce in person.

I am still a bit uncertain how I am going to manage office hours and communication across my classes, but for this one at least, I decided that we should have our own Discord server. If nothing else, this will provide a convenient place for voice chat when students set up an online game together. I will need to do a little legwork before the semester starts regarding server administration, since I want to make sure the space is as safe and inviting as can be expected. Similarly, I am sure I will need to provide some documentation for folks who are unfamiliar with this system.

I will continue to update the course site as we move on, but since I got a good draft together, I figured it was time for a quick blog post. Next on my to-do list is to revisit the other two courses to remove synchronous aspects and patch back in some of the extended prose and advice I've set up for the game design course.