Sunday, October 21, 2012

MeaningfulPlay 2012, Day 3

(Day 1 | Day 2)

Saturday was the third and final day of the conference. The opening keynote was from John Ferrara, author of the recently-published Playful Design and creator of Fitter Critters, which took second place in the Apps for Healthy Kids challenge. He began with a discussion of the hype cycle and described how he believes serious games are nearing the peak of inflated expectation—a belief with which I tend to agree.

After a strong introduction in his talk, I was disappointed with Fitter Critters. I question the interface design, which was built upon showing detailed nutritional information to 8-12 year-olds. One of the features of which he was most proud was that players can scroll through the dozens of food choices and combine them to make new recipes, which if are healthy can be sold for more than the cost of the ingredients. I have to wonder, can you make chocolate-covered broccoli?

Ferrara claimed that realistic data is a critical element for serious game design, but I remain unconvinced. A question from the audience hit the nail on the head (although it was asked somewhat awkwardly and I don't think Ferrara caught this interpretation). Why should we believe that putting detailed nutritional information into a serious game will make children learn to make healthy decisions when we know that putting detailed military information into first-person shooters does not teach kids to shoot each other?

This train of thought—and conversations with my colleagues—helped me to articulate one of the problems I was having with the conference: there was much more talk about design justification than about design. Put another way, there was a lot of hype around ideas, but not much discussion of what players are actually doing. I could point to some specific examples, but I'm going to wait on that until I have time to write proper critical analyses. (I'm still sitting on some design frustrations from the game showcase at FDG!)

I missed the start of the next session, in part because the intersession break was reduced to 15 minutes. As I was considering which session to jump into, I was fortunate to run into Casey O'Donnell, who had asked a question after my talk that stuck in my head. The more I thought about it, the more I was convinced that I did not fully understand his question. We ended up talking for some time about game design, research, and higher education. I am looking forward to reading his work in which he conducted ethnographic studies of a commercial game studio, since this will provide an excellent counterpart to my and Brian McNely's study of the VBC environment.

I expressed to O'Donnell how I was still trying to understand who these "game studies" people were and what they valued. He described the ecosystem as involving game studies, industry, and makers as three parts of a Venn diagram, and that MeaningfulPlay was positioned roughly in between. I wondered at the lack of references to some of my favorite designer/writers—Koster, Cook, Burgun, Schell—and he helped me to understand something about "game studies" that I would never have thought of: many people in game studies intentionally separate themselves from makers, as a form of removing bias. In my mind, as a maker, I had been mistakenly characterizing their approach as unaligned with design, but in fact, it might be that it's more orthogonal. I'm going to have to read more of the non-maker game studies literature to try to build empathy for them, since as I mention below, we seem to value vastly different things.

But first, a few words about Lucas Blair of Little Bird Games. His talk Friday about achievements was very interesting: he designed a study around measuring the effectiveness of achievements, in various combinations, on player performance and retention in a serious game about PTSD. He presented his original hypotheses, many of which turned out to be false, and then described how he dove further into the research to try to understand why. I love it when scholars admit that it's not a rosy ride each time: in fact, if you don't report mistakes, I suspect you're either not honest or not doing challenging enough work!

In any case, I had a fascinating discussion with Blair and his colleague, Danielle Chelles. He provided more context about his BadgeForge project, a fascinating part of the Badges for Lifelong Learning initiative that is devoted to user-created badges. Blair's background in instructional design was clearly an asset in this endeavor, and I found myself in deep agreement with his fundamental premise: that the best way to promote lifetime learning was to allow learners to craft their own badges. The margins are too small to include all the details of our conversation, but it gave me a lot to think about—both as a professor and as a parent—and I look forward to following up with the good folks at Little Bird.

The closing keynote was given by Michael John of EA, who has had a long career in the games industry and, notably for this conference, has recently transitioned into a leadership position in GLASS, an attempt to throw AAA-commercial-scale resources at the problems of serious games. His presentation was engaging, as he told his story of growing up with coin-op arcades, being a 3D level designer in the dawn of commodity 3D graphics, and then moving into a leadership position at EA.

After the keynote, there was a short closing ceremony, including the awarding of prizes from the games showcase on Thursday. Once again, I don't want to point fingers—at least not yet—but some of the judges' choices for winners and runners-up really astounded me. Some of them had such bad interfaces as to be nearly unplayable, and not because of the complexity of the game, but simply because of a failure of human-centric design. Others struck me as pretentious concept pieces more appropriate for Ludum Dare or Global Game Jam. (I should know; I made The Escape.) Yet others struck me as clearly leading to goals completely contrary to the designer's intention, although with a lot of glam and glitz, earned thumbs-up from the judges. On the positive side, at least TiltFactor was recognized for their good work. 

To be clear, I'll be the first person to point out the flaws in my students' designs as well. That's my job, after all. I wonder what the job is of the judges, or what it is they value: concept? execution? packaging? To me, the only important thing for serious games is this: is it fit for the purpose? That is, does it work, does the play experience lead to the desired outcome? To this end, one has to consider what the player does, since this is what drives the learning. That certainly syncs up with everything I know about the science of teaching and learning, anyway. To this end, one who judges a game without playing is not judging the game at all but a marketing pitch.

I had a good time at MeaningfulPlay, although it did not match my expectations. Most disappointingly, and beyond disciplinary differences, some of the research presented simply did not match the criteria for scholarship presented in Glassick et al.—one of my favorite books on higher education. It was good for me to learn about the values of the community, especially with respect to the self-identified "game studies" scholars. The best part of the conference was that I met some really amazing people from all over the country, kindred spirits in industry and academia whose work I will certainly watch. I had a good laugh with a fellow associate professor about the post-tenure self-discovery process, and it's good to find role models in this space of academic makers. But reflections on which path I want to make for the next phase of my career is a topic for another day.

Friday, October 19, 2012

MeaningfulPlay 2012, Day 2

Hot on the heels of finishing my Day 1 notes, here's day 2.

The morning keynote by Phaedra Boinodiris was excellent. She talked about the history, design, and development of the IBM's Innov8 series of games, and then went into more recent work with the military. These case studies provided her a platform to express her vision of serious games and meaningful play.

As I understand it, her vision is that in the near future, we will see more multiplayer networked serious games that are built upon real live data. She pointed out that the scientific models underlying the games are carefully designed but not intended to be perfect: rather, part of the game is recognizing when it is unrealistic, peeling back the interface layer, understanding the problems with the model, and thereby identifying new scientific questions. This is a powerful model, and I note that it relies upon computational thinking on the part of the player/analyst. That is, to get the most of the game, one needs to understand how these systems are assembled and made to work together. This seems like a great opportunity for clever interface design, to empower the maximal number of players to interact most effectively with the game system.

Phaedra presented a five-step approach to serious game design that I found interesting. (Sorry no photographs—lighting was terrible.) She referred to these as a "Five step approach to saving a LOT of time and money. Here's her list and my notes.

  1. ROI. She mentioned more than once that, to sell the idea of serious games to any potential partner, one needs to focus on return-on-investment.
  2. Learning/Pain Points. That is, identify the problem to be solved through serious games. The ordering of these first two is opposite of how I usually frame the discussion: I like to talk about the problem I'm solving, and then (sometimes) about how it might save some money. Maybe I'll try turning this around next time I pitch a project to an industrial connection.
  3. Puzzles/Experience to Teach and Motivate. If I understood her correctly, this is how she described the core design process: matching the game design to the problem to be solved. Like one of yesterday's presentations, she referred to avoiding "chocolate-covered broccoli," but I find myself feeling bad for broccoli. I guess I tend to root for the underdogs.
  4. Genre. 
  5. Platform. 'nuff said on these two.
After a break was the session in which I was speaking. 
The Green Room, about two minutes before the start of my presentation
The paper I presented is coauthored with Brian McNely, and it is titled, "A case study of a five-step design thinking process in educational museum game design." This is the second paper in a series based on my VBC seminar, the first having been published and presented at SIGDOC. This paper traced one thread of design from initial inspirations through to the finished Museum Assistant game. I was happy with the presentation and I think it was well received. I won't say anything else about it here, since the point of the post is to talk about the rest of my experience, but feel free to email if you'd like to know more about the work.

One of the talks after mine was given by Konstantin Mitgutsch, whom I had seen present at FDG. At MeaningfulPlay, he presented an analysis of several interviews he conducted with serious games designers about serious games. I found this work very interesting, and three specific points stand out in my memory. First, more than one of his interviewees identified Dungeons & Dragons as an inspirational serious game from their own youths. Second, there was significant variance in how these designers defined "serious game," despite their acclaim in this arena. Third, a vast majority of those he interviewed claimed to have no interest in formal assessment. I asked Konstantin later if he thought that this disregard for assessment was related to a conflation of "assessment" with "attempts at quantitative measurement," and he thought that was certainly part of it, as the designers generally expressed desires that their games "work" on the player.

I caught lunch with a group including some of the other speakers from my session. Three other gentlemen and I had an interesting conversation, much of it rooted in the challenges of games and politics, especially with respect to uncomfortable historical topics. We started a conversation about the problems of semantics in words like "fun," but I feel like that dropped off because people didn't want to touch it, which I think is a lost opportunity: I would like to see more rigorous treatment of syntax and semantics from the game studies perspective. Discrediting the word "fun" because it's used in widely different ways is not useful without a plan for representing the concepts associated with it, and I refer specifically here to Koster's use of "fun" to mean that particular kind of enjoyment that comes from learning—clearly distinct and distinguishable from silliness or glee. 

In the afternoon, I went to a session on mechanics, where the highlight for me was a paper on hybrid games that respect the human nature of play. Gifford Cheung described how digital implementations of games generally don't allow for much of what happens in a human play experience, such as modifying rules, allowing do-overs, etc. His particular project involved augmenting a smart phone with NFC and then using chip-enhanced playing cards. It looked a bit clunky, but I love the idea and was glad to hear about their philosophical approach. He used automatic bowling scoring systems as an example of a good design, in that you can go in and change a frame right away if something is inaccurate— you don't have to accept the error or wait until the end of the game. This was interesting to me, as I find these devices an abomination when the solution to this problem already exists: paper and math. Call me old fashioned, but to me, a big part of bowling is drawing on the scoreboard and filling in X's and slashes.

In the same session was an interesting paper about energy consumption challenges. I had not heard of this before, but they are games where buildings on college campuses compete to reduce their energy usage. The authors identified several problems with naive approaches to scoring such competitions. Not much else to say here except that it was interesting and well-presented, and you can find out more at the KukuiCup site.

Next afternoon session, the best bit was Lucas Blair's paper investigating the impact of achievements, and specifically how they integrate with gameplay, on what players get out of the play experience. I respect a scholar who is happy to tell the audience that his hypotheses were wrong, because this can be as interesting as if they are right.

I was hoping to talk to Lucas about his taxonomy of games, as I was surprised to hear him start by referring to achievements as metagame despite their clear integration with the game design process and particularly their utility as a feedback mechanism when, on a bit of a whim, I struck up a conversation with Scott Nicholson of Syracuse University. We ended up having a wide-ranging conversation, including a detailed discussion of what he's doing at Syracuse to get people involved in game design an development without creating a new academic program, and involving the wider community. I'll definitely be following up with him.

We talked with Scott for so long that this took us to dinner time, so my colleagues and I went to get some dinner. After a bit of searching, I was able to find the place where I met some MSU colleagues a year or two ago for beer rhetoric—Beggar's Banquet, where I had an excellent burger and a smooth Left Hand Milk Stout.

I would be remiss if I did not say that I started the day with coffee and Wi-Fi at COSI, a delicious soup and sandwich for lunch at COSI, and after dinner, tea and Wi-Fi at COSI. The staff have been very friendly, and the music is perfectly unoffensive and unobtrusive to both conversation and blogging. Thanks, COSI!

MeaningfulPlay 2012 Day 1

I am writing from the MeaningfulPlay 2012 conference, a biannual conference held at Michigan State University. I have two travelling companions: Nick, an undergraduate who was on my VBC team, and Michael, graduate student and president of the BSU Society for Game Design and Development.

The opening keynote was by Donald Brinkman of Microsoft Research. It was an interesting presentation, although there was not much new there for me. It was an excellent presentation of ideas that I think are important for anyone in serious games to know, with a focus on his participation in OpenBadges. I have been on the fence regarding badges, originally dismissing them as extrinsic motivators, but since then I've realized that it's a tool that can be used for good or evil.

Donald Brinkman discussing the continuum of gamification from Bogostian to McGonigalian.
The best point Brinkman made was that badges give us data for longitudinal study. If a kid has an awesome learning experience, he should feel intrinsic satisfaction in the process; giving a badge simultaneously allows us to track how this particular person uses (or doesn't use) this learning in the future. Since our current system only tracks numbers, which we know don't actually represent learning, this gives a powerful new vector for information processing at Internet scale.

He also included an excellent distinction between education and training, a presentation of the contrast that I had not previously seen. It comes from James Carse's Finite and Infinite Games.

To be prepared against surprise is to be trained.
To be prepared for surprise is to be educated.
Education discovers an increasing richness in the past, because it sees what is unfinished there.
Training regards the past as finished and the future as to be finished.
Education leads to a continuing self-discovery; training leads toward a final self-definition.
Training repeats a completed past in the future. Education continues an unfinished past into the future.
Along these lines, he raised the evocative question of "nomic badges" for the infinite learning game. His own guidelines for infinite games are that (a) participation has to be optional, (b) failure is certain, and (c) progress is angular. I certainly feel like Brinkman is a kindred spirit, but I did not have the opportunity to find him later in the day. I got the impression he was only going to be around for the first day of the conference, but I'll keep my eyes open. I would like to talk to him particularly about the plan for dealing with the overwhelming bureaucracy of public education.

Good quotation: "... High stakes assessment. Get the hell away from it."

Turns out that Brinkman has also been fighting the good fight against tchotchkes and has been pushing Microsoft toward more ecologically-responsible solutions. He gave away a dozen epiphytes to those who asked questions, complete with Microsoft-branded misters. In fact, Nick got one, shown below.

After the keynote, I went to a panel organized by the people who write the PlayThePast blog. It was good to see these people in person, as I am a regular reader and even a contributor. I was most excited to see Ethan Watrall, who I have met before, and Roger Travis, who I had never met. Turns out Ethan was double-booked and couldn't make the panel, and Roger was being beamed in via Skype. Still, I got to chat with Roger a bit after the presentation by talking loudly and awkwardly into a computer screen, but it was still better than nothing. He had some interesting ideas on how to tie classics and humanities into a nascent paper I'm writing on games and software development... stay tuned.

The panel itself had interesting content, but it was too much "panel talks to you" and not enough "panel talks with you." There were only five minutes for questions at the end, at which point it may as well have been an ad hoc paper session. Still, I like the content, especially James' deconstruction of both published and fan-modded versions of historical board games. I need to think more about what this means from a designer's and academic's perspective.

After the panel and a not-quick-but-cheap lunch at a local Thai restaurant, I went to a paper session, which was OK. As with FDG, I was disappointed by the number of bullet points on slides. Maybe even worse, several presenters had complex data tables that they clicked through in under three seconds. It displays a disregard for the attendee, a failure to consider the needs of the observer. I hope that in my presentation, despite by 35 slides in 15 minutes (to be given day 2), people will be inspired to get more details from the paper. I was also disappointed in a particular presentation in which the presenter showed non-statistically-significant results, pointed out they were not significant, mentioned that they should not be presented because of the lack of significance, then referred to them again later, and brought them up in the conclusions, again pointing out that they weren't significant. Sounds like fishing to me.

The papers are given in 15 minute blocks, four of them in an hour session. This is a crazy pace. Questions are held until the end, at which point there's no time left. Malcolm Ryan was on a roll when he ran out of time, but I'm glad he took the extra minute to click through to his conclusions slide:

Well put.
The day's closing keynote was from Ann DeMarle, who talked about her project, BreakAway, a game ostensibly about preventing violence against women by changing the attitudes of youth. The game had an impossible set of constraints, among which were that it could not depict violence, it could not depict women as victims, and it had to be playable by anybody. For the narrative, they picked the universal language of soccer, which is really quite clever. DeMarle had a compelling story to tell, but we did not really get to see the core gameplay, and so I'm left wondering how the mechanics are tied to the learning objectives.

After a dinner break, there was a reception with a game showcase and research poster session. This is the session where my students presented Morgan's Raid and Museum Assistant. We got positive feedback from both, and once again, I felt great pride in my students and their work.

Nick is sporting a Root Beer Float Studio shirt, alternative design.
Michael is an pro at contextualizing the game in the history.
Also, there was an open bar. Note to myself: all conferences should have open bars.
A beer I drank, and a unicorn head I did not wear.
Also also, there was garlic & rosemary olive oil and dipping bread. Note to myself: not mandatory for all conferences, but highly recommended.

I spoke to a lot of interesting people, but the highlight was definitely talking to Geoff Kaufman from TiltFactor lab at Dartmouth. He had several games on his tables, the first of which I saw was Buffalo, a game that looks superficially like Apples to Apples and prompted me to ask if he was familiar with Bill Rapaport's famous sentence. (He was not.)

Geoff mentioned that the game is designed to reduce stereotypes. Now, there are a lot of people here making claims that are way beyond what's reasonable—especially at the showcase. I asked if they had studies that showed that the game worked, and to my pleasant surprise, they sure did. Turns out Geoff is a postdoc and actually runs these studies. We had a great conversation about how his lab operates, and he was eager to answer questions about all the games he brought. Long story short, I was blown away with how absolutely right these guys are doing it. By contrast, many of the other projects I saw clearly had spent more time on design justification than on design; maybe I'll write about them another time, but not now. Anyway kudos to TiltFactor.

Monday, October 1, 2012

The Story of Equations Squared

It was the middle of May when I first wrote about the ETS Math Assessment Game Challenge and my search for fun games that use traditional mathematical notation. At the time, I was contemplating which of several projects to undertake for my Summer of Professional Development. I had decided the previous Fall semester that I would not take on any extra obligations for Summer 2012, using it instead as a "summer sabbatical," knocking a few items off of my personal and professional punch lists.

As I considered where to invest my Summer efforts, I found my mind returning to the design of a math assessment game. I have been working with students and colleagues at Ball State for the last few years on educational games—that is, games that produce predictable learning outcomes—but I had not considered the challenges of making games for assessment.

There were two ways in which the contest sponsors made this more appealing to consider. First, there were two published learning progressions, based on sound educational research, so I knew I wouldn't have to try to invent a taxonomy of learning. Given the progressions, I framed the design problem as one of mapping the learning progression levels back to measurable in-game behaviors. The second factor was the appealing prizes: cash prize for first place, and top three get a trip to talk about games and education research with ETS staff. Cash is a powerful motivator when one has turned down work offers in order to focus on personal growth for the summer months, and professional networking is always in season.

I decided to pursue an entry to the challenge, figuring it would take about two weeks to generate a testable digital prototype. Spoiler alert: I had forgotten to take into account Hofstadter's Law.

First Attempt
I had been playing a lot of Flash Duel, and this inspired my first attempt. I worked out a game that embraced the board-as-number-line property of Flash Duel and Engarde, giving the player a hand of cards representing both numbers and numeric operations (represented by the Jack above). I wanted to take advantage of two-player competitive gameplay, perhaps even using combat as a metaphor, and this would also have allowed me to hit another item on my punchlist: make an online multiplayer game. However, I had a hard time making this prototype fun. I decided to put my Lego away for now and switch tactics.

Second Attempt
My wife had found out about the game Equate, which appears to marry Scrabble and algebra. I still have not played it, but I liked the idea of reinforcing well-formed mathematical "sentences" in the same way that Scrabble requires (and assesses) knowledge of well-formed English words. I became particularly interested in scoring systems that reflect increasingly mature understandings of algebraic relationships, particularly with respect to variables. I spent enough time with this prototype to try a digital version. This prototype had a nice feature, that it could be created as a single-player game in case there were problems with multiplayer.

I had recently become aware of the PlayN library for making cross-platform games. I love the technological wizardry of GWT, which allows you to write your application in one language and deploy to many, hiding the seamy side of cross-browser Web development; PlayN is essentially that, for games. Working with PlayN required me to learn Maven, which had also been on my imaginary punch list, through very far down. After having invested significant time into understanding how Maven works, it's hard to imagine doing another serious project without it, despite the headaches. Learning a new API and project automation platform took time and energy away from core game design and development tasks, but I have no regrets along these lines.

As I tinkered with technology, I also considered how to align learning outcomes with in-game actions. Achievements seemed a natural way to do this, and I developed several different achievement taxonomies over the subsequent weeks and months. The learning progressions necessarily combine evidence of learning and evidence of ignorance, and to capture this, I used a system of demerits and badges in my game. The complete details for these are provided on the "For Educators" section of the game's Web site.

Implementing the game was an opportunity to practice what I preach. I started with my domain model, developing it via TDD. Very quickly, I hit my first major impediment: in order to implement the achievements I had sketched, I would need to write my own expression parser. I started with an ad hoc approach that worked for simple, non-variable cases, and over time, I revised this to use the Shunting-yard algorithm to build an in-memory parse tree. This parse tree is traversed by various visitors to determine progress towards demerits and badges.

Debugging the parse tree
Without unit tests to save me from regression defects, I would certainly have not completed the project. Summer 2012 was supposed to be Summer Sabbatical Happy Learning Time, but it turned out to be Summer of Unexpected Interruptions. The good news is that we discovered that our master bathroom floor was rotting away before anyone fell through it. The bad news is that we had contractors in and around the house for about seven weeks to fix it, along with other planned maintenance and improvement projects. Combined with a death in the family and associated travel, it was not the focused and productive three months I hoped it would be. We got to spend some quality time with loved ones, which is really was more important than implementing a multiplayer mode for a summer project. In any case, keeping written a task list and a suite of passing unit tests allowed me to leave the project for over a week, then drop back into productive development very quickly. This worked much better than when, in the ignorance of youth, I tried to keep project plans entirely in my head—projects which never saw the light of day.

Unit tests cannot save one from bad user-interface design decisions. My first fully-playable prototype used a "drag and drop" motif for placing tiles on the board. As I manually tested each build, I was able to get the feature working properly, and I was quite pleased with myself. Then, I tried playing through a game or two. It is really tedious to drag and drop tiles with the mouse. It wasn't quite as bad on the Android tablet, but it was still awkward, especially because mine is pretty clunky and unresponsive. I decided to revise the user interface to use a click-select, click-place model. The result was a much improved user experience. Unfortunately, the drag-and-drop assumption had been buried very deeply into my software architecture, and I had to rewrite nearly all of the user-interface system.

Screenshot of the final version

The working title for the game was Algebra Game. Catchy, I know. Brainstorming with my wife helped me to realize I really wanted to highlight the fact that the game is about equations. Since the game takes places on squares, I ended up with the slightly punny Equations Squared. I hope no math zealots are upset that one cannot actually create quadratic equations in the game.

I had decided from early in the project that even though PlayN supported many different platforms, I would focus on the HTML target. Everybody has a browser, so I hoped this would give the biggest impact; I'm still interested in how the game can be adjusted for Android and iOS, but right now, it's HTML-only. PlayN builds upon the GWT compiler technology, and it has similar dependencies on browser implementation of CSS. Web developers: you can see where this is going. Alignment of symbols and handling of canvas were predictable on chromium-based browsers and Firefox, but IE had problems. For the alignment of text on tiles, I ended up replacing the dynamically-created tiles with an image sheet, which is all but guaranteed to work on all modern browsers. After my project was submitted to the challenge, I got a very helpful fix for other IE problems, but I decided to leave the code alone during judging; I ended up putting up a little warning message regarding IE not being fully supported, which hopefully does not drive too many people away.

Example boards
Late in the Summer, I started work on the Website for the game. I knew I wanted to host it on my departmental Web server because it was easy to integrate secure file transfer into an automated build process; this could have been done with other hosts, but I already had SSH set up for these machines. After a bit of fumbling around, I came across JQueryUI, which was a joy to use. There are a few niggling details that I wanted to fix on the site, but I'm happy with the result. The best part of it is under the hood. I wrote an internal domain-specific language in Javascript to abstract the construction of sample boards. For example, that first board is created with the following call:

new Board(5).horizontal(0,2,'1+1=2').caption('Horizontal')

This allowed me to abstract the construction of sample boards from the code that creates the table of CSS-colored content. With a little more TLC, I could have factored out the first two arguments that specify the starting coordinate of the equation, yielding a Clean DSL, but despite this, I'm pretty happy with the approach. "If it can be automated, it should be automated!" In case you're curious, this is similar to, but exactly the same as, the Java-based DSL I use in the production code to create and test game board configuration.

Here's a little quantitative breakdown. By the end of the project, I had 710 changesets in my Mercurial repository. According to SLOCCount, I ended up with 7,086 lines of platform-independent production code and 2,559 lines of unit tests, plus about 200 more to handle platform-specific idiosyncracies.  (A brief aside: I've never used SLOCCount before, but it installed easily from the Ubuntu repositories. It claims the COCOMO total estimated cost to develop this software was $293,470. I guess I work cheap.)

A few days before the submission deadline, I put together an introductory video, as required for the competition. I spent hours searching for and tinkering with video editing software, but nothing seemed to work the way I wanted. I ended up doing this with RecordMyDesktop and a hand-held mic. This was about the thirtieth take.

The project took much longer than planned, but I did end up with a complete submission. I am happy with both the results and the process. I hope that the results are useful to others as well, and if you do end up using Equations Squared in a learning environment, please do let me know. I tell my students regularly that shipping is hard. It's easy to have a few ideas and write some throwaway code; it's a different matter altogether to actually build something of value. There are several ways in which I've considered extending the project, including multiplayer modes and mobile-native versions. Whether any of these are undertaken really depends on demand.

A big and public Thank you! to my alpha and beta testers. They provided invaluable feedback on platform issues, usability, and defect detection. Finally, thank you to my wife and kids for indulging my desire to spend the summer creating.

Author's Note: At the time of publication, there are less than 2.5 hours until the winner of the ETS Math Assessment Game Challenge is announced. In the spirit of unbiased personal reflection, I wanted to get this post up before the winners are announced. There are a few more details I was hoping to write about, such as the use of Google Web Fonts to do some nifty dynamic font loading, but I will delay that for another day.

Update: Good news, everyone! Equations Squared won the grand prize! The contest entry page now has a pretty gold ribbon proclaiming the news.