David J McClelland

Experiences at the Intersection of Programming & Design

Archive for the ‘Practice’ Category

I recently started working on an enterprise Java/Flex UI development project. (Yes these are still happening.)

I came into the middle of the project, and I am completely submerged in an unfamiliar custom framework intertwined with services and other magical things like java2as. I am using new/unfamiliar tools for coding, versioning, compiling, serving, publishing and terminology – a complete rip-and-replace.

The design intent is to provide abstraction so that ui development can proceed hewing to a common goal with the data side. Abstraction without a contract results in complicit drift on both sides. it is a sometimes terrifying way to start a new job in an unfamiliar landscape.


  • Because I am developing to a spec I know is incomplete and untestable, and will be changing it in the near future while I am supposed to be working on something else. And that something else will probably be in the same condition.
  • Because everyone else is in the same boat already and is too busy scrambling to provide the kind of support warranted to get someone from outside the organization up to speed.
  • Because figuring out if something isn’t working is because of something I did, didn’t do, is because the dev server is down, is just not implemented on the data side, is a server issue, a security issue, or some unknown issue is very difficult and time-consuming.

More posts on the positives coming soon, I promise : )

  • Filed under: Practice
  • eLearning Without Flash


    For highly interactive content I recommend Unity3D. It outputs highly efficient, accelerated native apps for IOS, Windows, Android, and soon will support Flash Player.

    For more basic content equivalent to that created using Captivate, Articulate and other rapid tools, I recommend HTML5 Video as a preferred target for screen captures, and Sencha Animator or Corona for information display and simple interactivity.

    Adobe’s announcement that they are no longer going to build a mobile Flash player brought me back to when I learned they bought Macromedia. I wondered how long it would take them to ruin the culture that nurtured Flash into something more than an cartoony animation tool.

    Why was I so pessimistic? Because I knew Adobe wouldn’t treat Flash like their life depends on it (it doesn’t). Flash will probably go the way of Director – another authoring tool they acquired from Macromedia that became the “3D console game” development platform.

    Why is dropping Flash Mobile Player such a big deal when no-one really developed for that target (or at least ever monetized it)?

    • Flash is no longer publish-once distribute everywhere
    • AIR doesn’t generate efficient runtime bytecode
    • In Adobe’s vision of the future, mobile users will download and install an AIR app for every Flex and Flash RIA?
    • Flash Player 11 Mobile was supposed to be all about hardware video acceleration and be a game-change according to Adobe
    • I no longer trust Adobe, and resent the ding to my credibility as a (soon to be former) Flash eLearning/content developer.
    • I know a lot of developers feel the same way, further eroding Flash as a platform/ecosystem
    • There are better alternatives if I take a best-of-breed alternative route to developing content.

    The Learning Game Continuum

    What do you picture when you think of Learning Games? I found that when I started asking this question when discussing the topic, the answer varied more than I expected.

    Answers usually fall into one of the four categories in the graphic: fact drills like Jeopardy clones, Mini Games embedded within a course, a simulation, or a 3D immersive environment. Each is vastly different in terms of scale, expense and application. But I have had discussions that proceeded quite a distance before a clue exposed my mistaken assumption that we were all talking about the same idea of game. The game industry has existed long enough that there is a rich, consistent taxonomy of game types. But these are of limited value for distinguishing learning games because they are mostly classified by the style of gameplay. Learning Games might be a recent, inconsistent addition to that taxonomy: Wikipedia lists “Serious Games” and “Education Games” as separate game genres distinguished by the age of target consumers. Most vendors in the serious game space would provide much more specific definition than “providing real-world lessons.”

    I take the ambiguity of classification as a sign that more work is needed to distinguish between learning game types. One attempt (A Taxonomy of Educational Games- O’Brien, Lawless, Schrader, 2010 University of Illinois) assigns educational games into four categories, but they are still classified by gameplay. Sawyer and Smith (2008 seriousgames.org) took on developing a taxonomy covering all game genres in order to create one for Serious Games. However, the subgenre “Training Games” appeared to only contain two types: Single Task and Comprehensive.

    Until a more satisfying and popular naming establishes itself, it falls on those of us interested in discussing learning games to be in precise agreement about exactly what game we mean to discuss.

  • 1 Comment
  • Filed under: Practice
  • How Moo Changed My Opinion On Business Cards

    When I started my most recent full-time job I decided business cards were too old-fashioned to bother with – “we’ll use Linked In and eMail- why carry around these quaint little cards.”

    Then I stumbled across moo.com while looking for a way to print a set of prototype game design cards. What’s so great about Moo? They are set up so that you can print any number of unique cards in a single batch. I can get 50 cards printed that contain 50 unique designs. I am not sure what part of the card is the front or the back anymore : )

    Card Back Preview 

    Card BackPreview

    Card Front Preview

    Card Front Preview

    Actual Card Fronts

    I uploaded my 50 card designs and set up my contact information on the back. The first time through the process was not entirely painless due to system confusion about whether I was ordering a trial run of 10 free cards or a paid run of 50. To their credit they do have a staff of support people on site, although I had to sort out the solution to my particular problem myself.

    Now here’s where it gets interesting: instead of handing someone my business card in the perfunctory trading ritual, I can spread out my game design cards and have a conversation about them and do a mock design session right then and there. Let them pick one of the cards to keep. Leave them wanting more.

    Not bad for $20! Here is a referral link: http://www.moo.com/share/5qykgz

  • Filed under: Practice
  • Technical Training as Game

    The Monster Debugger Game

    The Monster Debugger Game

    I wish I had looked at this game before I had made the assertion that it contradicts: “learning games aren’t for technical training”. Learning is embarrassing sometimes.

    There are caveats behind my assertion that still stand, but lets ignore those and look at what makes the example I found work so well. For one thing the game supports the company identity. It also forwards their marketing agenda – it showcases their custom development capabilities and gets passed around as training for their debugging tool, which is their virtual calling card. Very smart people.


    Scare the block!

    De Monsters knows coders don’t want to waste their time when they are on a mission. They know their competition isn’t another game or debugger – it is the present challenge the coder is working on defeating in their own very important project. In more detail: Persuade me to drop my “coder agenda” of “assimilate, use and move on” and pick up my “gamer agenda” of “enter as hopeful newbie, invest time cycling through levels to get to the good part, have fun and learn something deeper about this debugger in the process.” What does De Monster get in exchange from me? Loyalty.

    Level Beat

    Level Beat

    What persuaded me? I saw that De Monsters loves their product so much that they poured a lot of that love and attention into their game through the aesthetics – this led me to trust them. I have to trust before I will let my self be a vulnerable newbie – I will not be insulted or made a fool of, even sitting alone in my Eagle’s Nest of Fort Awesome.

    Monster Debugger Help About Panel

    About Panel

    All well and good – does the game do a credible job teaching how to use De Monster’s Monster Debugger? In my opinion it does this exceptionally well. Progression through simple MathBlaster-like side scroll cave levels requires the use of the debugger and exposes the best features of the product along the way. There are surprises and the learner supplies part of the content, in terms of variable values that change level outcomes.

    Level Tip

    Level Tip

    Level Instructions

    Level Instructions

    Fun Trace

    Fun Trace

    Fun Method

    Fun Method


    The game is also a very effective functional demo. After completing a couple of levels I can already see how I can use Monster Debugger in ways I hadn’t previously considered, such as creating a reusable developer control panel outside of a game to play test in real-time. It is more than a debugger. The story neatly mimics the experience of the apprentice coder being led on a journey through obstacles without going too far. We all know what a blocker is, so why not have a block block your path?

    Was it worth it?
    In compensation for the investment of my time I received training, a new tool, some process change ideas and a really fun experience. This is how it’s done folks.

    Google Dream Catcher

    Working as a professional creative person, I have to take inspiration seriously. I want to capture ideas, dreams and other random things before they float away.

    Here is a super-lightweight tool that I set up to help me do that no matter where I am or what time it is, thanks to Google:

    Get Google Docs

    Create a new Form

    When you enter something in this form it will be added to a table that is searchable and indexable, and will appear as a link after you submit your entry. You can enter ideas from browser, phone, iPad, etc. If you get inspired visually you can use a theme- I am not sure how well it works with mobile devices. I am in favor of keeping it lightweight and simple.

    Although this is a personal tool, Google has built in sharing options so that you could use this for a group. At some point a wiki is probably better for a group than a form/table.

  • Filed under: Practice, Tools
  • eLearning Mechanics #5: Behavioral Momentum

    Some training requires a lot of repetitive practice cycles. Providing a layer of amusement that is connected to these cycles can be both an incentive and visual evidence of commitment/accomplishment. It can also mask the varying degree of practice required by different learners if many keep cycling simply to get rewards.

    eLearning Mechanics #3: Avoidance

    Extinguish unwanted behaviors and practices with negative reinforcement. The most powerful negative tool at your disposal is the threat of something bad happening. Negative events are anti-climactic because the impending threat is extinguished. Save the negative outcomes and consequences until after an evaluation, such as a certification exam.

    eLearning Mechanics #50: Score Inflation

    If only grade inflation were this simple/guiltless! But one example illustrating the importance of small details, and the revelations brought by testing game applications.

    A Proposal for a Quality Metric for Learning Games

    Measuring eLearning development cost by hours of training developed is a hopeless idea because it rewards mediocre training: the longer it takes to finish the more I get paid and the more it costs to deliver. We should measure how fast performance improves by how much.

    If we started doing that learning games would compare favorably to other learning modalities in terms of cost and would fit in more applications. The amount of investment in development could be balanced against a truer total program cost if seat time was reduced for enough learners.

    Here’s an illustration to support this idea, based on a course I took and helped convert from classroom into eLearning delivery:

    Training Scenario: Increase the speed/accuracy of a team to sort and distribute mail at a rate that yields a 2x combined improvement.

    Classroom Time (minutes) eLearning Time Game Time
    Lecture 40 View recorded lecture with diagrams 30 No Lecture- game instructions + limited discovery 5
    Hands-on walkthrough of process with debrief 60 Walkthrough animation 20 Unlimited play with leveling up as speed increases 40
    Observation of attempt 20 Interactive Walkthrough 20 Win game 1
    Practice session/reset required, rotation of team members 120 Unlimited Evaluated Practice 30 Play game and win more
    Evaluation 20 Test Out of Practice 20
    Repeat 2x or more necessary 20
    Total 280 120 46-60
    Quality Index .007 .016 .043 – .03

    In this scenario, the classroom sessions are limited in capacity because resetting the exercise requires manually un-sorting the items between iterations. Since no-one finishes at the same time they must wait for an instructor or assistant to come do that. The scenario is designed to create bottlenecks and friction that force team dynamics.

    The eLearning tutorial takes about the same amount of time to complete for everyone who takes it until they get to the practice. There is no team element, no interpersonal debrief or brainstorming.

    The game version does not include any traditional training, but rather rewards desired behavior through a scoring/rating system that is discovered by the learner or online team. Faster learners finish faster – they can return to work or keep leveling up to reach higher efficiency rates. Slower learners get coached by faster ones.

    The quality index is the average time spent getting to the terminal objective divided by the improvement amount: time spent/improvement.

    This index can be used to normalize the true cost of training as the number of learners is scaled. The classroom training I took had a high fixed cost because it required a trainer and two assistants for 10 learners and took almost an entire day at an approximate total cost of 10K. The eLearning would cost about 100K to produce today but was not as effective as the classroom due to lack of team mode. It broke even after about 116 people took it. The game would have broken even with the same number of learners with twice the budget.

    It is likely that an eLearning company could create and market a mailroom game that generalizes the concepts and spread the cost over many more learners if there was a way to convey how delivery of the training via a game is more effective and efficient than other, more traditional means. This could reduce the cost much further and create a very compelling value proposition.

  • Filed under: Practice
  • Categories

    Finger Lakes, NY

    United States of America

    Subscribe via Email

    Enter your email address to subscribe to this blog and receive notifications of new posts by email.