Saturday, December 3, 2016

Learning Unreal Engine 4

Eight or ten years ago, I looked into UDK (Unreal Engine 3) as a potential tool to use for research and teaching of game development. I didn't get very far into it, though, in part because it required rather arcane use of C++, and most of my students don't know C++ at all. Toward the end of the Summer, though, something reminded me to look again at what is now Unreal Engine 4. In particular, I was reminded of two facts: it is now free to use, and it incorporates a visual scripting language—Blueprints—that can be used in addition to C++.

I spent just a few days before the semester started diving into UE4, and I decided to invest a lot of my "research time" this past semester in learning it. I hit something of a milestone two days ago, and I proudly posted on Facebook. A friend asked for advice on learning UE4, and so I decided to write this blog post to provide a few pointers. When I first began this adventure, I started a document into which I intended to keep a running tally of what resourced I used and what I learned from them, with an eye toward being able to reuse these in planning a future game programming course around UE4; the truth is that it quickly got too chaotic to be easily tracked down. Still, I think I can provide some breadcrumbs.

Let me point out too that my first goal was to build a simple clone of Every Extend (the precursor to Every Extend Extra, which every Google search seems to want me to find instead). I love Every Extend, as one can see from my old research project EEClone, and whenever I am learning a new game development environment, I start by recreating Every Extend.

I began by turning to Lynda.com only because so many of my students have told me that it is useful. I have free access through my university, but I had never used any of their videos before. I got through some of Craig Barr's training materials, but I found them much too slow for me. I suppose it gave me some big-picture ideas, but the pace was painful. Looking over Lynda's selection, it looks like they've targeted artists and level designers with their videos, not developers, so maybe I just had bad luck on this one.

Via a search that landed me on the Unreal Wiki, I ended up on a YouTube playlist on building a 2D Sidescroller using Blueprints. This was more of what I was looking for: taking a simple game and implementing it using this behemoth of an engine. It was a simple click from this playlist to finding the official Unreal Engine channel on Youtube, which has a wealth of video tutorials. My favorite series here for wrapping my head around core UE4 tools and workflow was the endless runner series.

This was about the point where I felt armed to really get into making my Every Extend clone, but I quickly ran into that imposing barrier between watching someone make something and actually making something. Truly, I thought I had a good grasp after watching these videos, but I found I still really didn't know how to do some essential things, like put a camera where I wanted it. This Pong tutorial was really helpful for essentials like a fixed static camera, custom keyboard input, and turning BSP brushes into simple meshes. Working on my learning project, I needed an event dispatcher to deal with chain reaction explosions, and this video helped me make sense of them.

It was around this time that a few things happened. First, my other professional responsibilities started eating up more of my time—particularly, travel to two back-to-back conferences (Meaningful Play and NASAGA). Second, my project hit a bit of a hurdle in terms of my desire to have a fixed play area. I had quite a bit of trouble trying to get my HUD and play area synced up so that the actual playable area would be a square centered in the screen. I ended up not touching UE4 for a couple of weeks, and in fact, I never did go back and try to fix this problem. I suspect that this beginner project was so rife with kludges that there were a lot of factors making it difficult to proceed. That's OK, though, since the whole point was really learning, not production.

Coming back to it a few weeks later, I had a concept for a multiplayer game that emerged from my game design course. This inspired me to look into the multiplayer support in UE4—another key feature of an engine that, if I could learn it, could save me a lot of effort in future work. When my team created Children of the Sun in 2013 using Unity3D, I would describe using that networked game system as "a bad time." My initial readings on UE4, though, made it look much more like what I would like to have. Unfortunately, I stopped keeping track of specific resources I used here, but I can tell you that I did much more targeted Google searching (spending a great deal of time on the UE4 forums, wiki, and official documentation) rather than binge-watching YouTube videos. That is, I had a good understanding of the actor, controller, and components model, and so I could focus more on network replication and RPCs. This video series introduced core terminology, and I bookmarked one particular forum post about Blueprint networking that is amazing, but I think you need an UnrealEngine account to view that link.

Once again, getting some simple things to work took a very long time, but that's because I had to shape and re-shape my understanding of UE4's networking model. Finally, after countless hours of fiddling since the end of Summer, I got a very simple demo running, which you can see below:

If you're a gamer and not a developer, you're going to be disappointed. Let me explain what's going on here and what it represents to me, though. First, I have a custom player controller and pawn such that the pawn follows the mouse; the farther the mouse, the faster the movement. This is done by tracking the mouse position client-side and sending that position to the server. The server handles all the physics of turning and then it multicasts the pawn position to all clients. (The pawns were originally pyramids, but I couldn't distinguish the front from the back, so it was hard to debug the mouse-movement controls. Like a good programmer, I found some starter assets with more clear front and back, and hence the chair.) The server is also spawning one new gold box every second, and when any pawn hits this, an explosion particle emitter is spawned at the point where the box was.

Conceptually, it's about as simple as a multiplayer experience can be, but again, to me it represents tens of hours of effort in understanding something new, and I'm happy with it. Unfortunately, being so late in the semester now, I am not sure that it's worth my completing this prototype either. I had hoped to make something to show my game design students, but instead I just barely got the skills to build this tech demo. Still, I may push forward to the next step: the actual game concept is an asymmetric multiplayer game, and I would like to test my own understanding of whether I can show completely different player experiences to different clients.

Thanks for reading! It's kind of a brain dump, but I hope there's something useful for you here. If you have some favorite sources for learning UE4 or any other feedback, please feel free to share them in the comments!

Tuesday, November 22, 2016

Books that influenced my teaching

A colleague is undertaking a sabbatical project that involves collecting books related to teaching in higher education. I was honored to be asked to provide some for his list, and in the spirit of last week's post, I figured I would share them here as well. He was asking specifically for books about teaching in higher education, which I'll start with; he also clarified with me over email that particularly inspirational disciplinary books may also be of use to him, so I'll share some of those as well.

General Teaching Books

Without going back through my old notebooks, here are the books that I remember reading and enjoying. I've provided Amazon links mostly to remove any ambiguity, not because I have any particular need for people to shop there.
  • How People Learn is an excellent overview of what is known about learning, and I remember that reading this helped me build a better understanding of some core educational concepts. Like most professors, I had practically no formal education in how to teach, and I had picked up a lot of folk wisdom; this book was useful for turning this ad hoc understanding into something more rigorous.
  • How Learning Works, I read this about the same time as the previous one, and I remember it covering similar ground but with more emphasis on higher education. Since I read these at the same time, and many years ago, I may have muddled some of their influences, but to me that's okay: I believe I have internalized most of the main premises into my action, and that was the goal.
  • Situated Learning: Legitimate Peripheral Participation. This book was recommended to me by a colleague, and it was fundamental in helping me shape my current understanding of learning as a social process. I have directly drawn on the ideas of this book in designing my game production studio courses. If anything, I wish I could use more of the ideas in this book: my main annoyances in higher education are precisely those conventions and structures that make it hard to follow the patterns of LPP described here.
  • Visible Learning and the Science of How We Learn provides another overview of the science of teaching and learning, framed and supported by the Visible Learning meta-studies. This is a fascinating piece, and in some ways it is a quantitative counterpoint to Situated Learning's qualitative perspectives. It's fascinating and well-supported, and yet the authors' apparent disdain for non-quantitative work left me feeling uneasy. (For what it's worth, I came across this book by reading Grant Wiggins' blog, where he points out one of the most important contributions of Hattie's work: that there are many easy classroom practices that have a higher effect size than students' socio-economic status. Also, in digging up that link, I just found out that Wiggins died in May 2015, over a year ago, and now I am kind of bummed. I knew I had missed his writing; I didn't know he had passed away.)
  • Speaking of Wiggins, Essential Questions: Opening Doors to Student Understanding focuses on what I consider the most fascinating aspect of Understanding by Design: framing inquiry through essential questions. Longtime readers will know that I have been tinkering with EQs as a method to frame my courses for a few years, and now I feel like they are a critical tool to my course design and evaluation process. In fact, now I often prefer to describe courses in terms of their questions rather than their content.
  • Although I have not read their entire book, I will point out Papert and Harel's chapter "Situating Constructionism" from Constructionism. I think I may have read this more times than any other article. I find it fascinating, and when I am pushed to state what educational philosophical camp I belong to, I would have to say constructionism. (Of course, then I usually have to explain that I didn't just say "constructivism," and people give me blank stares. Hence, I include this chapter here, because anybody interested in effective higher education philosophy should read it.)

Other Inspirational Books

There are several books I have read that are not about education in particular, but that reading them greatly informed and influenced my teaching practice. Here are some:
  • Scholarship Reconsidered: Priorities of the Professoriate and Scholarship Assessed, which I read in my third year as an assistant professor, gave me a much broader view of what it meant to be a scholar and a professor. Relevant to this post, it helped me to see how my teaching was scholarship, not just something that produced scholarship. This fundamental observation from Boyer's classic work is still something I find broadly misunderstood in academia. The counterpart by Glassick et al. provides a well-known six-stage framework for assessing scholarship—a framework I use not only in my own work, but which I worked to incorporate into my department's promotion and tenure documents.
  • A Theory of Fun for Game Design. For those who are not familiar with Koster's amazing treatise, this is not a book about how to design games but rather about why we design games. The fundamental thesis presented here is that learning is fun, or put another way, fun arises from learning. I read the first edition of this book shortly after becoming an assistant professor, and the ideas of game design here strongly influenced my course design.
  • Agile Software Development: The Cooperative Game. The title of this book hints at its thesis: that software development is a cooperative game—not engineering, not modeling, but a game. Internalizing this principle has allowed me to apply my research on game design directly into my teaching work. 
I hope you find this list useful. Please feel free to share your feedback or your own favorites in the comments!

Thursday, November 17, 2016

Dr. G's Tips for Playtesting with Kids

My game design students are preparing to do some authentic playtesting with upper-elementary students, which is an audience I have worked with before. I told them I would share a few short tips, so I figured I may as well put them up here on the blog as well.


Internal testing first

Make sure you have run the game yourself several times with the materials you intend to bring. This will help you ensure that you have all of the physical pieces you need. 


Check your vocabulary

It can be challenging as an adult to remember what you didn't know when you were ten years old. Don't trust your memory: go carefully over all of your key terms, perhaps with kids, teachers, or online aids, to ensure the vocabulary is age-appropriate. As a counterexample, in our Morgan's Raid game, we used the words "chaos" and "reputation," but it wasn't until playtesting that we found that kids' understanding of these terms was much different from our own—so much so that it affected the learning outcomes!


Dry run rules explanations

It's one thing for you to know the systems of the game; it's yet another one for you to be able to explain it to someone else. Dry run complete rules explanations, possibly with a friend, possibly with a rubber duck—surprisingly, it may not matter which you choose. Don't just practice what words you will say, but also consider how you will use the materials to demonstrate gameplay. Will you show a sample turn? Will everyone participate in a sample turn? Is the game itself easy enough to get into that you can explain as you go and maintain a sense of fairness?


Take notes

If you don't have a helper or producer over your shoulder to collect playtesting data, you may be stuck both explaining the game and evaluating the session. Make sure to take notes as you go, and write yourself an analytic memo immediately after the session. Don't trust memory: write it down. If you do have someone else who can observe and take notes too, all the better for triangulation!


Watch body language

If the kids are leaning in, they are engaged. If they back off, they are losing interest. This makes sense, right? What's fascinating about it is that the players themselves probably don't know they are doing it, and if you ask them to explain it, the rationalization part of the brain will kick in and make something up. Keep an eye open for body language: it tells you what's really going on in the players' minds.


Plan post-play questions

Open-ended questions like, "What did you think?" are often unproductive. Think about the design goals of your game and the design questions you still have in mind, and plan questions that will help you get at them. If you're making an educational game, use this opportunity to practice a debriefing, seeing if the players can connect their gameplay experience to the learning outcomes. Drawing again from Morgan's Raid, we used the question, "Do you think General Morgan was a good guy or a bad guy?" We had some amazing responses as different players voiced their opinions, and they then realized that there wasn't one objective answer, and they had to start thinking about perspective and context.

That being said, there are two great general-purpose questions that I often use. The first is, "What would you change about this game?" The trick here, as is often the case with playtesting, is that you are not really looking for design advice: you are looking for the areas the players are point to as weaknesses. That is, their responses may be signals to areas that need revision. The second is, "Do you have any questions for me?" This is a great closer that I use in playtesting and in interview protocols, as it empowers the players to voice their own thoughts and concerns.


Thank the players

Don't forget to thank the players. Let them know that by playtesting the game, they have contributed significantly to your work and your studies. 


Anything I missed? Please feel free to add more tips in the comments!

Thursday, October 13, 2016

The three-legged stool of sustainability in game design: economic, environmental, and social elements

As I mentioned earlier, I am in the first semester of a year-long immersive learning project, and my students this semester are prototyping board and card games on themes of environmentalism and sustainability. My friend and colleague Joshua Gruver gave a guest presentation to the students, during which he presented some formal models of sustainability and chilling stories about what happens without it. One of the memorable models was the three-legged stool, which defines sustainability as having three legs: environmental, economic, and social. That is, to be sustainable, you have to have all three in balance.

A moment's reflection will reveal that the economic leg is the one that seems never short-changed in business decisions, and so dedicated effort is required for the other two. This feels inevitable if we describe businesses' role as being that of economic drivers. I think it is much less common to frame businesses as engines of environmental and social welfare. A modern accounting framework like triple bottom line gives some tools for how environmental and social aspects could—perhaps, should—be considered. However, I cannot feel a bit pessimistic, since these kinds of models only seem fair if everyone plays by the same rules, and you cannot make everyone play by the same rules.

All the more reasons to have some educational games to teach people about it!

I've been starting to sketch out some game designs based around the three-legged stool model, and it's making me look more critically at how the three elements of economic, social, and environmental are dealt with in contemporary games. Power Grid is a great example, as it provides both a compelling, modern theme along with a convincing economic model of resource scarcity. Scarcity drives up prices for fuel, at which point clean energy sources—which are initially very expensive—begin to give better return on investment. Notice that this treatment is still entirely economic! There is no consideration of environmental impact of pollution: only the price of fuel matters. Similarly, there is no consideration of the human cost of any of this activity: if some people don't get power, it doesn't matter. The fact that people are involved in the gathering and processing of fuel is completely absent. Of course, Power Grid is not about these thing: it's about efficient German boardgaming. However, it provides a good example of how only the economic side is modeled.

I had to stretch to find any games that consider social aspects. One good example is Above and Below: in this game, when you have workers exploring the caves, you can elect to injure them in order to get better results. When they are injured, it takes them longer to recover. Your faithful workers never consider rebellion or revolt, however: you can, and probably should, hire lots of workers so that you are free to injure them and still have ready workers the next round. Village has a different spin, where workers "age", and over time, your oldest workers must die. There's a beautiful little system around this that models generations of families in a medieval village. Puerto Rico famously avoids social issues by encouraging you to bring more and more little brown interchangeable "colonists" to work on your plantations. I know some people find this offensive, but I lean toward seeing it as a learning opportunity: by choosing the play the game, you get caught up in an economy that dehumanizes your workers, and the only way to win that game is to bring in more and more colonists to keep up with others who do so. Stepping outside the game, the only way to stop the sale of African slaves to plantations was for a critical mass of people to decide not to play that game.

My favorite representation of social elements in game design is in the short-form roleplaying game, Dog Eat Dog. There's so much brilliance in that design, but let me share my favorite aspect. The game models colonialism in the Pacific islands. All the players but one are natives, and one player represents the colonial forces. When the natives are together, they are individuals, with names, roles, and identities, but when the colonial forces are in a scene, the natives become homogeneous—they become all the same, interchangeable, merely pieces of someone else's game.

[EDIT] In my original draft, I forgot to mention Archipelago, but it merits some special attention. It deals with the difficult economic+social theme of colonialism in the Pacific islands as well. It is a semi-cooperative game in which each player tries to win individually, but all can lose collectively if the natives revolt. By growing the economy, players contribute to the population's general unrest. This unrest is a shared resource and always visible. In the games I have played, the most common way to reduce unrest is to hire natives, reducing the number of available workers. Once you hire the natives, they become indistinguishable from the colonists you brought with you, and fewer available workers means less unrest is generated. This is a very interesting spin on the theme. Like many games for entertainment, the game does not challenge you to consider what this means: you simply take the actions afforded by the game in order to move closer to victory. [/EDIT]

Turning to environmental matters in games, it's hard to find any good representations at all. In 4X games like Civilization, there are always limited resources, but these are really just economic models: you get the resources when you can, and when you cannot, you trade for them or fight over them. There is no consideration of conservation: natural resources are to be taken and used as quickly and efficiently as possible. Resource management games like Stone Age or Settlers of Catan provide essentially limitless resources, sometimes of varying scarcity, but there is no consideration of policy or land management. I enjoy Dominant Species for how it handles the evolution of species' dependencies around a changing environment, but the decisions about environmental resources are entirely tactical and selfish. Maybe I'm missing something, but it seems to me like there is a great opportunity here, a potentially untapped design space to model something like environmental policy. The cynical designer may even make it a hidden traitor game.

Let me bring this back to my initial design explorations. My sketches were looking at a system inspired by Tigris & Euphrates, where one would collect different kinds of points—economic, social, and environmental, naturally—and the winner would be the one with the most balanced system at the end of the game. I love this aspect of Tigris & Euphrates, that it doesn't matter who has the most of anything, but rather, you try not to be the one with the least of anything. As I started sketching out some systems, it's pretty clear that there are lots of economic systems that could be deployed, and a player could earn points for good economic choices. Then, I started thinking of social and environment issues, and my first reaction was to treat them punitively: if you force your workers to work overtime, you lose social points, or if you take all the wood off of a forest, you lose an environmental point.

Think about that! Economic points are earned by taking positive action, but environmental and social points are lost by taking "bad" actions. That's the imbalance of the three-legged stool! What I see as a reasonable expectation of default perspective on the issue frames these three choices as complete opposites. Of course, it's not the case that social good is earned simply by not exploiting people, or that environmental good is earned by not exploiting land.

I'm not sure where these design sketches will go from here, but I figured it would be worth sharing some of my thoughts here. I would like to carve out some time tomorrow or next week to put a minimal prototype together and show it to my students, to see if any of this inspires their designs.  In the meantime, if you know of games that have good representations of the environmental or social aspects of sustainability, please share them in the comments or send me an email.

Tuesday, October 11, 2016

Painting Myth

Over the summer, I met a colleague for coffee to talk about research, and the conversation turned to board games. He told me that one of his favorite games is Myth, by Megacon Games. I had heard of this one for two reasons: it was an early Kickstarter success in miniature-driven board games, and it is developed by an Indianapolis-area company. I decided to check out the Megacon booth at GenCon a few days later, and I was impressed by their display and friendly staff. Normally I attend GenCon to enjoy the sights but don't actually buy anything, but this year I ended up taking home a copy of Myth along with a con bonus Trickster hero. I gave the game a spin with my wife and son, and it was pretty rocky on the first go, but we still had fun, and so I decided to make it my next painting project.

The first decision I had to make was what to do with the bases. Most board game miniatures come with plain bases, but Myth figures are on strangely-sculpted bases. Here's one of the textured ones, although others combine this motif with chunks of flagstone.


Some folks have just painted these as-is, but I wasn't sure I liked the look of them. Others went all-out custom sculpt, which looks amazing, but I didn't want to spend that much time on them. I still have a small box of custom ballast mix that I used on my last painting project, so I tried just gluing that down and drybrushing it, and that worked fine. You'll see this in the finished photos below.

This was around the time that Ghool starting posting painting videos regularly to YouTube, and many of these feature characters from Myth. His paint jobs are amazing, although somewhere he mentioned that the minions would be well-served by a simple base coat and shade. Good enough for Ghool is good enough for me! I started in with the crawlers.

Crawlers

Looking at the unpainted ones originally, it was hard to tell that there even were different sculpts; painting the ranged crawlers with green poison glands makes them much easier to pick out on the table and in the box. Also, I should mention that with all the figures in this set, I am mostly following the color schemes on the card art. These crawlers were done with light highlighting after the base coat and wash, which gave them a much livelier appearance than before. For the bases, I didn't even flock them, because I wanted them to look like they could be on barren earth or in a cave, and I think it turned out fine.

Grubbers
Similar approach used for the grubbers: base coat in muted green with a dark green wash, various browns for the cloth shaded with darn brown wash. After this they looked a bit too dark, so I went in and added two highlights quickly to the skin. Even though it was a little sloppy, it added a lot of "pop" to the figures.

Now, away from the minions and on to the captains!

Stalkers
These stalkers gave me a great opportunity to practice smooth blends on curved surfaces using two-brush blending. The color scheme is really wild, much bolder than what I usually paint, and this made it something of visual treat for me. (This is also where I found the new white balancing feature in Snapseed. The previous pictures were re-balanced from the originals.)

Muckers
Next up are the muckers, who—as we all know—are the bosses of the grubbers. Also, it appears they are the masters of the do-si-do. I was able to match the skin tone well with their smaller kin, but these were painted with much more care, using two-brush blending across most of the figures. I thought about varying the paint scheme on them since there are two, maybe changing the color of their towel/stole/scarf, but I decided to just keep them the same for expediency. It's hard to imagine a game situation where I will regret that, but we'll see.

Terror with 1,000 Legs


Back to the insects, I moved on to the Terror with 1,000 Legs—the "big bad" of the Myth base set. Again, lots of two-brush blending over big, curved areas, and I think it looks pretty good. The pale maggots were fun to paint as high-contrast against the red-brown Terror.

One thing you cannot tell from the pictures is that my Terror was quite badly affixed to its base. All the miniatures in Myth come pre-assembled and attached to their bases, and although the assembly is generally good, some of them were poorly attached to the base. The Terror in particular was about 2mm higher on one side than the other. Originally I tried sculpting a base from Milliput to compensate, but it was its left side that was higher—the side with the maggot at ground level. The result, then, was an odd little shelf that held the maggot off the side, and it looked too goofy. I chipped the Milliput away and used my new razor saw to cut the creature right off its base and, together with my files, level off the bottom of the Terror. I pinned the terror to the base in three places and filled the gaps and base with brown-tinted fine pumice gel.

Terror and its brood
Here's a bonus picture of the Terror and some crawlers. I like that the tones are similar yet different, with the larger one being darker.

Yardu
Yardu
After the big bad, it was time for the core set's lone mini-boss and only undead, Yardu. For this model, I ended up going back to layering rather than two-brush blending. I have some sense now for both techniques, and I should look for more places to reflect on which one I should use in which circumstances. One thing I've noticed is that I find it easier to place shades effectively when starting with a base coat as in two-brush blending, whereas with layering, I will sometimes "miss" my target base color by either having too much shade/highlight or by a paint mixing error. (Keep in mind that I mix all my colors from a relatively small selection of paints.) Anyway, I am happy with how Yardu looks. How can you not like a skeletal guy who carries human skulls and also paints skulls on his knees and hey that's not enough let's also paint a skull on my helmet?

That's all the villains, so I moved on to the heroes, starting with the two that my son and I were most interested in playing: the Brigand and the Apprentice. Coincidentally, these are the two featured in some of the gameplay videos (starting here) produced by Megacon Games.

Brigand
Brigand
Brigand
First was the Brigand, a kind of a throwback to my Mice & Mystics set. What I've learned since then! Anyway, I had some trouble matching the main fur color with this miniature, and it took several tries to get something that I liked. Here, he may lean a bit more toward grey than some of the artwork, but I think the end result still looks good. No real tricks here. The miniature did not have strongly detailed fur, unlike, say, the wookie from Imperial Assault, so washes were not bringing out much of the texture. I found that highlighting little tufts with short strokes was effective enough for this guy.

Apprentice
Apprentice
Apprentice
The apprentice was a lot of fun to paint, having a simple bold color scheme. Reds don't intimidate me like they used to since I have learned a lot of tricks for dealing with them. The highlights on the Apprentice lean slightly toward yellow, and deep shadows on the muscles produce good contrast. The white pattern was painted in layers, starting with a light grey and then brightening up only the parts where an overhead light source would reach, and this helps communicate the texture on his torso.

I don't know if my original figure was bent or not, but the miniature was leaning way back. Looking around at others' figures, it's not clear to me if that was how it was supposed to be or not. In any case, I didn't care for it and I wanted to reinforce the join anyway, so I chopped him off and pinned him back on more upright.

At the table
Usually with these projects, I wait until the whole set is completed before letting them hit the table, but my son and I were to eager. Here's a shot of our first game with painted figures and a good understanding of the rules. We were playing the adventure mode and made it to the second tile before being wiped out. I still had a few of the rules a bit wrong, though now I cannot remember which. However, the rulebook does have an interesting disclaimer, stating essentially that you should not interrupt the game to look anything up: you should just play and have fun. I suppose one could always do this with any game, but it's an especially nice caveat to have on hand for a cooperative game. On the other hand, I really wanted to understand the system that was designed here, so I find myself occasionally stopping play to verify items.

Oh, and I found something in the box when we set up the game:
A jerk
So much for batch painting.

One of these things is not like the other
I didn't get a perfect color match on the new guy—he's the one in the middle—but it sure is close enough for a minion. It only exists to be destroyed, after all.

Soldier
Soldier 
Soldier
Here is the Soldier, who is the character my wife played in our first trial game, so he was the next to get painted. Turns out she's been too busy to try the game again, so he remains looking sharp but not having hit the table. What's cool about the soldier? His eyebrows. One thing that's kind of funny to me is that the sculpt has such a distinctive face, for example, the eyebrows, but that doesn't really show up in the card art: he looks more generic-young-fighter-face in the card art. My advice: sleeve your cards and draw in bigger eyebrows.

Back to the painting, I think it turned out nicely. Again, I really like the bold blue combined with the muted browns. The detail is not overdone, which leaves him looking clean.

Notice the really broad stance. Both the Soldier and the Acolyte have wide stances and had their feet molded onto plastic surfboards, which were then pre-assembled to the bases. I thought these looked pretty goofy, and I wasn't sure how to base around them effectively. Turns out, as you can see above, he just barely fits on the regular base, so I chopped off the surfboard and used angled pins to affix him to the base.

Acolyte
Acolyte
Acolyte
The Acolyte has a lot more stuff going on than the Soldier: crisscrossing straps, bedroll, holy book, multi-part textured weapon, bootstraps, billowing pants, arm guards. This makes him much busier but also more impressive. I love the orange and cyan combination here, but I also understand this is a trendy combination. (Presumably, under the blindfold, he has amazing eyebrows too, but his faith makes him cover them.)

Archer
Archer
Archer
Archer
The archer is another hero with a great dynamic pose. The card art is all earth tones except for this electric blue effect on the tip of her arrow. I decided for the miniature to keep a steel arrowhead but add the bright blue to the fletching.

In the card art, she is holding her arrow in the conventional manner, on the left side of the bow for a right-handed archer. However, the sculpt has the arrow on the other side. I wonder if the sculptor did this on purpose or just doesn't know the conventions of archery? Maybe he watched Lars Anderson's goofy shooting videos too many times? (Nothing against Anderson, though: I bet my students would listen to me if I had that voiceover guy narrating my programming videos, or if I jumped over obstacles during class.)

Tricksters

Tricksters
Finally, these are the Tricksters—the bonus Kickstarter figures I got for purchasing the game at GenCon. Yellow is a fiddly color, and about seven layers into it, I remembered my old lesson: when painting yellow, always undercoat white. My Vallejo yellow has terrible coverage. I went back to Ghool's video on painting yellow, which happens to use the female Trickster figure, and he mentions that P3's moldy ochre has great coverage for undercoating yellow; maybe I'll have to pick some up next time I'm at Wizard's Keep. Aside from the tedium of yellow and the gratuitous straps, these two were kind of fun to paint. I've never done a male/female pair before that have the same colors, but it was easy to set one aside to dry while I used the same colors on the other.

All the Heroes
Everybody
OK, you say, but how is the game? If we don't count the first choppy trial run, my son and I have now played the game four times. In the first game, we were very close to finishing a quest when we were defeated. The next two were extremely short, as we tried a quest that must have been balanced for more players. (Short version: we had to light some torches, but each lit torch brought in more enemies, and we couldn't get more than two lit before being overwhelmed.) The next game, we tried two different heroes in an enhanced story quest from the v1 rulebook. Although we died on the second tile, we were able to actually complete one quest. Here's the takeaway, though: even though each adventure ended in death, we really felt like we did better each time. In fact, the reason we died in the most recent play was because we were both holding back on enhancements that we should have just played to make an important attack on a captain. I think what makes the game so appealing is the tension between card actions, threat, and the Darkness; the Darkness Cycle interruptions are a particularly interesting idea that I hope to see other designers explore.

Another thing to like about Myth is the community. There are a ton of resources on Board Game Geek and the official Myth forums. Also, when I posted a rules question to the official forum, I had an answer from one of the designers within 24 hours.

While I am glad for Megacon Games' success via Kickstarter, this is one of those cases where Kickstarter leaves me feeling a little cold. I remember hearing about their first Kickstarter but wasn't even back into painting then, so I wasn't watching for interesting miniature games. Being outside the loop, I didn't hear about the expansion Kickstarter either. Now I don't need more stuff, and I certainly don't need an expansion if we cannot yet complete a single story quest, but I cannot help but look at the incredible deal that the backers got and be a bit jealous. I guess that's the twist on Kickstarter, never quite knowing if it's going to be something you hope it will be or not. I'll just have to hope that their upcoming Kickstarter campaign for Myth: Dark Frontier includes some deals for latecomers like me.

A final note: I met Brian Shotton, lead designer and co-owner of Megacon Games, and he is a fantastic and authentic guy. I'll have more to say that when I write about my current immersive learning project, but suffice it to say, I'm happy to support his endeavors as a game designer and local entrepreneur.

A crowded tile from that one quest we completed. We'll try again soon.

Friday, September 23, 2016

A bit of Unreal Engine and the Benefits of Source Code

Several years ago, I looked into Unreal Development Kit for use in my game programming courses. At the time, you had to know C++ to get the most of it, and my students generally didn't know C++, so I invested hardly any time in pursuing UDK. I had heard in Spring 2015 how Epic made Unreal Engine 4 completely free for developers, including making the source available. It wasn't until about two weeks ago that I was inspired to take a look at UE4. Turns out, it is extremely easy to access the source and build it on Linux, and so I've been tinkering with a project for two weeks or so. I have been keeping notes about my attempts to learn UE4, and I may blog about that more later.

This story is about how I got some core gameplay working and decided it was time to slap a HUD on the game. I checked a few pages of documentation and proceeded to create my first HUD blueprint. Upon trying to open it, the editor crashed. That's pretty uncommon, so I restarted it and tried again, and it crashed again. That's really uncommon, so I restarted again,  but I asked Google about it while UE4 was starting up. Turns out it's a known bug in the latest release. However, someone posted a workaround, which is to revert a specific commit from the repository.

I've never actually done that before, but a little bit of searching revealed that it was pretty easy. I didn't actually clone the whole UE4 project history, only the latest release, but I was able to get the patch for the commit by appending ".patch" to the github URL. (That is, it's https://github.com/EpicGames/UnrealEngine/commit/8fba9bbdc3cc4105d7c3de24adc94f7304c7d90b.patch, although you need to sign in and agree to Epic's terms to get source access; note that you can do this with any commit URL on github, which I did not know before.) I saved that to a file and reversed the commit via:
git apply -R

Couldn't be easier! Rebuilding the project via 'make' took just a minute or so, much less than the full build. Now, I can edit HUD widgets! I am still not good at it, but hey, we have to take this one step at a time.

Sunday, September 18, 2016

Sources of joy

Six or eight years ago, I went to a SIGCSE talk by Jesse Heines in which he mentioned, offhandedly, that he knew all of his students' names. After the talk, I asked him how he did this, for it was something I struggled with. The trick he taught me is one I've used for several years when teaching larger classes: have everyone write their name on a sheet of paper and take mugshots. He printed his up into a poster, but I just have mine set as a screensaver, so that when I haven't touched my input devices for ten minutes or so, students start flipping through my screen, one second at a time.

Now, it seems if one is going to have students come to the front of the room for a mugshot, then it seems they should say something about themselves as well. I used to ask them to say something about how they first became interested in computers, but this turned too quickly into "XYZ is my favorite video game." Last year, I asked instead for students to share something that made them smile. In one of my sections, it was quite nice, but in the other one, it turned very dark in the dark-comedy sense: smiling at bad things happening to other people.

I happen to be in the middle of C. S. Lewis' Surprised by Joy, and so I've been reflecting on what "joy" is and where I find it. In this spirit, as I set up and explained the mugshot routine, I asked my students to share something that recently brought them joy. To kick things off, I told the story of how the previous day, my one-year-old had picked up a baseball cap, put it cockeyed on his head, had one sandal on, and was lopsidedly parading through the hallway.

I was moved by my students' responses, and so I decided to share some from memory here. Here are some things that bring my students joy, in no particular order.

  • I found out we are getting a German Shepherd puppy.
  • When I was home, I got to see a cousin I had not seen in three years.
  • My kitten does the cutest thing, where it lays on its back and I rub its tummy.
  • I have a Web development company, and yesterday I secured a great contract.
  • My baby said, "I love you" as I left the house today.
  • Last semester, I found a quarter at the bus stop.
  • The new FIFA comes out next week.
  • My friend made an outfit for her cat.
  • I saw a great movie that really moved me.
  • I won a costume contest at a comic convention.
  • I hit max level in World of Warcraft.
  • I am a TA for the intro CS course, and I was in the lab with a student who was on the verge of tears, he was so frustrated. I looked over his code, and it was just missing a semicolon. He was thrilled, and I felt like I really made a difference.
I know there were more, but these are the ones that come to mind as I think through it. Only one student, toward the end, offered the slightest schadenfreude, and that was, "Last week, I saw Jimmy fall off his bike," but at least Jimmy was right there, and they are clearly buddies.