Tuesday, January 31, 2023

Undermining the NACE Competencies

I volunteered to participate in my university's Skills Infusion program. This professional development opportunity has faculty reviewing one of their existing course plans and highlighting those places where the NACE competencies come into play. The goal of this work is that students will be able to better articulate what they learned in the class with respect to transferable, marketable skills. The program's name is a misnomer since it is not about "infusing" anything: it is explicitly about highlighting those places where these topics already come up.

One of the main reasons I signed up for this program was to have an excuse to see interesting people from across campus. I was not disappointed in our first in-person meeting yesterday, when I got to catch up with a few faculty and staff whom I had not seen in a while. The university is a strange place where lots of smart people work next to each other without really interacting, so it was nice to be able to see some of my favorite Ball State people in one place.

Yesterday's meeting was rather casual, with most of the time spent in free Q&A within small groups. Our moderator emphasized the point that I also emphasized above: we should be looking at identifying where NACE competencies are already happening and helping students identify and talk about them. 

This presentation made me realize that this framing of NACE Competencies is a lot like Myers-Briggs personality tests: everybody wins! As your MBTI score only presents positive aspects to you, so also does the idea that students are already meeting these competencies in our classes. Contrast this with the Big Five personality model, which deals with people as they really are: sometimes neurotic, sometimes disagreeable, sometimes unconscientious. Just so, sometimes we teach toward the NACE Competencies, and sometimes we teach against them.

I mentioned an off-the-cuff example in my small group: grading students based on attendance counters the competence of professionalism. By grading attendance, we remove students' agency and their opportunity to practice good decision-making. We also risk destroying their intrinsic motivation by adding extrinsic rewards for desired behavior.

Some of the participants at my table seemed to understand where I was going with this train of thought, that many of our practices hinder students from learning the NACE competencies or, worse, teach them counter-competencies. One well-meaning interlocutor suggested that grading attendance actually does help them learn professionalism, because "that's what professionalism is in my class." We did not take the opportunity to dive deeper into this epistemology, but it sure sounded to me like obedience rather than professionalism, meeting the adaptive function of school.

This short response is just a stake in the ground. I am curious to put more thought into how we teach counter to these specific competencies, which themselves seem to be taken as a sort of gospel in secular higher education. I think this will be the lens by which I examine my own course during this semester's Skills Infusion program.

Tuesday, January 10, 2023

Amaro #3: Parslamaronious

I love parsley. We had some fresh, flat Italian parsley in the house despite the cold weather since my wife needed it for some Christmas dishes. This got me thinking, "What would that taste like in an amaro?" My wife was skeptical, but I was inspired.

Let me introduce you to Amaro #3: Parslamaronious.


Yes, where the first two took the slightly uninspired names Amaro Primo and Amaro Secondo, I've decided to break the pattern here because I just love how very silly this name is. I made a lot less of this batch than of the other two, starting with just ten ounces of 90% ABV GNS. Yes, I'm using hobby jargon. These are exciting times. Into the spirit, I put the following in the hopes that it would complement the parsley:

  • 1/2 tsp coriander
  • 1/4 tsp decorticated cardamom
  • 1/2 tsp anise seeds
  • 1/4 tsp fennel seeds
  • 2 tsp juniper
  • 1 sprig rosemary
  • 1 sprig flat Italian parsley
  • 2 tsp gentian root
The rosemary was from our garden, but it was not the healthiest sprig. I used a generous amount of gentian root, a proportion more like the one at Open Source Liqueurs than the Serious Eats recipe that inspired the first amaro I made. You might wonder why I used so much juniper. The reason is that we have a lot of it. We got a deal on dried juniper berries years ago and use them occasionally for making flavored sodas inspired by DRY Juniper soda (which doesn't seem to be available any longer). 

Still no mortar and pestle here, so I smashed everything except the parsley and rosemary sprigs with my muddler. It seems like that should be adequate. I macerated for 12 days, leaving the jar in the buffet and giving it a swirl about once a day. I was going to leave it for two weeks, but reflecting Sammie Williams' recipe at Open Source Liqueurs made me process it a little earlier than planned. Also, it was Scout night, so I had the kitchen to myself. The recipe I used for my first amaro, and which I improvised on for my second, diluted the spirit with simple syrup. Williams' recipe uses a 3:5:2 ratio of alcohol, water, and sugar. (AWS, jargonites.) He also recommends against making a syrup and for using turbinado or other solid sugars in his "Making Amaro" article.

I strained out the solids and then split my alcohol in two. With the first half, I measured out the 3:5:2 quantities, using entirely turbinado sugar, and put them in the blender. We have a nice blender, and 30 seconds of whizzing had it all mixed and bubbly. I actually got a little worried here when I opened it because it also got pretty warm. The color was unfortunately rather unappetizing: whereas the infused alcohol was chartreuse green, the mix was slightly brown yellow... not enough to be a nice caramel brown, just a kind of dirty green. With the other half, I mixed up a syrup using the same water-to-sugar proportion. This had only about half turbinado sugar and half granulated sugar since I had used up all the turbinado in the house. Dissolving the sugar, letting it cool, and then mixing in the alcohol all went smoothly, as in the past. I felt more control over this than I did the blender, to be honest, and I couldn't tell any difference between the two batches except that the second one was slightly less brown. It must have been the sugar.

How does it taste? Well, right off the bat, yes, you get parsley. Neat! Also, a little weird. But it's not bad weird. Not like the time I infused oregano and some other herbs into some mead and it tasted like liquid oregano. That ended up going down the drain. This amaro is actually quite nice, as long as you're looking for something herb-forward. A funny thing is that although the parsleyness is detectable at first, it becomes less so with a few sips. I wonder how it will taste after aging a bit. Since it was a small batch, I wonder if it will last long enough to find out. 

I should also mention that I really like this AWS ratio. My previous two amari are very sweet and syrupy. It's not a bad mouthfeel, but it's not real classy either. In case anyone is really curious about the math, I did counted my 90% ABV GNS as being essentially 100% alcohol when doing the algebra, which means my final ratio is not exactly 3:5:2. Considering that I'm not using a milligram scale nor even filtering out the tiny bits that end up the bottle, I'm not worried about a little variation from the formula.

Coming back to the Open Source Liqueurs recipe one last time, I really appreciate Williams' site, and I want to try his base amaro. In terms of approach, I am curious about his maceration in 50% ABV, since I've been macerating directly in everclear. My birthday is coming up, so I splurged and ordered odds and ends from Mountain Rose Herbs to try making something akin to his recipe. Ordering myrrh on Epiphany also seemed appropriate. I look forward to making my own #4 once I have everything together.

If you got this far through my contemplations and reflections about homemade amaro, come over for a drink. Cheers!

Ol' Limberlegs: Ludum Dare 52

Ludum Dare 52 was the weekend before the start of the semester. I was able to get all my necessary work done the previous week and so participated in the compo. My game is Ol' Limberlegs, and this blog post will share a few details of how it came about.

I got out of my last meeting for the week just before 3pm on Friday, and so I was able to check the theme announcement on the walk back to my office. I wrapped up a bit of work before heading home, mulling over the theme: "Harvest." I find game jams to be a good opportunity to explore different genres. For a while, I've wanted to make a Cookie-Clicker-style game, and this seemed like a good opportunity. It also felt a bit too easy, though, sort of like making a game about planting and harvesting plants. Yes, it matches the theme, but it seemed like there must be a hundred of those being made.

One of the genres I've never explored is fighting games, and I have a few bad sketches here of a giant corn man fighting an android tractor. This is where my meager drawing skills are a real limiting factor to Ludum Dare. I turned my mind to other aspects of the harvest, and this got me to thinking about the harvest festival—the party at the end of the harvest. Here there would be music and dancing, so why not make a rhythm game?

I wanted to get the core mechanisms in place, so I started just figuring out how to track the amount of time an audio stream had been playing and synchronizing keyboard input to that. With the audio side of the proof-of-concept out of the way, I turned to making a dancing character. A stick figure seemed the right way to go, and I got that working pretty quickly, but not before spending some time exploring the idea of spline-based rendering. In my imagination, I can imagine a wobbly-limbed stick figure, something like noodle arms. Turns out that my memory of how splines actually work, and my experience with Godot's Curve2D class, were both not up to the task. A simple stick figure it was.

The dancing character was always meant to be a form of fun visual feedback, not something intrinsic to the gameplay. However, as I was working on it, I recognized that he just wasn't dancing enough. My plan was to do a kind of traditional rhythm game, pressing keys to make the guy dance, but this meant he was really just moving one limb at a time. This gave me the insight that I could do something a little different: why not have the player one limb in position, and release it on the beat, and then earn bonus points for jangling the other limbs around? It didn't take too long to prototype this, and right away, I knew I was on the right track. Now, the character had a kind of herky jerky personality instead of just doing the white man twist. This was about the time that I started to really think of the guy as Ol' Limberlegs, named after a folksy wooden dancer in "Mr. Show with Bob and David."

Here is where I lost a bunch of time. I set up my old Bamboo and tried drawing a pudgy hillbilly character with the intention of replacing my stick figure with a cutout animation. I thought I could just whip up something and drop in place, but I'm pretty slow at "whipping up" a drawing. I hadn't used these particular tools in a while and had forgotten all the shortcuts. I didn't know exactly what I wanted, artistically. Also, my code assumed that vertices moved rather than being rotated. What a mess. I finally gave myself a hard deadline, missed that deadline, and then realized I had to go with Plan B. Next task: come up with Plan B. I decided to try doubling down on the Limberlegs idea and see if I could make a wooden man. One Gimp tutorial later, I had a simple wood grain texture, which I could slap onto resizable TextureRects in-engine. This meant I didn't have to know exactly how big each piece would be, which allowed me to tweak settings until I got what I wanted instead of having to redraw upon mistakes. I still had the Bamboo out and used that to make the charming face.

One feature I really wanted, but that took a back seat to some other critical issues, was to have the face animate based on the player's performance. I have some sketches of closed eyes, "O"-mouths, and some expressions that would have been fun to put in. However, as some of my players have pointed out, there's already too much happening in the game to fully enjoy the dancing.

The last feature I added was the little rhythmic wobble of the torso and the head. I think these add an awful lot to the personality of the wooden guy.

That's all I have to share about Ol' Limberlegs. I hope you enjoy it. The next Ludum Dare is right at the end of the semester, and I hope I can participate in that as well, even though it will likely be very difficult for any of my students to join in. 

Tuesday, January 3, 2023

Course Planning: The First Offering of CS390 Game Studio Preproduction

One of the most exciting aspects of my department's new Game Design & Development Concentration is a three-semester capstone experience. Eventually, this sequence of courses will be team taught through Computer Science, Animation, and Music, but since my department is a year ahead in the curriculum approval process, we will be having a CS-focused sequence the first time out.

The first course in the sequence is CS390 Game Studio Preproduction, and I am teaching it for the first time this Spring. I have spent many hours prepping for this course, and this week, I am finally feeling confident in my design decisions.

As the title implies, this is the preproduction experience for the production courses, which will be a sequence of senior-level courses offered for the first time next year. The success of production hinges on good preproduction, and so there's a lot of pressure in CS390 to get things right. I decided to use Richard Lemarchand's A Playful Production Process as the primary text for the class, and we'll be reading through the book and completing exercises from it during the semester. The advice in his book is that 15% of time be spent on ideation, and mapping that to a three semester sequence means that my students will spend the first six weeks of the semester in that phase. Coming out of ideation, I expect the students to be able to form teams around ideas as they move into preproduction proper. At the end of the semester, each team will be expected to have a vertical slice (or at least a beautiful corner), a game design macro, and a production schedule.

The semester will culminate in the student teams' presentations to a Game Proposal Review Board. This board of industry professionals will give feedback to each team and have the power to approve or reject each project. The approved ones will be the ones that move forward into production next year. Students on rejected projects will be reassigned to other teams so that we can produce the highest quality outcome. I already have two board members signed up, including one alumnus, and I am waiting to hear back from one more.

Lemarchand's book gives a good intellectual framework for thinking about preproduction, but I was still left with many course design decisions. One of these decisions was how to grade the students; since I am required to give a grade, I need to make sure it is done in an appropriate manner. I have been thinking about how to get more results out of the efforts I put into grading, and this course provided an opportunity for me to think more about that. In particular, I would like a little more clarity and a little less of the reduction in implicit motivation that comes with grading. As a result, I'm taking a page from my colleague David Largent's handbook and trying a more by-the-books approach to specifications grading. 

I have set up categories in which students can earn "tiers" (grades) based on their work and dedication to the class. The easy two to set up were participation and exercises, the first of which deals with classroom engagement and the latter with individual assigned work. These are all graded on an S/U basis, and satisfactory performance unlocks higher tiers. I will do something similar for the four end-of-semester outputs, but I want to be able to think more about those and also to negotiate the details with my students. For the final category, I added achievements. As in CS222, I was inspired by the idea of rewarding students for doing authentic work that excites them, but I did not use the same formal system as in that class. Instead, I set it up so that the achievements are harder and, essentially, someone either completes one or not. Then, in the final course grade, the achievement acts as a sort of buffer, allowing students to gain higher course grades. A student who does no achievements but aces the rest of the requirements will still get a well-deserved A, while a student who slips up in another category can use an achievement to still demonstrate excellence and get a well-but-differently-deserved A.

The class is actually below the usual enrollment threshold, but because it is part of a new program, the dean has approved it to go forward regardless. I know all the students who are signed up since they have all come through other courses I have taught, and so they all know that we're in for some serious business and hard fun. A couple of the students are also taking my immersive learning CS490 class, which means they are actually taking more than the normally allowed number of games-related courses since they are sitting in a transitional curriculum—good for them!

As usual, I have put my course plans publicly online, and you are welcome to read them. I am looking forward to getting to work with these students and see what they can make.

Sunday, January 1, 2023

The Games of 2022

EDIT (Jan 13, 2023): It turns out that a subtle bug in the BGG for Android app prevented most of my plays from being properly logged after December 23. I have worked around the issue, and it has required me to update parts of this blog post.


It's time for my annual tradition of reflecting on the year's board games. I logged 462 plays in 2022, which is on par with 2021. Those numbers are still smaller than 2020, which of course was an unusual year. Also, all the family now enjoys playing larger and longer games. My youngest son is seven, and he's never asking to play Reiner Knizia's Flea Circus any more: he wants to play Clank or his recent favorites, Castles of Mad King Ludwig and even Rising Sun. I was not very good about hosting Guys' Games Nights this year, despite having told multiple people that I really wanted to do this. There are some guys in town whose company I truly enjoy, whom I haven't seen in a long time, and for whom board games are what brings us together. I need to do better with this in 2023.

In my annual blog posts, I usually report on the games that I played at least ten times during the previous year. This year, there are some interesting ones just under that threshold, so I will go down a little further into the rabbit hole.

  • Race for the Galaxy (44)
  • Terraforming Mars: Ares Expedition (31)
  • Downforce (27)
  • My City (25)
  • Etherfields (22)
  • Thunderstone Quest (21)
  • Clank! (19)
  • So Clover! (19)
  • Castles of Mad King Ludwig (14)
  • Arcadia Quest (13)
  • The Quacks of Quedlinburg (12)
  • Crokinole (11)
  • Dune: Imperium (11)
  • Stuffed Fables (10)
  • Wingspan (10)
  • Massive Darkness 2 (9)
  • Oceans (9)
  • Exit: The Game - Advent Calendar: The Mystery of the Ice Cave (9)
  • Mechanica (7)
  • Xia: Legends of a Drift System (7)
This was the year that two of my games broke 100 logged plays, and those games are Race for the Galaxy and Clank!. The latter counts just "regular" Clank! and not the legacy version, although I have combined those two in some past analyses. These are, of course, two of my favorite games, and I picked up two new games by the same designers for Christmas: Res Arcana and Clank! Catacombs. These have already received a lot of play considering Christmas was just a week ago, and I expect to see them both moving up the charts.

Terraforming Mars: Ares Expedition is a game recommended by my brother, and I bought it for my eldest son without knowing much else about it. I love it as something like a crunchier version of Race for the Galaxy. It certainly shares a lot of the same DNA. We get it out regularly, and I expect it will see a spike in plays when the expansion comes out.

I first played Downforce with my brother two or three years ago, and I had kind of vague memories about it: it was fun, the cards looked cheap, and it played six players. I saw a copy at Origins and picked it up, and it has been a huge hit with the family. It supports six players but is even more fun at fewer, and it's a challenge without being too stressful. This makes it a go-to game when everyone wants to play something together, but I suspect that title may soon go to Railroad Ink, which is another new Christmas acquisition. Railroad Ink takes almost no time to set up and tear down, and everyone takes their turns at once; these are highly desirable for a family of six.

My City is the only game I have bought twice. I got a second copy for Christmas 2021 and played through the campaign again with a different subset of four. It was still great, and now we have two sets, which means up to eight people can play the non-legacy version of the game.

Etherfields proved to be a lot of fun. I have painted all the miniatures except for one, which is why you haven't seen them on the blog yet. I'll say more about it when that last figure gets painted, but for now, suffice to say that my two older sons and I have really enjoyed it.

2022 was the year that my third son learned to play Arcadia Quest, and we played a few campaigns together. We're excited to try a campaign with Pets and Riders together, and that will likely come this summer. What will happen when my youngest son wants to play, though? Either my boys will play without me or my oldest will be away at college, and both of those are kind of scary thoughts.

Some of the boys and I started up another run through the Stuffed Fables campaign, but it fizzled out. It's hard to put my finger on why. I was less excited the second time through since there was less discovery in the story, but even the younger boys seemed less interested in getting the game to the table. I think it ends up in the awkward pile of games that I have spent hours painting the miniatures but no longer have desire to play.

I picked up the Exit Advent Calendar on a friend's recommendation, and my family definitely enjoyed it. One puzzle was a stinker, but the others were a lot of fun. Different members of the family were able to solve different puzzles, which was both good and unpredictable. One reason I wanted to write about it here is that games like are a bit unclear on how they should be logged. At first, I logged every room as being a play, but that seemed inflated. I ended up logging just each session, of which we had seven distributed through the 24 days before Christmas (which is not the same as Advent, but I bought the game anyway, so pedantic liturgical season marketing is probably not a good business move for them). 

I was a little surprised to see that Xia was only at seven plays since we played it so much last year. It's always fun, but it is a big commitment of time and table space.

To wrap up, I will take my customary look at the top-played games in my collection since I started logging plays in 2016. Let's somewhat arbitrarily take the games with 40 or more plays.
  • Race for the Galaxy (108)
  • Clank! (102)
  • Thunderstone Quest (92)
  • Crokinole (86)
  • Kingdomino (80)
  • Gloomhaven (66)
  • My City (63)
  • Arcadia Quest (61)
  • The Quacks of Quedlinburg (59)
  • Carcassonne (58)
  • Animal Upon Animal (56)
  • Camel Up (51)
  • Quiddler (50)
  • Rhino Hero: Super Battle (43)
  • The Crew: The Quest for Planet Nine (40)
  • Runebound (Third Edition) (40)
That's all for this year's review. Thanks for reading, and happy gaming!