Saturday, July 28, 2012

Museum Assistant Kiosk at the 2012 Indiana State Fair

I am pleased to announce that Museum Assistant: Design an Exhibit will be featured at the 2012 Indiana State Fair. Our project will be on display in a kiosk at the Ball State Backyard area in the Ball State Ag/Hort Building.

Special thanks go out to two Root Beer Float Studio members who volunteered their time to making this happen. Ryan implemented a "kiosk mode" feature into the game, so that after a minute of inactivity, the game returns to the main menu. Ashley designed a beautiful handout, a great piece that visitors can pick up and take home. They'll be printed  four-up on 8-/12x11" paper, and here's a raster version of the design.

Handout Front
Handout Back
My task in all this was to make the game work on the laptop that will power the kiosk. As regular readers will know, the game is free to play online, but our kiosk will be offline, and we want it to feature just the game, not the whole site. My first attempt involved using Javascript to try to implement kiosk mode, but it turns out that all the mouse events were intercepted by the Unity Web Player, so this approach was doomed to failure. We also could not use a standalone Windows executable because the assumption of a fixed 1024x600 resolution is embedded deep in the implementation; when running the game in fullscreen mode (for which 1024x600 is not an option), many of the widgets are misplaced, so the game had to be embedded in a browser.


Knowing that Ryan was adding the kiosk feature directly to the game, I focused on making an interface that would be most useful to the player. At first, I hoped to just be able to run the game in a fullscreen browser window, but all browsers I could find have a "feature" in which moving the mouse to the edge of the screen pops up a prompt to get you out of fullscreen mode.


Fullscreen Chrome browser with the mouse having been pushed to the top edge
The player will only have a mouse and no keyboard, as the laptop is actually enclosed and protected within the kiosk. This makes it imperative to prevent the player from exiting fullscreen mode and poking around, as then someone else would have to manually go in and restore the settings before the next attendee walks by.


After a bit of surfing, I discovered that Chrome has a kiosk flag that does exactly what I need. I created a batch file that starts Chrome with the "--kiosk" flag, followed by the location of the WebPlayer html file, and it works like a charm. I put a shortcut to this batch file into the Startup directory, and now booting the machine takes you right into the game. So, in the case of failure, a volunteer at the Backyard area need only reboot the machine, and we should be fine.

Incidentally, it was easy to customize the WebPlayer HTML file with a bit o' CSS to get the look above. I'll share it here in case it's useful in the future (to me or to you).

<script type="text/css">
body {
 background: #5d337b;
}
#unityPlayer {
 position: absolute;
 top: 50%;
 height: 600px;
 margin-top: -300px;
 left: 50%;
 width: 1024px;
 margin-left: -512px;
 border-style: solid;
 border-width: 4px;
 border-color: #262263;
}

I'm using a little CSS magic to center the fixed-sized unityPlayer div in the screen. This will work fine as long as the kiosk display is at least 1024x600 resolution, and if it's not, we have even bigger problems. The small purple border around the game makes it pop against the background when playing the game.
Chrome in Kiosk Mode
We also want to prevent the user from right-clicking and fiddling with the browser or the Unity Web Player settings, and so we used the KillRightClick trick explained at lifehacker. Linking the script to the startup menu ensures that the kiosk starts in a stable and hopefully tamper-proof state.

A brief note about the value of reflective blogging. When I started this post, I had an inelegant, resolution-dependent hack for vertically centering the game in the browser window, and I had failed to consider complications of context menus (right-clicks). As I was copying my CSS over to FormatMySourceCode, I thought that there must be a better way; a few jumps around the Web led me to the absolute positioning, fixed-size div trick. As I was generating the screenshots for this post, I realized the vulnerability introduced by the right mouse button, and again, a bit of trial and error led me to the current approach.

Finally, I would be remiss if I did not thank Al Rent for inviting Root Beer Float Studio to showcase our game in the Ball State Backyard.

See you at the fair!

Thursday, July 19, 2012

Adventures in Narnia: Hybrid serious gaming from 1984

Poking around my old box of C64 artifacts, I came across Adventures in Narnia: Narnia, a game that—for a little while—I wasn't sure really existed. There's precious little information on the Web about this game, but hopefully this post will change that!


Adventures in Narnia was released in 1984 for Commodore 64 and Apple computers. It's based on The Lion, The Witch, and the Wardrobe, C. S. Lewis' first book in the Chronicles of Narnia. In fact, opening up the fancy plastic case, you can see that the game comes with a copy of the novel.


The floppy disk was not in the box, but we do see the book, a manual, ... and a deck of cards. Adventures in Narnia came with a deck of cards and a pair of dice that were used during game play. This makes it the oldest example of hybrid game design of which I am aware. (The original dice are nowhere to be found; I'm fairly certain we took them for use in other games ages ago. While I don't fully remember them, my memory tells me they were classic white with black pips.)

I have looked for a disk image for this game on and off for years; as I mentioned, I began to wonder if I the memory was the product of my subconscious! Turns out you can find one at gamebase64, if you have a working C64 emulator. I'm using photos from the manual, which include sample screenshots and provide a bit of context.

 The game plays in two acts, and here's a shot that shows the first one, where you try to gather flowers, avoid dwarfs, and keep Edmund from going to the White Queen.



If you bump into a dwarf, you have to roll the pair of dice and try to beat the given number. Succeed, and the game carries on; fail, and you lose a heart and return to the wardrobe.


At certain points in the game, you would be prompted to flip over a card from the deck.


There are nine different cards. As you can see, each one has the name of a character or location from the book, an illustration, and instructions to press a particular key on the keyboard.


Here's a closer look at those cards.


Pressing the corresponding key brings you into a minigame, many of which involve rolling the dice. Some are just plain bad: Zap makes you lose a heart. Here's another manual pic showing a few of the minigame screens.


At this point, you may be wondering: what's to stop a player from simply entering Aslan's code every time, or typing "12" every time a high roll is needed? Nothing. Well, nothing in the game mechanics anyway. It's up to the player to decide if it is worth playing honestly or if it's more important to win. Check out the first page from the rulebook:

There's a lot of interesting stuff going on here. They distinguish their game from all the others by pointing out that in addition to being fun, it teaches positive values. These days, we call this "serious games." What's fascinating to me is that they're not talking about teaching facts and information, as a lot of poor edutainment tries to do; this game claims to be teaching values. Also, like a lot of modern serious games work, there's no evidence that it does actually teach these values, but it makes a lot of positive-sounding claims.

They call this an "interface(tm) game". Note the trademark. Adventures in Narnia predates modern use of interface to refer to the space between man and machine! Certainly there was some research happening on human-computer interaction, but the concept of interface had not entered the mainstream.

Three pages of the manual are dedicated to the adult reader in sections titled "For Parents and Teachers" (complete with discussion questions from each part of the game), "After Reading the Book," and "Enrichment Activities."

This is a fascinating piece of computing, HCI, and serious games history. There was a second game also produced, based on Voyage of the Dawn Treader, but I've never seen it in the wild. 

Sunday, June 3, 2012

Gaming with Kids: Cards, Stands, and Sleeves

A few years ago, friends gave my son this thing:

A thing

As I recall, my first thought when I saw it was, "What is this thing?" It's a stand for holding cards, to be used by young children who want to play card games but who also lack the dexterity, strength, and/or size to hold a hand of cards. Alex has used it since he was three or so, when we first started playing Kinder Bunnies together.

Kinder Bunnies
The stand works really well, and I recommend it to those playing card games with the very young. It's much nicer than the oft-suggested alternatives of laying the cards face-up on the table or in the player's lap.

Alex seems to have inherited my interest in learning new games, and who can blame him, with a cupboard and a chair filled with colorful and enticing board games? I was looking through my collection a few weeks ago for something he could learn, and I came across David Sirlin's Flash Duel. I suspected that the mathematics of the game would push Alex's boundaries, but all the more reason to try it!

We started by playing a few games without the characters, which I later discovered meant we were essentially playing Reiner Knizia's En Garde. Once he made some sense out of this, we moved on to playing with the characters, each of whom has three abilities that alter the gameplay. This is provided a great opportunity for Alex to learn some arithmetic as well as practice his reading skills. Currently, he reads the "trigger" for when the ability is used, and I read the ability text.

There was a complication with playing Flash Duel beyond reading and arithmetic, however. To satisfy a deep obsession of mine, I had sleeved the cards, which keeps them looking nice but also changes their physical profile. Specifically, they fall out of the stand.

Whoops
I had been trying to convince Alex to practice holding cards in his hand for some time, but since the stand had been working for him, he didn't have much incentive to try. His desire to play games with his old man was strong enough that he's now working on his reading, arithmetic, and manual dexterity. Here's how he looks after a few weeks of almost-daily dueling.

Dashing strike, coming up!
For several days he struggled with the problem that he could not put down a card in the middle of his hand without revealing everything to the right of it: to play a card, he would set down the cluster and leave just the one he wanted. I explained that this was revealing too many of his cards, and in a few more days he mastered the art of picking and extracting the card he wants to play out of the top of his hand.

Between rounds, he's responsible for making sure the pawns are in the right places while I shuffle the deck. He hasn't tried his hand at shuffling yet, but I think it's funny that there's a good chance he'll learn to shuffle sleeved cards before he learns riffle-shuffling.

I wanted an easy way to set up random pairings for Flash Duel, but because the ability cards go in sets of threes, shuffling the deck of abilities was certainly more trouble than it's worth. Sounds like a programming problem to me! I spent a few hours one morning whipping up Flash Duel Matchup Generator, a mobile application that picks out random pairs for one-on-one matches.
A thrilling screenshot from Flash Duel Matchup Generator
I talked to David Sirlin briefly over email, and I got the impression he wasn't too keen on my releasing the app to the Market since he has something similar—and with much higher production value—coming out in the next few months. Still, if any Android-users want it, you can download the APK and install it manually.

Saturday, June 2, 2012

FDG 2012 Conference Report, Day 3 and Conclusions

(This post was written in everyone's favorite text editor while sitting in the airport and on the flight home. This has allowed me to explore a few ideas in more detail than the last two days. That is to say, I'm using my writing to try to piece together some ideas, and I've not pulled any punches in the attempt. Final edits were made later in the day when I had an Internet connection and was able to verify names and add links.)

The opening keynote this morning was given by Reed Shaffner and Zach Schubert from Zynga. I think many of the attendees were eager to hear what Zynga would have to share at a primarily-academic conference, since—fairly or not—they tend to be the butt-end of a great many jokes in game design. In fact, I was really impressed with the technical content of the presentation and the candor with which these two gentlemen shared their ideas. It wasn't purely altruistic: Zynga is in the process of creating a platform for game developers. One way to speed adoption of a new platform is to get buy-in from academics. Regardless of motivation, it was an honest presentation and I really appreciate that they were revealing their hands to us, especially since, as they say, Zynga has not traditionally engaged with outside groups.

The presenters had done their homework, too. Shaffner made a comment about how they take some criticism since some of their games are like clicking cows. This is, of course, a tilt of the hat to Ian Bogost's Cow Clicker, and as Shaffner said this, he nodded to Ian, who was sitting in the front row. Classily done.

Let's talk about analytics. Zynga collects 8 terabytes of data each day spread out over 60 billion rows. To consider how much data that is, it's like 2:43 into Powers of Ten. These data are available for query within five minutes of being collected, and a subset of it is available in 90 seconds. That's incredible. They pointed that unlike many Web applications, practically every operation is a write, which gives them interesting technical and architectural challenges. Their total database size right now is about 1.4 petabytes (3:13). With this mindboggling amount of data, it would be folly not to do some automatic analysis over it. They have just recently started endeavors to predict play behavior from the 100 or so characteristics they record about their users. These sound like wonderful machine learning problems!

Schubert talked a lot about how they were converting to a service-oriented architecture. Traditionally, they have replicated a lot of services in game-specific servers, and also replicated code on client and server so as to prevent fraud. Heavyweight game servers are not scalable, and—according to their own internal tests—replicating logic on client and server do not prevent fraud. Separating into services not only helps them continue to scale, but it also permits the Zynga platform to emerge as something valuable to the community of game developers. Regarding fraud detection, they're moving toward the approach taken by credit card companies: automated machine learning on the server side to detect potentially fraudulant activity. Again, this is enabled by their vast collection of data and opens up fascinating research opportunities.

Zynga API Infrastructure. Very cool.
I took the opportunity to talk to Shaffner after the keynote. More specifically, I got a cup of coffee and then saw that he was still in the room, and he was kind enough to chat with me despite the fact he almost certainly was ready for a coffee himself. I asked about the methodologies they use, since as you know, dear reader, I do love me some methodologies. Their game teams use waterfall since they are often driven by very strict timelines. He acknowledged that agile has value, but the company was more attuned to design-up-front. Since these games are continuously updated services as opposed to products, it really sounds more like a form of continuous delivery with a very structured initial planning process. Some of the internal tools teams used more explicitly agile approaches, and most of the teams incorporate variations on daily stand-up meetings (capped at 15 minutes) and burndown charts, albeit without rigid timeboxing.

I appreciate that the conference organizers had a range of keynotes from education to sociological to technical. The guys from Zynga were great, regardless of what the rest of the company is doing.

I will note that the representatives from Zynga and Bethesda mentioned that they would benefit from cooperation with the academic research community. More specifically, they had problems that academic research could help solve. 'Tis external funding makes the academic world go 'round. Just remember: you heard it here first.

After the keynote and Zynga-sponsored coffee and snacks (thanks again), there was one more research paper session. I will note that there were two parallel tracks during each of these sessions. At almost every juncture, it was hard for me to decide which track to attend, as I'm sure I could have learned something in each one that's relevant to my interests. The easy one was when my own session, although there was a paper about games in CS education opposite my session that I'm eager to read. This morning, I attended the session on game design.

Chris Lewis talked about behavioral game design patterns. This work is based on existing work on game design patterns which, like object-oriented design patterns, are inspired by Christopher Alexander's work and discovered in successful systems. This work on behavioral design patterns looked specifically at Zynga's 'ville-style games, and the author proposes four patterns based on behavioral psychology and behavioral economics: fixed interval scheduling, the sunk cost fallacy, scarcity, and reciprocal altruism. Lewis explained how these show up in Farmville as well as in other games not connected to social networks, and I found his explanation intriguing and satisfying.

I have had some trouble wrapping my head around the game design pattern work, partially because the scope and application feel very different from Gang-of-Four-style software design patterns. Consider fixed interval scheduling. The problem it solves seems to be, "How do I motivate my players to keep playing?" Fixed interval scheduling is certainly one way to do it, but it's more directly answering the question, "How do I motivate my players to keep coming back," but when asked that way, the answer is obvious: give them a periodic thing to do. By contrast, consider the Visitor design pattern in object-oriented software. The problem is that one has type-specific algorithms to execute over a potentially-heterogeneous data structure whose type is not known at compile time, and the behaviors to be added change more frequently than the kinds of things being added. The solution is to use Visitor, a combination of double-dispatch and subtype polymorphism. There are lots of ways to implement the pattern that depend on the specifics of the context, but there's a real sense in which Visitor gives you the best path—the best family of reifications—for the problem. It's not the only solution: for example, you could pepper in some runtime type information extraction, such as via instanceof, but you shouldn't.

Is your problem related to type-dependent algorithms over a heterogeneous data structure? Use the Visitor design pattern. Is your problem that you want people to be motivated to play your game? There's about a hundred different things you could do. Is your problem that you want players to keep coming back? Then make them keep coming back. To be clear, I'm not saying game design patterns are wrong, but they do strike me as a very different kind of thing than what we call "design patterns" in software development.

Anne Sullivan presented an interesting design for a social RPG—which she defines as a role-playing game with no combat—in which the game's responses were based on a "story forest". Plot points could come from different characters based on your previous interactions with them. Similarly, the ending of the overarching narrative was related to behavior throughout the rest of the game, even including generated endings for cases that fell between the cracks. At the very end of Q&A, someone asked where to find and play the game, and at this point she admitted it wasn't finished due to lack of resources for content creation. I find it irksome that she was not more forthright with this during the prepared remarks, since this point is a significant contribition to discussions of alternative quest and narrative techniques: content creation is often a limiting factor. Understanding how it is a limiting factor within this kind of game system is crucial to moving this line of work forward. Evaluation of an incomplete artifact is necessarily incomplete, and redefining "done" as "done enough" strikes me as problematic when the very  goal of the study involved looking at overarching and complex, interwoven character interactions.

Sullivan's justification and related work were quite interesting. Although I would have preferred more technical details about the actual mechanics, I certainly share her disappointment in the proliferation of killing in CRPGs where alternative solutions provide such better story. (My first answer to "What would you see removed from Skyrim-like CRPGs?" in yesterdays panel is "Everyone fights to the death.") I was surprised that she did not mention Chris Crawford's work on StoryTron at all, since it seems to capture much of what she is trying to demonstrate through her experiment. The biggest problem with StoryTron, which I was able to confirm once I returned home and got online, is that it's still down, and so is its most well-known game, Balance of Power: 21st Century (review). Crawford seems to be working against those of us who want to take this work seriously! If you're reading this, please keep these artifacts accessible so we can study and learn from them.

Gillian Smith presented a platform game based on a six-dimensional procedural content generation (PCG) system. It was an interesting experiment, and she acknowledged the limitations of her team's solution. Seeing the demo, though, I am reminded of a comment from How to Prototype a Game in Under Seven Days: nobody cares about your engineering. More specifically, one must remember that the player will build a subjective mental model of what's happening under the hood. Smith kept speaking about the project's PCG nature as if it were apparent, and she was clearly exasperated at the complexity of it and of communicating it to the player. Compare this to Inside a Star-Filled Sky, which demonstrates how PCG can be explicit, integral to gameplay, and comprehensible. I'll have to read Smith's full paper to see if she can tease apart the fundamental differences between these two projects. The answer to the research question, "Can we build a system that does X" is almost always "yes," but it's a solution looking for a problem.

Remember, friends: I criticize because I love. That's what academics do. At least, that's what I do.

A team from Sweden presented their Masters work, a Microsoft Surface project designed to facilitate all kinds of tabletop gaming. They very quickly admitted that it was naive to think they could facilitate all kinds of tabletop gaming, and instead they found two examples of games that worked for their approach. Of course, if you build a digital tool that allows players to trace lines with their fingers and then erase them, you've invented an awkward and expensive version of paper. Now, these guys had more features than fingertip drawing, but I hope that the real lesson of their paper resonates with future graduate students and hobbyists: solve a specific problem and beware of feature creep. When my team developed Confluence, we had to push back pretty hard against pressure to add numerous features that would make ours the end-all and be-all of hybrid RFID multitouch conference systems. I'm glad we held our ground, and we still barely got it done in time—but it worked exactly for the purpose we designed it.

I believe that all of these three experimental systems presentations were given by graduate students, and as I reflected on this, I remembered some of my early conference presentations. They were based on the fact that I had built a thing, and it was neat, and I wanted to share it. In retrospect, I probably should have spent more time before building it trying to really understand why I should build it. This reflects my more recent embracing of design thinking, especially the point that design is for people, and so people need to be a constant or at least periodic focus of the iterative process. I wonder, did these graduate students, like me, finish a project with good intentions and then go back and add a related work section?

I haven't read all the papers (yet?), but I suspect the talk followed the flow and tenor of the paper. What I'd like to see in game design papers is explicit treatment of each phase of the design process and an analysis of its direction over time. For example, what were the originally identified goals? As a prototype was built and tested, how did this change what goals were identified for the next round? How did your empathy for the end-users change your evaluation plan each iteration? Perhaps this can be boiled down to this statement: if we're going to talk about game design as design, then we need to explicitly describe the design process, especially for design experiments. OK, now that I've said that in public, I'm going to try that when I write up a game design paper. Internet, your job is to hold me to that promise.

After this session, I joined a group for lunch at The Big Easy, where I had a shrimp-and-oyster po' boy with a Blanco Diablo. (Interesting story: when writing this, I remembered it as "diablo blanco", but when I did a search to find a link, I discovered it was "blanco diablo." Another exciting bilingual story from FDG2012!) Excellent food, and great company. Near the end of the meal, we had a short discussion of Jane McGonigal's work. One lunch attendee argued that it's good that we have hope, that we be positive in about what games can do. I argued that this should be tempered against what we know about how people actually behave. I may not have made my point very well, though, partially because I made an analogy to Scientology that was probably not well explained. My point is, if we all converted to Scientology, we would share in the belief system it presents, and we'll all probably be really happy and get along. But, it's not the case that everyone is going to convert to Scientology (hooray!), and so we're better off looking at what people are actually doing than just hoping everyone will convert. It's pertinent that I'm currently reading Hanging Out, Messing Around, and Geeking Out. This book is the result of a massive ethnography of how youth engage with new media; that is, it deals with how people really behave in a complex changing environment. It doesn't make any promises about how new media will save the world, but it does provide research-based conclusions regarding how people behave.

I had a great time at FDG. I met some great people from a variety of disciplines and countries. The range of research topics was great, since this showed me new directions for my personal and professional work. The quality of the research was fine, although I think this conference shows that there's a lot of growth potential still within this field. I heard several academics complain at the lack of industry representation, and while it would have been nice to meet more people from industry, it wasn't clear that the presented papers were well connected to industrial practice. Compare, for example, my trip to OOPSLA (now SPLASH) a few years ago, where everything I saw blew me away, and where there's historically been a productive mix of industry and academia.

I also had some great opportunities for personal growth at this conference. Several attendees mentioned that awkward lonely feeling you get when you attend a conference where you don't know anyone, and it was great to hear other people articulate those feelings swimming around in my own head. It sounds so silly, but it's true that I am in a room of strangers and it's lunchtime, it feels really weird to walk up to them and say, "Let's go get some lunch!" I'm sure it's easier for some than for others, and I'm glad that others are not afraid to discuss it! This is me, doing it in public and embracing the suck. This also marks the first time at a conference where I joined in ad hoc after-hours socializing with people I just met. Here's a good story: After hearing Jonas Linderoth's keynote Wednesday morning, I read his 2011 DiGRA paper Thursday morning, then found him and told him I enjoyed it Thursday afternoon. That evening, we sat together over drinks discussing the Swedish and American educational system, the challenges of publishing qualitative research, and Sam's amazing journey from wine stores to cord stacking. (Also, Swedish death metal.) Lessons learned all around.

I look forwarding to attending an FDG in the future, although likely not next year in Crete unless I can secure significant travel support—and someone to watch the kids, since I don't think my wife would let me go without her!

Sorry for the long post. I don't have time for a short one.

Friday, June 1, 2012

FDG 2012 Day 2

Here are some notes from day 2 of FDG2012.

The morning keynote was by Bonni Nardi, who spoke primarily of a model of computers as a "virtuous accomplice." Several people knew her from her work, My Life as a Night Elf Priest, which I have not read. The presentation was interesting, although the focus on results rather than methods left me a bit confused at times—although her findings, in general, struck true to me. One of the themes of her work is that computer games provide a stable reprieve from the chaos and confusion of daily life, which is a great counterpoint to the popular press depiction of games as simple outlets of sexism and aggression. The best part was really the Q&A after her talk.

Ah, but the actual best part of her talk was when a speaker from Sweden mentioned that they have a term in Scandinavia, and if I got it right, he said, "We call them curling parents, because they sweep away all their kids' problems." It's the same phenomenon as helicopter parents in the US, of course, but I think the term is brilliant. This might be my heritage as a Western New Yorker coming through, since we were close enough to Canada to know what curling is.

I went to the morning session on theories and frameworks, and in stark contrast to my comments from yesterday, these folks seem to know how to present! They were also an older, more experienced group of professional presenters, many being faculty rather than grad or undergrad students. Konstantin Mitgutsch and Narda Alvarado presented a nice framework for assessing the coherency and cohesiveness of serious games, and I was glad to see people working in this area. They admit that its far from a finished theory, but it certainly seems like something I can use with my student teams in the Fall. Espen Aarseth presented a narratalogical theory for games, and I was glad to have heard it. I know it's an old debate in the field, but I've never actually heard someone tackle it in public as a researcher, and so I appreciated how he framed his presentation for someone who was not already familiar with fundamentals of narratology. I have a few other notes from the session, but nothing else that needs to be shared here just yet.

Lunch was a feast at Beasley's Chicken & Honey, where I had fried chicken, a spicy wedge of mac-n-cheese, and a nice a local beer with the guys who I missed for dinner the previous night.

The poster session was interesting, and generally I like seeing unfolding work. The highlight for me was a chat with a team from Georgia Tech who are working on "brain games" for older adults, mostly because the presenter was knowledgeable in psychology and we were able to have a great discussion about relationships between our work and learning theory.

The games showcase was not quite what I expected. I thought it would be more purposeful games or serious games, but much of it struck me as just games. Some tried to explore new territories, but I wasn't overwhelmed with the results. Some I found offensive in their use of stereotypes and flippant treatment of serious issues such as clinical depression. Someone at the conference mentioned earlier, serious games sometimes get a free pass because you can bat your eyes and say, "but it's about world peace!" And, I agree with the sentiment of whoever said this, that this is garbage.

In the afternoon, there was a panel on the future of RPGs, specifically focusing on Skyrim in part because one panelist was Brett Douville, lead system developer at Bethesda. The format was good, with each panelist asked to describe what they never want to see in an RPG again, what they think should be strengthened in RPGs, and what Skyrim-style RPGs have to learn from tabletop gaming. It was a good discussion, without too many surprises. One of the keenest points that Douville made, which I paraphrase here, is that AAA titles are doomed by their need to turn a profit, and they will always be power fantasies about saving the world so that they sell to the new generation of 14-year-olds. The proposal for more small- and mid-budget RPGs was reasonable, and I love Eschalon as an example of a game targeted at adults. I wonder if, as the age of a gamer continues to rise by about a year each year, if there's not a market for more narrative experimentation in the AAA realm---but I understand that publishers of these huge games must be risk averse.

The panel is also where I learned about the 4-minute Morrowind walkthrough. Douville referenced this as something that should not be possible, but I think it's great, an indication that mastery of Morrowind actually means something.

I attended a community meeting in the afternoon as well, and it was good to see that this community—like every academic community—has trouble deciding how to steer. There was a lot of discussion about next year's conference in terms of date and location, followed by another long discussion about the following one. The FDG group began as a heavily-Microsoft-sponsored conference that took place on a cruise ship. The last few years, the conference has moved off the boat, but they are considering a return to that format. The reasoning behind is that all of the attendees are forced to interact by the physical constraints of the ship, and that this leads to more exchange of ideas and community-building. This sounds great as an outcome, but as an academic, one has to deal with third-party suspicion of quality because, hey, it's on a cruise ship. These arguments went in circles for a bit, and I don't envy the board their need to make a decision on this.

The banquet was rather good despite the cash bar, and I got to sit with Brazilians and Canadians, so we had the Americas pretty well represented. Afterwards, a group of about 20 walked a few blocks to the Flying Saucer for drinks and discussion. I had a great time, sitting near two excellent storytellers. Two things I learned:

  • "Without pressure, there is no learning" is an excellent teaching philosophy.
  • "Interdisciplinary work doesn't mean you correct other disciplines" is a great idea for a T-shirt.

Wednesday, May 30, 2012

FDG 2012 Day 1

I am in Raleigh, NC, for the Foundations of Digital Games conference. This is my first time at this conference and my first time in Raleigh. Both have been great so far. Despite having been working in the "games" sphere for the last few years, this was my first time at an explicitly games-related conference. I have been presenting my work at general conferences like CCSC:MW or at conferences with other domain focuses like SIGCSE and DESRIST.

I arrived yesterday late afternoon and, since I was in no rush and had done my research, I took the bus from the airport to downtown. It was $2 well spent, and a nice way to get a look around the city. A few people have reacted with incredulity about my having taken the bus, but it was a good learning opportunity.


Let me zoom in on that a bit for you:

In English, you are "elderly," not "a person of advanced age," though in Spanish, you are "una persona de edad avanzada"—certainly not viejo! Yet, in English, you are not "disabled," you are "a person with disabilities," while in Spanish, you are simply "incapacitada." Language is fascinating!

I found the hotel, dropped off my bags, and went exploring downtown. I ended up outside a restaurant called "Mecca," which from the name I assumed would be some kind of Mediterranean place. Turns out it was more of an American diner, but the staff were helpful and the cheeseburger was great. I asked about local beers and had one of these:

  

Very nice indeed, and it's made right in Raleigh.

After walking around downtown, I explored the hotel to see the spaces we'd be in today. There were workshops yesterday and their signs were still up. As I walked around, I noticed that one of the rooms was open for a reception, which I had never even noticed on the schedule. I had a free glass of cabernet and met some nice gentlemen from Portugal and the Netherlands before retiring to my room for the night.

During the welcoming address, the conference chair pointed out that the proceedings were hiding inside the pens in our conference bags. Let's take a look...


Ooh, handsome. So, if I twist the right side, I should get a writing implement...

See the difference? When I twist the bottom side of the pen, I get a writing nib the size of a tsetse fly. Additionally, when I exert any pressure on that nib—for example, as one might apply when writing—it scuttles back into its protective shell. Convenient! I shall never have to worry about this pen running out of ink! I can only hope that mine is broken. Anyway, you can still unscrew (and unscrew and unscrew) the back to reveal the USB connector and get your proceedings from there.
I guess when you're done, you screw it all back together again so that... your pen doesn't get lonely? I'm sure there's a lesson here about ideas vs. execution. Memo to myself: USB sticks alone are sufficient.

The morning keynote address was worth the price of admission. The speaker was Jonas Linderoth, who presented an overview of his ecological approach to game analysis. He has a doctorate in pedagogy, and he is clearly and explicitly dubious of unsubstantiated claims regarding games and learning. Specifically, he is looking at well-studied educational principles such as transfer and their absence amid the cries about games' potential for transforming education. He nailed several points that have been bothering me for the last few years, and I'm eager to read his research. I believe he said he is working on a book that presents his theory, and if so, I'll be first in line. Regular readers will know that I love Koster's Theory of Fun, but I've been aching for something more research-based.

After the keynote was the first paper session, which had four papers. I really think four is too many to digest, as an attendee. Four papers is especially too many when half the presenters are reading bullet points off of PowerPoint slides. Attention everyone with doctoral students: Step 1, learn to deliver good presentations. Step 2, teach your students. Step 3, make them practice. Step 4, only after completing the other steps, allow them to present at conferences. 

But I digress. The content was mostly interesting. Enjoyable research overall, despite some bad infographics and conclusions far exceeding actual results. These are the kinds of things I hammer when I am a reviewer; perhaps I shall volunteer to review for this conference next year.

Lunch was a gyro from the place right next to the hotel because it was raining. It was quite good.

I gave my talk in the afternoon, based on the entity system architecture of Morgan's Raid. I finished my prepared remarks with time to spare so there would be plenty of time for discussion. There were some good technical questions, but I am most excited about the people who asked about the environment: the students, the curriculum, the objectives. To me, this is a good sign that people are excited about the idea of studio learning environments and giving students authentic learning experiences through game development. After the formal presentation slot, one of the other presenters asked me about grading, and I had to pause for moment to remember how I graded them at all. I'm glad he asked, because that reminds me that I need to come up with a better way for this Fall.

The young man presenting after me was the lead developer of Gear2D, a component-based game engine. I challenged him a bit on the problem of creating an engine rather than a game. As I told him, the best advice I heard (on javagaming.org I think, back when I checked it daily) was, "When you think you want to make a game engine, make a game instead. Then make another game. Then make another game. The stuff you used all three times is your game engine." He took this criticism well, and talked about some of the ongoing work to build applications atop Gear2D. Later I found out he's an undergraduate, so props to him for writing a paper, having it accepted, and coming all the way from Brazil to listen to my comments. Seriously, nicely done.

At a conference where I don't know anybody, I love presenting early in the conference. During the rest of the conference, I met several people who were at my session and their colleagues. If I didn't have such a refined sense of morals, I'd start lying about having to leave every conference early just so I could be put early in the schedule.

There was a panel on Twitter as a platform for game development. Each of the panelists had interesting things to say, but there were hardly any questions from the audience. I admit curiosity about Twitter, but I don't use it. There were some interesting word/language games described, but as the panelists admitted, they weren't really dependent on Twitter's unique ecosystem, and some have been translated to generic text interfaces. I understand that there is a culture around Twitter involving retweets and followers, an unspoken etiquette that one must understand or be doomed to the lower echelons of twitterati. It seemed that the games that reflected this yielded the most interesting game design ideas, because they involved serious real-world risks.

David Molyneaux from Microsoft Research spoke about Kinect Fusion, an incredible application of Kinect hardware with advanced image processing to do real-time 3D reconstruction of scenes. It was mindblowing. Fortunately, you can search YouTube for "Kinect Fusion" and find a lot of the highlights. Seriously, check it out.

A special session was added for Leslie Redd, Valve's Director of Educational Programs (or whatever you want to call her in a company with no titles). They're working a "Steam for Schools" as a way to get Portal 2 Puzzle Maker into schools. A few teachers are designing lesson plans and curricula for math and physics based on beta testing. You can get a sense of it from the video about the Evergreen School field trip to Valve. More information is available at http://www.learnwithportals.com. It's great to see Valve reaching out to help schools, and Redd admitted that their biggest hurdles were not technical but rather dealing with administrators and, even moreso, IT departments.

At this point, I considered finding some of my newly-made friends to see if they wanted to get dinner, but a quick self-evaluation made me realize I was completely exhausted and needing my introvert time. So, I went exploring the city again, this time stopping at Dickey's BBQ. One bite in, and I knew I needed to capture the moment.


Amazing pork BBQ sandwich, accented with an authentic Carolina-style, vinegar-based BBQ sauce. On the right is the Dickey's sauce, which is a more conventional tomato-based sauce. Also good, but the Carolina-style really hit home, perhaps because it was reminiscent of Chiavetta's. The fried okra were perfectly seasoned, with a black pepper kick. The Brunswick stew was out of this world. Bad Penny was good enough for a repeat as well... especially since the other choices were Bud and Bud Lite.

Afterwards I did some more walking and discovered a nice park and a few more eateries I'd love to try. Then I remembered that I wouldn't have time for them. Next time, Raleigh. Also, after Dickey's, I probably should not eat again for a few days.

When I returned to the hotel, I saw a group of four of the nicest gents I'd met at the conference, and in fact, one had just left a message for me to see if I wanted to join them for dinner. So very kind of them, but at this point, I was stuffed, exhausted, and really wanted to write down my thoughts from the day. So, in case one of you is reading this, thanks again, and next time I will surely take you up on it.

Sometimes my family will travel with me to conferences, but this time I am traveling alone. One of my favorite parts of traveling by myself is that, usually, my wife will sneak little notes into my bag. This is really nice, and you, dear reader, should do this for your own spouse or significant other. However, this was the first conference where I also had notes from my son:


What a guy! I suspect my wife put him up to it, but that doesn't take away from the warm fuzzies it brings me.

Tomorrow's another full day. No promises on whether I'll have the energy for another comprehensive post, but I really wanted to capture my first impressions of the conference. In case I don't have a follow-up, I'll take the opportunity now to post a public "thank you" to all the conference organizers.

Friday, May 25, 2012

Reflecting on the last 14 years

I spent seven years in graduate school.
I have been in Muncie for seven years.

I started graduate school at the University at Buffalo in Fall, 1998.
I became an assistant professor at Ball State University in Fall, 2005.

In Buffalo, I spent two years on my masters degree and five on my doctorate.
In Muncie, I was promoted to associate professor in five years and secured tenure in two more.

In Buffalo, I wrote about a dozen songs and a few research papers.
In Muncie, I've written many research papers but only one song.

In Buffalo, my advisor was a good and patient mentor who was sometimes distracted by his duties as department chair.
In Muncie, my wife has been my constant companion and biggest supporter, although she is sometimes distracted by raising our children.

In Buffalo, I changed apartments four times.
In Muncie, I bought a house.

In Buffalo, I wrote out my lesson plans in binders and tried to give stirring, inspirational lectures.
In Muncie, I pay attention to what my students are doing and how that relates to their learning.

In Buffalo, I bought a book of Peanuts songs and absolutely loved it.
In Muncie, I bought a book of Mr. Rogers songs and absolutely loved it.

In Buffalo, the Computer Science and Engineering department was in Bell Hall.
In Muncie, the Computer Science department is in the Robert Bell Building.

In Buffalo, I bought computer games that came in boxes.
In Muncie, all these purchases are made through Steam, GOG, or indies.

In Buffalo, my friends and I had cookouts at Point Gratiot on Lake Erie.
In Muncie, I try to have my students and collaborators over to the house for a cookout each semester.

In Buffalo, I changed my facial hair every few weeks.
In Muncie, I've worn a beard since a few weeks into my first semester.

In Buffalo, I had a few failed relationships, but these led to my marriage, which makes me very happy.
In Muncie, I had a few failed research directions, but these led to my current scholarship, which makes me happy.

In Buffalo, I ate corn dogs and potted meat from Big Lots.
In Muncie, I go to the Farmer's Market almost every weekend.

In Buffalo, there were lots of Greek restaurants for Sunday brunch.
In Muncie, there are lots of places to get Mexican cuisine.

In Buffalo, most of my best friends were single.
In Muncie, almost all of these friends are now married, most with children.

In Buffalo, I got to meet Neil Innes.
In Muncie, I got to work with Hal Abelson.

In Buffalo, I lived alone for two years before sharing apartments.
In Muncie, it was two years before my wife and I had our first child.

In Buffalo, I had purpose and was working on mastery.
In Muncie, I have autonomy, mastery, and purpose.

In Buffalo, an inspiration student told me, "I'm gonna call you 'PG'!"
In Muncie, my students called me "Doctor G."

In Buffalo, I was affiliated with the Dragon Clan in Legend of the Five Rings.
In Muncie, I am affiliated with the Special Interest Group in Computer Science Education.

In Buffalo, I was a research team of one, and when I occasionally was thrown masters students, I was neither authorized nor prepared to mentor them.
In Muncie, I have worked with several great collaborators, including undergraduate and masters students, and I've become much better at mentoring.

In Buffalo, I would go to Bennigan's for the Wheelhouse burger.
In Muncie, I go to Scotty's for the Backyard BBQ burger.

In Buffalo, I saw my parents about twice a month.
In Muncie, I see my parents about twice a year.

In Buffalo, Duke Nukem Forever was in development the whole time.
In Muncie, Half-Life 2: Episode Three has been in development most of the time.

In Buffalo, all of my work was done in Java.
In Muncie, I have published papers based on work in Java, C#/.NET, and Prolog.

In Buffalo, I had roller blades.
In Muncie, I have a bicycle.

In Buffalo, I read several books by Orson Scott Card.
In Muncie, I have read several books by L. Frank Baum.

In Buffalo, I had to explain that Dunkirk was about an hour away.
In Muncie, I have to explain that Buffalo is not near New York City.

In Buffalo, caffeine came in the form of tea, Dr. Pepper, and chocolate-covered coffee beans.
In Muncie, caffeine comes from tea, coffee, and chocolate-covered coffee beans.

In Buffalo, I spent a lot of time tracking down defects in my own code.
In Muncie, I have converted to test-driven development.

In Buffalo, I walked to campus when I lived close and drove otherwise.
In Muncie, I walk or bike and have never had a parking pass.

In Buffalo, people complained about Adelphia.
In Muncie, people complain about Comcast.

In Buffalo, I had never heard of paw paws.
In Muncie, I cannot find a good fish fry.

In Buffalo, I was an officer with the Computer Science and Engineering Graduate Student Assocation for four years.
In Muncie, I was Undergraduate Program Coordinator for five and a half years.

In Buffalo, I locked my keys in my car twice.
In Muncie, I have locked my keys in my office once.

In Buffalo, I first read Godel, Escher, Bach.
In Muncie, I tried to re-read GEB but couldn't quite make it.

In Buffalo, the Manifesto for Agile Software Development was written, but it didn't really affect me.
In Muncie, the principles of agile software infuse almost all of my work.

In Buffalo, I had to stop using instant messenger so I could be more productive.
In Muncie, I had to start working with my office door closed so I could be more productive.

In Buffalo, I introduced many friends to bubble tea, though some didn't like it.
In Muncie, I introduced many friends to old fashioned cocktails, though some didn't like it.

In Buffalo, I had to cast objects returned by Java's collections API.
In Muncie, I use the generic version of the API.

In Buffalo, I organized L5R tournaments.
In Muncie, I have people over to play board games.

In Buffalo, I went out to Chippewa exactly once.
In Muncie, I've been to The Locker Room exactly once.

In Buffalo, I bought tea at Victoria Teas in Niagara-on-the-Lake.
In Muncie, I buy coffee from Compusion Coffee.

In Buffalo, the extent of my tabletop roleplaying was one game of Rolemaster, one game of D&D 3.5, and one session of system I designed.
In Muncie, the extent of my tabletop roleplaying has been two games of Everyone is John at the VBC.

In Buffalo, I loved to go cross-country skiing with my friends.
In Muncie, I can walk or bike to work year-round.

In Buffalo, I bought Settlers of Catan and Carcassonne.
In Muncie, I am shopping for more storage space to hold my board game collection.

In Buffalo, my favorite course to teach was programming languages.
In Muncie, I have not taught programming languages.

In Buffalo, I would go to Zoar Valley and Goat Island.
In Muncie, I go to Mounds State Park and the Muncie Greenway.

In Buffalo, beer-battered banana peppers were a favorite treat.
In Muncie, deep-fried pickles are a favorite treat.

In Buffalo, I got better at playing acoustic guitar.
In Muncie, I have gotten better at playing bass guitar.

In Buffalo, I was a Presidential Fellow.
In Muncie, I have been a fellow with the Institute for Digital Intermedia Arts and the Virginia Ball Center for Creative Inquiry.

In Buffalo, I watched all of Neon Genesis: Evangelion with my pals.
In Muncie, I watched all the MST3Ks with my wife.

In Buffalo, my friends and I debated the relative merits of Duff's and Anchor Bar's wings.
In Muncie, people don't seem to know that chicken wings are supposed to have bones in them.

In Buffalo, Linux was my operating system of choice, except when playing games.
In Muncie, Linux is my operating system of choice, except when playing games.

In Buffalo, I learned how to understand and apply software design patterns.
In Muncie, I teach others how to understand and apply software design patterns.

In Buffalo, I wore flannel shirts over T-shirts.
In Muncie, I wear sweater-vests.

In Buffalo, I tinkered with game design and development when I needed a break from school work.
In Muncie, I create and teach courses on game design and development.

In Buffalo, I performed at Higher Grounds Coffee House.
In Muncie, I blog.