The Beauty of Code

Programming itself provides opportunities for self-expression.

In the midst of chaos and strife, when I need to take a break from the “real world”, I most often find my escape in source code, programming anything really. Of course, having more projects than I could hope to finish, and clients providing additional work to boot, means that I always have a ready avenue for directing my focus. However, it is not solely about the product, nor the money; it is also about the pleasure and enjoyment of coding itself.

There are a number of fairly passive experiences that I (and I imagine most of us) use to pass the time: playing games, reading books, watching television or movies. There are also more productive activities such as exercise (I quite enjoy hiking, bicycling, and swimming), house cleaning and organization, home improvement, and “gardening” (of a sort). None of these activities, however, provides the same creative outlet as programming.

When it comes to creative expression, appropriately, there are lots of different ways that people find to fulfill that need, which is important to our being. I know lots of people who like to sketch or doodle, or to write (for which I have gained some appreciation over the years), and others participate in higher commitment activities such as making stuffed animals, woodworking, or designing jewelry. When I was younger, I turned to more “design” oriented expression, such as creating original mazes, designing pinball machines, and architecting dream houses; at one time I designed a complete go-kart business, including the tracks and buildings.

The beauty of code is that it allows for self-expression within a systematic framework. I have always enjoyed numbers, logic, and the rational, and these all factor into programming. Within the rules, though, there are essentially infinite ways to express an idea, both in terms of method and of presentation. Of course, there are demonstrably “wrong” ways to do things, such as code that does not compile, fails to work, or crashes, but there are many levels of “right” ways to accomplish things, including how to efficiently increase functionality, how to handle errors and unexpected situations, and (importantly) how to make the source code understandable.

When I was required to attend an “advanced” BASIC course in high school, having already programmed for years (but with no formal education to show it took vociferous insistence just to avoid the “beginner” class), one of the first problems we were presented was to take a three-digit number as input and reverse the digits. I was the very first person to complete the task, twice. My second version was the anticipated method of accepting numerical input, with constraints placed on the operator (not the program) to limit the input to 3 digits, separating the number into ones, tens, and hundreds places, and printing them in reverse order, just to prove that I knew how to do it that way. My first version accepted the input as a string and printed the characters in reverse order, which worked on the specified input type, but also on numbers of arbitrary size, or any characters that could be input.

Around that time, I also set myself a challenge to create an “unbreakable” game, which I was able to accomplish with a high degree of confidence. To be unbreakable, the program had to be bulletproof, once executed, such that nobody could deliberately nor accidentally get to the prompt (and, hence, have access to the source code). This meant that the program needed to have no syntax errors (BASIC was interpreted code, rather than compiled, so such errors would only be found when executed), no logic or constraint errors that would allow a crash (such as selecting an unexpected/illogical action or overloading an input buffer), and also disallow breaking (via ^C), which was accomplished via system-specific methods. The only ways to end the program were turning off the power or hitting the reset button.

Programming has a lot in common with the scientific method. Although you use known logic to devise provably correct solutions, rather than testing hypotheses, you still test to confirm your approach and resolve errors, whether they be in your understanding of the problem, your design of a potential solution, or your execution of the plan. In fact, I constantly use this approach when building a program to regularly test my assumptions. I will make an interim change and state (to myself) the expected failure outcome, whether that be a compiler error (or specific number of compilation errors) or some weird behavior, just to confirm my understanding. If some code compiles unexpectedly, or the behavior is not as anticipated, I revisit the problem and make sure than I can explain why things went differently.

This shows yet another beautiful aspect of programming: its digital nature makes it precise and enables, at least ostensibly, the pursuit of perfection. You can experiment with something new with confidence that, if it does not work out, you can return to exactly the original situation. It does not matter how far out in the weeds I get with an idea; I can always get back to where I started. (Try that with oil painting.😉) Also, as my first computer book helpfully pointed out at the start of my career, nothing that you do with source code, short of typing it with a hammer, can break your computer (and while that is not strictly true, exceptions are exceptionally rare and not worth concern).

The fact that I value the actual source code as well as the outcome, which tends to be better for such appreciation, explains why I am not a fan of “visual programming”. With traditional source code, everything is enumerated and readily viewable, having been written by you or another programmer. While visual programming is ostensibly the same, it hides aspects of the code and logic behind objects, making development more like hide-and-seek. My first experiences were in the very early ’90s with Asymetrix ToolBook and Borland ObjectVision, where one would have to check every page and object to find all of the scripts to have a complete understanding of the logic, which unnecessarily fragmented the code. Today, such tools as Unity, Unreal Engine, and Interface Builder certainly make visual layout easier, but with the inherent risk that the complexity hides some of the logic, removing it from the source code and fragmenting it. It can be quicker to develop visually (especially if one is inclined toward fast results over quality), but it is inarguably harder to debug.

Outstanding programming is more craft than art, by which I mean that it can be learned and refined over the course of years, and one does not necessarily require an inherent creative ability. I can explain the rationale behind decisions in my source code, and I can teach you techniques, and if you have the requisite logical intelligence (which many people do not), then you can become at least a very good programmer. (I doubt one can read a book about fine art and learn what it takes to be a master.) One of the best compliments I can get is when I am told that I taught somebody the value of maintainable source code, or defensive programming, or quality assurance techniques.

With that in mind, I intend to document more of my approaches to development in general, to provide insights that interested parties can take or leave, along the lines of my Quality [index] series from many years ago. One current focus is refining my programming standards, so look for that in the near future.

Why I Do It

The origins of my passion for computer programming and games

I have always loved games, as far back as I can remember. Even as a small child, I enjoyed all kinds of games, and I remember making up games and contests of my own. However, most analog games have at least a couple of drawbacks surrounding one concept: competition.

First, one had to find other people to play the game. I spent a lot of time alone in my childhood, so the opportunities to compete against others was limited. Even when players were available, the choices were limited by the number of people. Some games do not work with too few players, and if you have too many, somebody can get left out.

Second, when there are enough people to play a game, there are a lot of issues with inequity. Sometimes the skill difference at a game (or in general) is just too great for enjoyment, and the degree to which one enjoys any particular game is usually imbalanced. My sister was often around for games for two players, but she was three and a half years younger, so there were few interesting games where we were matched well.

At the time, I had not developed enough life skills to solve these problems through negotiation and sheer enjoyment of playing the game. I took games far too seriously, and probably was something of a poor sport. Nowadays, we have (well, had) Game Nights, which we have been doing for a couple of decades, and I am now far more concerned that everybody is having a good time than whether or not I win (or even play), in marked contrast to my youth.

One solution is provided by one-player games, and I have had a love for Solitaire since I first learned Klondike around the age of five (as fully documented when I wrote “I come by my love of Solitaire honestly“). Likewise, I have loved Pinball for about as long, as my uncle owned Campus Pinball in Ann Arbor (and that experience factors heavily in my life story), but Pinball was not readily available to me on a regular basis in my early childhood due to both location and funding.

Instead, I made up games and similar activities that I could play on my own. I created solitaire games (like the one player version of Go Fish! mentioned in the linked Solitaire post), held competitive events with my toys, like marble races or a challenge to see which Matchbox/Hot Wheels/cheap knockoff car would go the farthest (for which I invented different match systems, including the double-elimination bracket system), or made up strict sets of rules (i.e., algorithms) for automatic players in multiplayer games, like Monopoly, and then played against them. I had no reference to know that this was a rudimentary form of programming, but it is obvious looking back.

More to the point, I used to fantasize about having a “robot” (because in those days, there were no personal computers, simple calculators cost hundreds of dollars, and the only real computer I had ever seen was an enormous mainframe at MSU with multiple huge tape drives 😉) who would serve as my opponent(s) in these games, effectively making them one-player games.

About that time, Pong was released, and as fun as that was, it was still a two-player game (although on many occasions I played both sides, where the inequality of the experience between my dominant hand and the other was striking), so it was actually Breakout, released 4 years later, that became the first video game I really loved. (It was decades later before I learned that Steve Wozniak programmed that game just before founding Apple with Steve Jobs, who was also on that project.) Of course, from that point on, the video games came faster and faster. (Plus, Pinball Pete’s opened nearby, and I made slightly more than nothing with a paper route, giving me better access.)

I was also introduced to Dungeons and Dragons, which is ostensibly a social role playing game, but for the first several years of my fascination, I never actually played it as designed, but rather read through the books of rules and played scenarios (alone) as Dungeon Master, as well as controlling the players, and/or a group of monsters, given algorithmic motivations, which (unbeknownst to me) was building toward computer adventure/role-playing games.

All of this led up to My First Programming Experience. I was hooked; for years I had dreamed to be able to do exactly what I have been able to do since then. Also, the technology rapidly exceeded what I could ever imagine (as detailed in Still Coding After All These Years). Occasionally, I have to take a deep breath and reflect on this fact.

This job is truly, and literally, a dream come true.

SARS-CoV-2 / COVID-19 Update

No Problems…  So Far

Fortunately, there have been no business changes due to the current worldwide pandemic, not because SophSoft, Incorporated and Digital Gamecraft are essential producers, but primarily because the company has always been set up to work in this fashion.  I only work from home, and when there were more of us, everybody worked from home (or, at least, remotely).  Our active projects for outside clients always have been delivered digitally, so nothing changes there either.

In truth, in the midst of all sorts of upheaval, my personal situation is actually quite stable, for several reasons:

  1. As noted above, I work from a home office, so (in theory) development work and company business do not change at all.  The only two analog functions that were regularly performed out of the office were banking and picking up the mail.
  2. My world was turned upside down and my life completely torn apart a little over a year ago.  Compared to suddenly losing my wife, this current situation is a mere aggravation, but very minor when put into perspective.
  3. Due to the above, I had already been adjusting to life (and work) alone here, so the solitude and loneliness were already something I was managing.  Of course, I do have two cats (plus a new stray on the porch), so that helps.
  4. Perhaps to the surprise of some, I am very much an introvert and, for the most part, prefer to be at home.  My default stance is to not leave or go anywhere, so I no longer need to make an effort to be social (for a while).
  5. I am quite healthy, and still relatively young, so I am not in a high risk group for hospitalization from COVID-19; nevertheless, I am taking as many precautions as practical.  Also, I got my “affairs in order” a while back, so I am not scared of being unprepared should I suddenly get sick or even die.

At this time, I have no known exposure and no symptoms; in fact, my body temperature has been running low ever since I started daily checks a couple of weeks ago.  I went to the grocery store today for the first time in more than a week (and only the third time since the pandemic was declared) and should be stocked for two more weeks.  Aside from that, I get fresh air and go walking outside, completely alone (and irregularly, it must be said) and otherwise have not gone anywhere (nor had take-out or delivered food) at all in the two weeks since Governor Gretchen Whitmer signed her “Stay Home, Stay Safe” executive order for the State of Michigan.

What annoys me right now (beyond those ignoring the recommendations and endangering us all, which registers fury with me) is the number of people who seem to be complaining about getting to stay home.  Because I was already close to self-quarantine before we had even heard of this coronavirus, I did not gain any significant quantity of extra time, and I never have enough time to do the things (at home) that I want to accomplish.  Now, some people have gained lots of excess time and talk about being bored.  Bored?  What is that?  Seriously…  I do not think that I have been bored at home in 30 years!

That said, productivity during this crisis has not been what I would have liked, although it has been getting better, with progress being made on all fronts.  I think that I may be dwelling too much on pandemic concerns, and that could be taking away some of my focus, all of which prompted me to write down my thoughts here.

It is my full and honest intention to make this the last COVID-19 related post for a while, and instead get back to product development and posting about other topics, all while maintaining the maximum practical physical separation from other people.

Digital Gamecraft 2020

It has been just more than a year since SophSoft, Incorporated lost its second founding partner (of three) and I lost my wife of 31 years.  In a week, the company will be celebrating its 38th anniversary, and it will continue to develop game software.

During 2019, I took time to reflect on what was really important and what I wanted to do with the rest of my life, and I decided that the plans that Sherry, Rick, and I had devised (and undertaken) as business partners were honest and true representations of what we wanted to achieve.  Therefore, I will continue those pursuits, not just out of a sense of loyalty, but because they are why we got into this venture in the first place.

Digital Gamecraft will continue to develop and publish game titles in a variety of genres, and this will be our primary focus.  While some of these games may be a little different to what they would have been with my partners to help guide the development, the games will nevertheless embody the spirits of Sherry and Rick to the best of my capabilities.

SophSoft will also continue to do consulting work; however, due to sheer limitations of time, our regular client roster is effectively full.  Please feel free to contact us if you are in desperate straits or need our help with a fully-funded project that is right down our alley, but realize that we may not be able to fit you into the schedule.  (If you have just an idea, a shoestring budget, or a need for fleet management software, go somewhere else.)

We also have a couple of adjunct projects that I expect to see the full light of day within 2020; announcements will be made here as and when appropriate.

In an industry where companies come and go with a disturbing regularity, remember that we have had the same address for 30 years:

Post Office Box 4936
East Lansing, MI  48826-4936

We have had the same business phone number for 25 years:

(517) 337-3905

Our web site has also been in steady operation since 1995 (though this blog is just a baby at a mere 15 years old).  Plus, having been originally founded in 1982…

We are the oldest independent video game company in the world.

I truly appreciate your support as we continue to move forward.

Sincerely,
Gregg Seelhoff

RIP: Sherry Seelhoff (1964-2019)

Sherry Seelhoff

At the start of the year, my wife died unexpectedly at the age of 54.  We had been married for more than 31 years and have two wonderful sons.  Sherry was a founding member of SophSoft, Incorporated, and her passing has had a profound impact on me personally and will have a lasting effect on the company, including this blog.

Sherry was a dedicated and loving wife and mother, who gave herself fully to her family and friends. Her kindness and generosity touched everyone she met, leading to recognition for her service with volunteer organizations. She was loving and loved, and her memory will be carried by all she knew.

Sherry passed away quietly and unexpectedly in her sleep as the new year began. She is survived by her husband of 31 years, Gregg Seelhoff, sons James Seelhoff (Meredith Baumann) and William Seelhoff-Ely (Sandy Seelhoff-Ely), sister Melissa Short, mother-in-law Margot Hellerman (Lance Hellerman), sister-in-law Lori Seelhoff, niece Heather Joswik, half-sisters-in-law Angelina Hellerman and Andrea Hellerman (Jim Arnold), half-brother-in-law Samuel Hellerman, two half-nieces, one half-nephew, and innumerable friends. She was preceded in death by her mother, Mary Theresa Short, her father Wyman Richard Short, and her father-in-law, Gerald Norman Seelhoff.

Sherry lived her life with empathy and passion, and had an infectious spirit. She enjoyed hiking, camping, canoeing, dancing, reading, hosting game nights, playing trivia, watching movies, and listening to music. She loved laughing with friends and family. She would want to be remembered by those she loved continuing to participate in her favorite activities and striving for the ideals and compassionate causes in which she believed.

In lieu of flowers, the family requests donations in Sherry’s name to Sierra Club, ACLU of Michigan, and/or Planned Parenthood.

“… our life is as meaningful, as full and as wonderful as we choose to make it. And we can make it very wonderful indeed.” ― Richard Dawkins

“Don’t think of it as dying. Just think of it as leaving early to avoid the rush.” ― Terry Pratchett

“Don’t cry because it’s over, smile because it happened.” ― Dr. Seuss


Still Coding After All These Years

Today is my 40th anniversary of programming a computer.

December 22, 1978: This day marked the first time I walked into a computer store, the first time I played a game on a home computer (or even touched one), and the very first time I wrote a computer program.

Exidy Sourcerer

Of course, that very first program was pretty BASIC. 😉  I learned the concept of programming, line numbers, how to RUN and LIST a program, and (at least) my first two commands, PRINT and GOTO, on that same day.

The very next day, I learned (more) about variables, FOR loops, and number theory (mathematics, not programming), as I helped an MSU student debug his program, and then further experiment with it.  We noticed that abundant numbers are often bounded on each side by primes, but this is not universal.

I urge you to read more about My First Programming Experience.

Computers were awesome!

A few years later, as I was on an airline flight, I took out my pen and paper and started writing a wishlist for the “perfect computer” for me, dreaming about what could be possible in the future.  I envisioned lots of colors, crazy amounts of memory (like 64K!), and larger custom character sets, which idea gave way to (really out there) thoughts of individually addressable pixels at very high resolution (say, 640×400).  At a conference, I saw a display with a “true color” screen image of an apple (fruit) at 1024×1024 and that blew my mind.

In the intervening years, I have had loads of milestones and accomplishments:

  • January 13, 1982: founded Sophisticated Software Systems
  • Summer 1982: had first professional programming job
  • Late summer 1982: purchased very first computer, a Commodore VIC-20
  • 1984: won the ComCon ’84 International Programming Competition
  • 1984: started first full-time programming job with Michigan State University
  • 1988: landed game programming job with Quest Software
  • 1989: published first retail game product, Legacy of the Ancients
  • April 22, 1990: self-published shareware game, Pacmania 1.10
  • February 1, 1993: started as Senior Software Engineer at Spectrum Holobyte
  • 1994: went full-time as an independent game developer
  • 1995: incorporated business as SophSoft, Incorporated
  • 1996: launched Digital Gamecraft for developing independent games
  • 2002: Goodsol Development released Pretty Good MahJongg
  • 2004: served as Chairman for the Association of Software Professionals
  • 2007: created first Mac game, Pretty Good Solitaire Mac Edition
  • March 27, 2013: A Little Solitaire became the #1 card game for iPad
  • 2013: published first Digital Gamecraft title for iOS, Demolish! Pairs
  • 2016: established and ran Advanced Concepts Group at DAQRI
  • 2018: published an Android version of Demolish! Pairs

These are just a few of the major highlights, but none of these events made as much of a difference in my life as that day I walked into New Dimensions in Computing.  Of course, there are a few personal milestones that really affected things as well, but most of these also happened within this time frame (more than 76% of my lifetime).

Today, I am back doing what I love: programming.  Even when things are tough, I truly enjoy the development process and can get ‘in the zone’.  When people would ask me what my favorite game was, I would often reply something like, “C++”. 🙂

Amazingly, I now have a stable of portable devices, each of which far exceeds my ultimate imagination for my perfect computer, and many of them blow away the visual capabilities of that screen that mesmerized me back in the early 1980s (and I never even considered the possibility of 3D rendering capabilities).  My phone fits in my pocket yet is more powerful than my first PC, and my watch is more powerful than that first computer.

Computers are awesome!


Meaningful Play 2018: Day 3

Saturday was the final day of the best conference on meaningful gameplay.

This shorter day ends the Meaningful Play 2018 conference.  As always, I leave with inspiration and a greater sense of purpose, not to mention hope.

Saturday morning keynote

The day began with a very informative and practical talk, The Promise of Games for Personlized Learning, in which Diana Hughes of Age of Learning discussed and demonstrated practices they used in ABCmouse Mastering Math to teach and assess mathematics skills in children ages 4-8.

One fundamental takeaway from the keynote was the importance of providing proper understanding (mastery) of basic mathematical principles (of which I had not realized there were so many) before attempting to teach a skill that relies on those principles.  The software uses various (positive) “scaffolding” for supporting a learner who does not demonstrate knowledge of a topic, as measured by incorrect answers in a game.

Initial results of scientific testing show great promise, based on significant improvements with just limited classroom time spent using the game, as well as anecdotal evidence from teachers that the software is effective.  I believe that numerical understanding is as important as the ability to read for educational success, so these are hopeful results.

Breakout sessions

There were only two breakout sessions on this final day.  For the first one, I attended Game Post-Mortem Microtalks II.

The first (of 3) games featured was a VR simulation of a Brazilian chicken farm.  Pericles Gomes presented the software running on Google Cardboard, along with some detailed information about the huge quantity of meat produced and exported from Brazil, and more detailed information about the number of chickens produced from the particular farm that was captured with 360 degree cameras to make the simulation.  Even running in just Cardboard, the VR version had proven more effective than the tablet version.

The second postmortem was from Phillip Cameron about the use of games with students learning the German language.  He presented the results of a limited survey of potential students and how likely they would be to continue with advanced German studies, and then again with similar classes using games and software.  The total numbers showed a slight improvement, but upon correlating answers between the two questions, it was shown that some “likely” to continue initially actually became “unlikely” in the class with games, while other moved from “unlikely” or “unsure” to “likely”.

The third and final postmortem was by Mars Ashton, who is very active in the Michigan game development community, on his award-winning game project, Axis Descending.  He discussed the personal origin of the project about a decade ago, its creation in Flash, the marketing and reception (including awards) of the project during development, and the ultimate decision to cancel the project.  Mars was very upfront about how his focus on the game had become “unhealthy” and how that affected him and those around him.

For the second breakout session, I chose to do the Tour of MSU Libraries Rovi Game Collection.  We walked to the MSU Library and, first, visited the Video Game Lab which houses the Rovi Game Collection, a collection of approximately 18,000 PC and console games dating back to the early 1990s (including at least 7 games I worked on 😉 ).

We then walked downstairs to visit the Digital Scholarship Lab, which is an impressive collection of technology available to students, faculty, researchers, and the public at large.  It includes a 360-degree visualization room, with seamless video projected on the walls of the round room, a VR room with Oculus Rift and HTC Vive set up and ready for use, a room with scanners, including a small 3D scanner, and numerous very powerful desktop computers with just about all the creation and development software one could want.

On the way out, we also passed the MakeCentral Makerspace, which has 3D printing, structure scanning, laser cutting, and vinyl cutting available, as well as a technology lending program with a number of digital toys…  I mean, toolsVery cool.

Saturday afternoon keynote

The closing keynote was Imagineers at Play, by Bei Yang of Walt Disney Imagineering.  He discussed several aspects of “imagineering”, including the many disciplines involved, how they test and revise experiences, and the benefits of using BIM (Building Information Modeling) for design of spaces.  He then showed a number of projects, ranging from experimentation to final implementation, to illustrate the ideas.  This included the revelation that an upcoming Disney experience will allow guests to pilot the Millennium Falcon!

The key takeaways were that the design loop (ideate, prototype, test) is essentially the scientific method (hypothesis, experiment, conclusion) in practice, and the following observations on technology:

  1. Everything is design
  2. Technology is making design loops faster
  3. Technology is changing what we can do in those designs

Coincidentally, I ended up asking the last public question of the conference, which was (from memory): For new experiences, does the storytelling drive the technology, or does the technology drive the storytelling?  The short answer was, “Both.”  The longer answer was that sometimes there is a story to tell and they seek out the best technology to do that, which sometime results in ideas being shelved, and other times advances in technology make it possible to tell a story that had been ruled out in the past.

Conclusion

I leave this awesome conference full of new ideas, as well as with a couple new goals to be completed before Meaningful Play 2020.

 

Meaningful Play 2018: Day 2

The second (and last) full day of this conference is a go.

This is the last full day of the Meaningful Play 2018 conference on serious games, games with a meaningful purpose.  The conference has been quite inspiring so far.

Friday morning keynote

The day got off to a great start with Six Observations on Failure that May or May Not Relate to Games by John Sharp from the Parsons School of Design at The New School.  In this talk, he discussed the benefits of failure, repeatedly invoking the phrase “fail better”, which is part of a quote he (reportedly) has tattooed on himself, while also acknowledging that not everybody has the ability to fail in all circumstances.

The presentation surveyed a number of different ways to see failure as a springboard for better results in the future, including advice from books going back to the mid-1800s, but noted how current American society (especially sports) paint failure as a bad thing.

The key takeaway was the simple process presented for better failure:

  1. Detect
  2. Acknowledge (the hardest part)
  3. Analyze
  4. Attribute responsibility (n.b., not blame)

He encouraged everybody who is in a position to afford it to fail often and fail better.

My personal observations, complementing not contradicting his, are that failure leads to better retention of correct results (i.e., learning) and that the fear of failure results in not trying things, for one, but also in striving for perfection, which in turn results in analysis paralysis and perfectionism.  A quote from a friend that hangs on my office wall reads, “Done is better than perfect.”  (I write this to remind myself again. 🙂 )

Breakout sessions

Instead of a midday keynote, Friday has three breakout sessions of six options each.  For the first one, I instead attended the Tower Room (or, more accurately, the hallway outside) to work on these blog updates (and also charge the tablet) before lunch.

For the second breakout session, I attended The Original Mobile Games: Recreating Historic Dexterity Puzzle Games for Digital Mobile Platforms, a talk by Stephen Jacobs from The Strong National Museum of Play as well as RIT, both of which organizations collaborated on the development of the digital game at the heart of this presentation.

Although this may just be my particular proclivity, but this talk was the one that I found to be the most exciting of the conference (to this point).  This is probably because of my strong interest in the history of traditional games and the fact that my primary development focus is casual games; I even have a game with related mechanics in the project queue.  The turnout was a little disappointing, but seeing both Noah Falstein and John Sharp (and, of course, Stephen Jacobs) there provides support for my choice. 😉

The discussion was about the history of “dexterity puzzle games” (i.e., the original mobile games) such as Pigs in Clover (as seen in the image), in which the aim is to use physics to maneuver objects, usually balls, into indentations or positions as prescribed by the rules.  These have been popular for 129 years, and the Strong Museum has around one hundred examples of the game type.  This product attempts to replicate the physics behavior of some of these games, as well as preserving the history, appearance, and even sounds of these early amusements, making it all accessible on mobile devices.

I am excited just to see this project, even if I do not end up playing it much.  You can get it now for Android on Google Play or for iOS on the App Store, and you can check The Original Mobile Games website for to check for other platforms in the future.

For the third breakout session, I attended Game Post-Mortem Microtalks I.

The first (of two) games featured was Plunder Panic, a game created by Brian Winn, William Jeffery, and 12 (paid) student developers from MSU.  This is an award-winning game with simultaneous play for up to 12 players, and one of the first university games to seek a retail audience, which provides extra challenges beyond merely development.  The primarily development challenge was productivity from college students during the school year, but the game presses forward, scheduled to be released commercially in 2019.

The second featured game was Thunderbird Strike, a game from Elizabeth LaPensée, who did the design and hand-drawn artwork.  The postmortem did not discuss much about the development, per se, except that the animations had to be reduced because of the time required to do animations by hand, one frame at a time.  The bulk of the discussion was about how this small indie art game, made by indigenous people, for the purpose of reflecting some indigenous culture and values (for a small audience), became the focus of a political firestorm, which thrust the game into the public eye to a much wider audience, but also brought about unfair and inaccurate criticism of the game and personal attacks directed towards its designer, whose life was altered by the controversy.

Friday afternoon keynote

The afternoon keynote was Playful Social Engineering by Katherine Isbister of University of California, Santa Cruz.  The talk began with discussion about the way technology tends to separate us “cyborgs”, such as when people are so engaged in their phones that they eschew normal social interaction.  The presenter then discussed issues of and opportunities for using technology to encourage, rather than interfere with, social interconnection, then showed a couple of case studies with LARPs (Live-Action Role Playing games).  More research and work needs to be done in this area.

Game exhibitions

Thursday night had the Conference Reception, Game Exhibition, and Poster Session, which included (among other things) demonstrations of serious games.  Friday night featured the Pure Michigan Game Exhibition and Celebration, which showcased many games made in Michigan.

[I will discuss these events in a separate post later.]

Meaningful Play 2018: Day 1

The first full day of the conference is a rollicking start.

Meaningful Play 2018 is properly and officially underway with the opening remarks (following Meaningful Play 2018: Day 0) by conference chair Brian Winn, who has organized the biennial event since the first in 2008.  The theme this year is wizards (after ninjas, monsters, and robots) and the slogan is, “Exploring the Magic of Games.

The purpose of the conference is to bring together game developers and academics to discuss the research and practice of designing serious games, which are (to give a simpler definition than yesterday) games with meaning.  This thread of exploring not only the magic but the purposeful impact of games runs through the proceedings.

Thursday morning keynote

The morning keynote was Three Miles An Hour: Designing Games for the Speed of Thought, by Tracy Fullerton, game designer and Director of the Games Program at USC.  The “three miles an hour” from the title refers to average walking speed, which has been suggested as a pace at which thinking can occur more readily, and Tracy explores this concept in “walking simulator” games such as her own Walden, a Game.  She discusses the idea that games can (should?) have “reflective play”, where scenes with no urgent interactivity can be used to give the player a chance to reflect on the experience.

One takeaway was the proposed reshaping of Sid Meier‘s definition of a game as “a series of interesting choices” into “a series of meaningful situations“.  It is an interesting reframing, but I feel that the two are fully compatible; what makes a decision interesting is anticipation of a meaningful situation to which it leads.  It is analogous to traditional games: some games play on the points on the board, while others play on the polygons they form.

The important thing here, I think, is the word, “meaningful“.

Morning session

The morning breakout session provided six options for talks, papers, panels, and workshops, but since I can only be in one place at a time, I choice to attend Physics is (still) Your Friend: The World of Goo @ 10 by Drew Davidson.  In this talk, he revisited the talk he gave at Meaningful Play 2008, looking at how The World of Goo stands up after 10 years on the market (answer: quite well) and even revealed a few spoilers for those of us who never got very far in the game.

Key takeaways were that the game was, in a way, a metaphor for the indie game development process (full analysis would be too deep for this post), that early figures showed that 90% of players of the game were pirating it but they were successful despite that by focusing on the game, and that they produced the game for many platforms and continue to upgrade them to remain playable through the years.

Midday keynote

Full disclosure: Living near to the conference venue has a few drawbacks such as, perhaps, getting pulled away from the event for family matters, so I missed the first 15 minutes of this keynote, Games Are Not Good for You, by Eric Zimmerman.  This means that I missed the audience playing “Five Fingers” and, apparently, a swipe at Luminosity.

Nevertheless, even sans introduction (and title slide picture), this talk was enlightening about the practice of informed game design.  The most fascinating part of the talk, to me, was a discussion of his game, Waiting Rooms, which was a building-sized installation wherein players would walk around collecting and paying pennies and tickets according the rules of various rooms.  They set up systems without a defined goal and observed what was essentially (although I did not hear him call it this) emergent behavior, but driven by human desires and values rather than programmed operators.  (Here is the first article about the game that came up from a Google search.)

Afternoon session

For the afternoon sessions, I chose (from six options again) to attend a talk, An Innovative Approach to Collaborative Game Design, given by Carrie Cole and Sarah Buchan of Age of Learning.  This was the most informative session yet, with practical information and clear illustration of how the learning process was advanced and how curriculum and game design are balanced to achieve those goals.  It was very worthwhile.

In a weird twist, I discovered that Carrie, who I met here in East Lansing when she was at MSU, ended up moving out to the Los Angeles area just a few months after I did, and without realizing the connection at the time, I found out about Age of Learning when we interviewed and ultimately hired one of their developers for my team at Daqri.

Afternoon keynote

The afternoon keynote was Moments (formerly, Nuance) in the Woods: Exploring Meaning in Games by Alec Holowka, one of the developers of Night in the Woods.  The game uses the tag line, “At the end of everything, hold on to anything.”  This line hints at the meaning that the game could and, as we heard, does have.

This talk turned out to be (perhaps unexpectedly) the highlight of the conference so far. After some introduction to the game, which appears to be very engaging, including the incorporation of reflective play opportunities, with a character-driven story.  There was also discussion about some of the development process, the successful KickStarter campaign, and various mistakes made along the way.

The presentation was interesting to that point, but then the speaker took a turn into his own personal struggles while creating the product, concluding that portion with a realization that not everybody has the same access to health care and support services, and how their game could been meaningful to people (especially young people) facing similar struggles.  Then, he read some quick highlights of testimonials from affected players and showed lots of fan art demonstrating the degree to which the game made the desired connection with players.  It was moving and enlightening.

One key moment was the showing of this animated tribute video [2:06] created over the course of a year by a 16-year-old girl, Sarah Y., who ends the video with the message “thank you for inspiring me and many others”.  It was amazing.

 

Meaningful Play 2018: Day 0

This conference on serious games got underway Wednesday.

Meaningful Play 2018 started here in East Lansing, on the campus of Michigan State University, with a special talk given by game design luminary, Noah Falstein.

The Surprising Synergy of Medicine, Games, and VR was actually a crossover talk, serving as the last presentation of the single day AR/VR Symposium at MSU and launching Meaningful Play 2018, a leading conference on serious games, which are games that explicitly provide an additional benefit beyond entertainment, such as education, training, advocacy, or (as in this case) health care.

In this talk, Noah spoke about the potential for VR (virtual reality) to make a strong emotional connection, and the challenges presented using VR for medical games, specifically the issues (good and bad) with advancing technology.  He transitioned to health care by discussing a pain control study where a child was distracted from a painful medical procedure (changing burn dressings) through a VR game, reducing anxiety and the need for sedatives.

His three top arguments for considering games for medical purposes:

  1. Helping people
  2. Challenging, exciting, and diverse development
  3. Big market (especially with FDA clearance)

In support of the latter argument (as the first two are fairly self-explanatory), he mentioned that the pharmaceutical industry, just in the United States, has an annual turnover of 300 to 400 billion dollars.  If therapeutic games could capture just 5% of that market, it would be close to the total value of the (entertainment) video game market.  Food for thought.

Finally, Noah presented some quick case studies of companies/products that were having success in this field, including Akili Interactive, MindMaze/MindMotion, and Muse.  It looks like a very interesting field, with funding available for successful ventures (albeit likely outside the reach of my micro-ISV).

Warm Up

This is my first proper conference in 4 years (since the 2014 edition of this same conference) and it is really convenient that it is held right here in my hometown.  It is quite nice not having to worry about the expense and logistics of lodging.  It has always been good to be able to actually walk to the venue in the past, too, but this time it started raining right as I left home, so I was damp when I arrived for the talk.  Worse, the rain picked up on the way back, so I was totally drenched by the time I got back.

Being that I have been slightly out of the loop for a while, it was really comforting to have the elevator doors open to reveal just two people already in there, the aforementioned  Noah Falstein, who I knew back in the day (but have not seen in person in 15-20 years), and Patrick Shaw of Stardock, who I know better and have seen much more recently.

This was a great way to ease into the conference.