Posts tagged with gamification - Gameful

Critique of the Gamification Movement

Aug 9, 2011 at 4:56 pm in Uncategorized by Reinhart

Ian Bogost has an interesting article on the sophistry and misuse of gamification in the business world.  This may not be relevant to those of you engaged in daily life-hack games, but I feel it’s an accurate account of the problems with corporations and marketing implementing their own gamification.

What I feel he doesn’t quite make explicit is that he has two different points about gamification and his definition of “bullshit.”

  1. Bullshit == sophistry == basic gamification.  This is basically accurate, but let’s strip the negative connotation of bullshit in this particular aspect.  In most uses of gamification, from the micro to the macro scale, gamification is creating a normally unnatural link between behavior in reward.  There’s nothing morally wrong with that though, it’s a basic part of human adaptation.  If we couldn’t assign meaning and rules to otherwise meaningless tasks, we wouldn’t have built languages and societies.
  2. Marketing gamification is exploitive or banal bullshit.  I don’t want to jump on his bandwagon, but I do tend to shudder and recoil at the results of larger scale gamification projects.  They either come across as trivial hype or exploitive hamster-wheels trying to obscure how pointless and menial their activities really are.  Even the design of the Gameful website seems rather trite at times.  Basically, if you attempt to restructure a business based on game incentives then you’re risking a lot of time, money, and human talent.  It’s far safer and cheaper to just slap on a thin veneer of gamification on an already flawed and exploitive business.

Does this mean you’re wasting your time?  Not necessarily.  It’s just that there rarely are easy answers to real world problems.  Keep your mental tools sharp and ready.

The war of words

May 18, 2011 at 2:39 pm in post by Kat White

Now that I have magical blogging powers I thought I’d transfer this comment from my status as I’m really interested in how others feel about this issue:

Does anyone else feel like the whole ’gamification’ debate is starting to seem like a row between religious factions? It’s all people who are trying to use game mechanics to change traditional approaches, yet so many blog posts and articles I see are just b*tching at each other about not doing it the right way. Why can’t people with similar aims support each other instead? 

I became interested in the idea of using game mechanics to better people’s real lives when I picked up Jane’s book not that long ago. I thought it was a brilliant idea and set about trying to increase my knowledge of what had been going on in this area, and on my way came across the term ‘gamification’. It seemed like a nice easy term for the process, and it was attached to a lot of very interesting projects in a variety of industries, so I thought ‘Hey, other people are using the term, I’ll use it too’.

However, as I’ve researched further, I’ve discovered the huge well of animosity towards this term and those who use it. In one article on Gamasutra, Ian Bogost even dives into playground name-calling, calling Gabe Zicherman the ‘Dark Lord’ of gamification. (http://www.gamasutra.com/view/feature/6366/persuasive_games_exploitationware.php?page=1,Thanks to Thomas for blogging about this article). 

Not to sound like I am taking either side, I am sure there is mud-slinging going on from the other side as well. But I can’t help thinking that all this bickering will achieve is to stagnate the development of both sides of the debate, as they both put their efforts into staunchly defending their own values and methods and refuse to consider the merits of their opponents ideas…

Exploitationware instead of Gamification?

May 3, 2011 at 10:44 pm in post by Thomas Jones

The author of this article suggests using the term: Exploitationware instead of Gamification.

http://www.gamasutra.com/view/feature/6366/persuasive_games_exploitationware.php?page=1

 I don’t completely agree with him, but I think he is on to something genuine and important.

I will save you the long read and show the quote that got my attention:

“…For gamification detractors, the best move is to distance games from the concept [of games] entirely, by showing its connection to the more insidious activities that really comprise it.

In particular, gamification proposes to replace real incentives with fictional ones.
Real incentives come at a cost but provide value for both parties based on a relationship of trust. By contrast, pretend incentives reduce or eliminate costs, but in so doing they strip away both value and trust.”
— Persuasive Games: Exploitationware by Ian Bogost

It is worth remembering that when we take community, human engagement and social status into our toolkit, we are working with power-tools that are capable of great damage as well as great good.

What do you think?

Random Thoughts, programming in Python 3.x, and where the heck to go from here

Apr 12, 2011 at 10:47 am in post by Liam Boyle

I mentioned before in my blog that I do not yet have any formal collegiate training in any programming language.  This semester at the community college I took my first programming class which is simply a course in programming logic that works mainly in pseudocode.  Apparently flowcharts are so out of date that I’m a relic for using them, as if I wasn’t enough of a relic for remembering my father trying to program his dang Times Sinclair computer when I was a child. 

However, since pseudocode by it’s very nature cannot be made to pass the “does it work” test I’ve tried to self-teach two languages to myself during the course of this class:  first, JustBASIC and now Python 3.x.  I was doing some research on computer languages early in the term to see what it might be useful for me to take in future semesters, and found out Python was made language of the year by the TIOBE index, twice (2007 & 2010).  Also, as I have mentioned in another post the Panda 3D game engine works with a combination of Python and C++

Well, to get a grasp of programming in Python I went to MIT opencourseware and downloaded the .pdf of the text book they are using, “How to Think Like a Computer Scientist.”  (Ah, open course ware – knowledge free for the sake of knowledge.)  I also translated my homework assignments that had been completed in JustBASIC into Python.  I was using Python 3.13 and then I downloaded “Portable Python” which is supposed to be able to run off a memory stick or USB flash drive and came with the PyScripter IDE, so that is what I am currently using.  (Can somebody come out with a newer version for Python 3.2 please?)

Anyway, doing this gave me the following programs:

in JustBASIC -
REM Program To Display Student Data
REM LIAM BOYLE
REM 15 FEB 2011

REM Variable Declarations
REM IDNumber    num
REM FirstName$  string
REM LastName$   string
REM Major$      string
REM GPA         num

print “Enter ID, FirstName, LastName, Major and GPA…”
Input IDNumber
Input FirstName$
Input LastName$
Input Major$
Input GPA
If GPA <= 2.0 then
    print IDNumber
    Print FirstName$
    Print LastName$
    Print Major$
    Print GPA
else
    REM don’t print
end if


In Python 3.x –
#Program To Display Student Data
#Assignment 4 part a #in Python 3.x#
#Liam Boyle
#03 Apr 2011

#Variable Declarations
#IDNumber   integer
#FirstName  string
#LastName   string
#Major$     string
#GPA        float

prompt = “Enter ID number”
IDNumber = input(prompt)
prompt = “Enter first name”
FirstName = input(prompt)
prompt = “Enter last name”
LastName = input(prompt)
prompt = “Enter major course of study”
Major = input(prompt)
prompt = “Enter Grade Point Average”
GPA = input(prompt)
GPA = float(GPA)

if GPA <= 2.0:
    print (IDNumber)
    print (FirstName)
    print (LastName)
    print (Major)
    print (GPA)

In JustBASIC –
REM Program To Display Student Data
REM LIAM BOYLE
REM 15 FEB 2011

REM Variable Declarations
REM IDNumber    num
REM FirstName$  string
REM LastName$   string
REM Major$      string
REM GPA         num
REM ContinueAns$   string

Let ContinueAns$ = “Y”

While ContinueAns$ = “Y”
    Print “Enter ID, FirstName, LastName, Major and GPA…”
    Input IDNumber
    Input FirstName$
    Input LastName$
    Input Major$
    Input GPA

    If GPA < 2.0 then
        print IDNumber
        Print FirstName$
        Print LastName$
        Print Major$
        Print GPA
    End If

    Print “Do you want to Continue Y/N”
    Input ContinueAns$
Wend

In Python 3.x –
#Program To Display Student Data
#Assignment 4 part b #in Python 3.x#
#Liam Boyle
#03 Apr 2011

#Variable Declarations
#IDNumber   integer
#FirstName  string
#LastName   string
#Major$     string
#GPA        float

ContinueAns = “y”

while ContinueAns == “y”:
    prompt = “Enter ID number\n”
    IDNumber = input(prompt)
    prompt = “Enter first name\n”
    FirstName = input(prompt)
    prompt = “Enter last name\n”
    LastName = input(prompt)
    prompt = “Enter major course of study\n”
    Major = input(prompt)
    prompt = “Enter Grade Point Average\n”
    GPA = input(prompt)
    GPA = float(GPA)
    #————-
    if GPA <= 2.0:
        print (IDNumber)
        print (FirstName)
        print (LastName)
        print (Major)
        print (GPA)
    prompt = “Do you want to continue y/n \n”
    ContinueAns = input(prompt)


In JustBASIC –
REM Program To Display Student Data
REM LIAM BOYLE
REM 15 FEB 2011

REM Variable Declarations
REM IDNumber    num
REM FirstName$  string
REM LastName$   string
REM Major$      string
REM GPA         num

Print “Enter ID, FirstName, LastName, Major and GPA…”
Input IDNumber

While IDNumber > 0
    Input FirstName$
    Input LastName$
    Input Major$
    Input GPA

    If GPA < 2.000 then
        Print “Under 2.0″
        Print IDNumber
        Print FirstName$
        Print LastName$
        Print Major$
        Print GPA
    Else
        If GPA >= 3.5 and Major$ = “English” then
            Print “Literary Honors Society”
            Print IDNumber
            Print FirstName$
            Print LastName$
            Print Major$
            Print GPA
        End If
    End If

    Print “Enter ID, FirstName, LastName, Major and GPA…”
    Input IDNumber
Wend

In Python 3.x -
#Program To Display Student Data
#Assignment 4 part b #in Python 3.x
#Liam Boyle
#03 Apr 2011

#Variable Declarations
#IDNumber   integer
#FirstName  string
#LastName   string
#Major$     string
#GPA        float

ContinueAns = “y”

while ContinueAns == “y”:
    prompt = “Enter ID number\n”
    IDNumber = input(prompt)
    prompt = “Enter first name\n”
    FirstName = input(prompt)
    prompt = “Enter last name\n”
    LastName = input(prompt)
    prompt = “Enter major course of study\n”
    Major = input(prompt)
    prompt = “Enter Grade Point Average\n”
    GPA = input(prompt)
    GPA = float(GPA)
    #————-
    if GPA <= 2.0:
        print (IDNumber)
        print (FirstName)
        print (LastName)
        print (Major)
        print (GPA)
    else:
        if GPA >= 3.5 and Major == “English”:
            print (“Literary Honors Society”)
            print (IDNumber)
            print (FirstName)
            print (LastName)
            print (Major)
            print (GPA)
    prompt = “Do you want to continue y/n \n”
    ContinueAns = input(prompt)

In JustBASIC -
REM Program for outputting even numbers from 2 to 30
REM Liam Boyle
REM CIS 120

REM Declaration
REM VariableNumber Integer

For VariableNumber = 2 to 30 step 2
    Print VariableNumber
Next VariableNumber
End

In Python 3.x -
for varNum in range(2,32,2):
    print(varNum)


In JustBASIC -
‘ Assignment 8, Bubble Sort
‘ Liam Boyle
‘ CIS 120
‘ 4/3/11

‘ Mainline
    gosub [Housekeeping]
    gosub [SortRoutine]
    gosub [MeanCalculation]
    gosub [MedianCalculation]
    gosub [Cleanup]
end
‘——————————-

[Housekeeping]
    Print “How many values do you need to enter?”
    Input ListElements
    Dim sortvalues(ListElements)
    Let LastElement = ListElements – 1
    cls
    For x = 0 to LastElement
        print “Enter a value to sort”
        input value
        sortvalues(x) = value
    next

print “UnSorted List”
for x = 0 to LastElement
    print sortvalues(x)
next
return
‘——————————-

[SortRoutine]
    Let x = 0
    Let ValuesSwitched$ = “y”
    While ValuesSwitched$ = “y”
        Let ValuesSwitched$ = “n”
        For x = 1 to LastElement
            if sortvalues(x) < sortvalues(x-1) then
                gosub [SwitchValues]
            end if
        Next
    Wend
return
‘——————————-

[MeanCalculation]
MeanValue = 0
For count = 0 to x
    MeanValue = MeanValue + sortvalues(count)
Next count
MeanValue = MeanValue/(count+1)
return
‘——————————-

[MedianCalculation]
    Let MedianCount = Int(LastElement/2)
    If LastElement/2 = MedianCount Then
        Let MedianValue = sortvalues(LastElement/2)
    Else
        Let MedianCount = Int(LastElement/2)
        Let MedianValue = (sortvalues(MedianCount) + sortvalues(MedianCount+1))/2
    End If
Return
‘——————————-

[SwitchValues]
    let temp = sortvalues(x-1)
    let sortvalues(x-1) = sortvalues(x)
    let sortvalues(x) = temp
    let ValuesSwitched$ = “y”
Return
‘——————————-

[Cleanup]
    print “Sorted List”
    for x = 0 to LastElement
        print sortvalues(x)
    next
    print “Mean Value is:”, MeanValue
    print “Median Value is:”, MedianValue
return

In Python 3.x -
#CIS 120 Assignment 8 in Python
#Liam Boyle
# 03 Apr 2011

#populate list
prompt = “How many values do you need to enter?”
ListElements = input(prompt)
ListElements = int(ListElements)
value = []

for x in range(0,ListElements):
    prompt = “Enter a value to sort\n”
    value.append(input(prompt))
    value[x] = int(value[x])

print (“Unsorted List”)
for x in range(0,len(value)):
    print (value[x])

#List sorting
x = 0
ValuesSwitched = “y”
while ValuesSwitched == “y”:
    ValuesSwitched = “n”
    for x in range(1,len(value)):
        if value[x] < value[x-1]:
            value[x-1], value[x] = value[x], value[x-1]
            ValuesSwitched = “y”

#Mean Calculation
MeanValue = 0
for count in range(0, len(value)):
    MeanValue = MeanValue + value[count]
MeanValue = MeanValue/(count)

#Median Calculation
if len(value)%2 != 0:
    MedianValue = value[len(value)//2]
else:
    MedianCount = (len(value)//2)
    MedianValue = (value[MedianCount] + value[MedianCount+1])/2

#printing sorted list
print(“Sorted List”)
for x in range(0,len(value)):
    print(value[x])
print (“Mean value is: “, MeanValue)
print (“Median value is: “, MedianValue)

The next assignment was directly written in Python 3.x without my having written a JustBASIC version.

#CIS 120 Assignment 9 part a & b combined in Python 3.x
#Liam Boyle
#4/10/2011

#Global Variable Initializations
Num1 = 0.0
Num2 = 0.0
prodnum = 0.0
#————-

def summation(x, y):
    sumnums = x + y
    print(“the sum of “, x, “and “, y, “is: “, sumnums)
    return
#————-

def difference(x, y):
    if x > y:
        diffnums = x – y
        print(“the difference of “, x, “and “, y, “is: “, diffnums)
    else:
        diffnums = y – x
        print(“the difference of “, y, “and “, x, “is: “, diffnums)
    return
#————-

def productof(x, y):
    #global prodnum #making the answer a global variable
    prodnum = x*y
    return prodnum
#————-

#Main
#Start
prompt = “Please Enter Your first number: ”
Num1 = input(prompt)
Num1 = float(Num1)
prompt = “Please Enter Your second number: ”
Num2 = input(prompt)
Num2 = float(Num2)
summation(Num1, Num2)
difference(Num1, Num2)
#productof(Num1, Num2)
print(“The product of “, Num1, “and “, Num2, “is: “, productof(Num1, Num2))
#End

This in turn led to my standard first non-assignment project for any programming language, of which the JustBASIC version was published in an earlier blog:

#Universal Theosophic Reduction Calculator
#Liam Boyle
#04/09/11
#————-

##def DoublingIteration():  #This was part of the original JustBASIC program
##    global NumValue     #designating global list
##    prompt = “enter the total number of doubling iterations\n”
##    iterationNum = input(prompt)
##    iterationNum = int(iterationNum)
##    for Iteration in range(1,iterationNum,1):
##        NumValue.append(NumValue[Iteration - 1] * 2**Iteration)
##        #print(NumValue[Iteration]) #scaffolding for development
##    return
#————-

def IntegerTheosophicReductionCalculator():
    TempTheoReducValue = 0
    prompt = “enter integer value to be reduced \n”
    NumValue = input(prompt)
    NumValue = int(NumValue)
    if NumValue <= 9:
        TheoReducValue = NumValue
    else:
        NumValueString = str(NumValue)
        for SubChar in NumValueString:
            TempTheoReducValue = TempTheoReducValue + int(SubChar)
        while TempTheoReducValue > 9:
            TempTheoReducValueString = “”
            TempTheoReducValueString = str(TempTheoReducValue)
            TempTheoReducValue = 0
            for SubCharB in TempTheoReducValueString:
                TempTheoReducValue = TempTheoReducValue + int(SubCharB)
        TheoReducValue = TempTheoReducValue
    print(NumValue,”\t”,TheoReducValue)
    return
#————-

def StringTheosophicReductionCalculator():
    TempTheoReducValue = 0
    prompt = “Enter term to be philosophically reduced\n”
    EntryString = input(prompt)
    EntryString = EntryString.lower()
    #print(EntryString)  #scaffolding for development
    for char in EntryString:
        if char == “a” or “j” or “s”:
            TempTheoReducValue = TempTheoReducValue + 1
        elif char == “b” or “k” or “t”:
            TempTheoReducValue = TempTheoReducValue + 2
        elif char == “c” or “l” or “u”:
            TempTheoReducValue = TempTheoReducValue + 3
        elif char == “d” or “m” or “v”:
            TempTheoReducValue = TempTheoReducValue + 4
        elif char == “e” or “n” or “w”:
            TempTheoReducValue = TempTheoReducValue + 5
        elif char == “f” or “o” or “x”:
            TempTheoReducValue = TempTheoReducValue + 6
        elif char == “g” or “p” or “y”:
            TempTheoReducValue = TempTheoReducValue + 7
        elif char == “h” or “q” or “z”:
            TempTheoReducValue = TempTheoReducValue + 8
        elif char == “i” or “r”:
            TempTheoReducValue = TempTheoReducValue + 9
        elif char == “1″or”2″or”3″or”4″or”5″or”6″or”7″or”8″or”9″:
            TempTheoReducValue = TempTheoReducValue + int(char)
        else:
            TempTheoReducValue = TempTheoReducValue + 0
    while TempTheoReducValue > 9:
        TempTheoReducValueString = “”
        TempTheoReducValueString = str(TempTheoReducValue)
        TempTheoReducValue = 0
        for SubCharB in TempTheoReducValueString:
            TempTheoReducValue = TempTheoReducValue + int(SubCharB)
    TheoReducValue = TempTheoReducValue
    print(EntryString,”\t”,TheoReducValue)
    return
#————-

def opener():
    print(“Universal Theosophic Reduction Calculator for Vortex Mathematics”)
    prompt = “do you have an integer value to be reduced? y/n \n”
    questionAns = input(prompt)
    if questionAns == “y”:
        IntegerTheosophicReductionCalculator()
    prompt = “Do you have an alphanumeric term to be reduced y/n \n”
    questionAns = input(prompt)
    if questionAns == “y”:
        StringTheosophicReductionCalculator()
    return
#————-

def continueQues():
    prompt = “Do you want to run again y/n?\n”
    ContinueAns = input(prompt)
    if ContinueAns == “y”:
        opener()
    return
#————-

#Main
opener()
continueQues()
#End

So where does all this lead, and what does it have to do with gamification?  Well, to me building programming skill is the nuts and bolts of how to gamify life, and the world.  I’m not all that outgoing I’m limited in how physically active I can be, but this I can do.  I will be the first to admit that these are all beginner level command line programs but this is the beginning of the path I need to walk (well, limp along – literally, I walk with a cane folks) to achieve the end of bringing game techniques to life.  My goal is to do this by bringing the real world into the game.  By making games that can reflect reality absolutely.

Liam B

Stray Dog Strut

Feb 27, 2011 at 3:56 am in post by ampat varghese koshy

My first post was on how I got involved in gaming through Urgent Evoke, my interest in Jane Mcgonigal’s work because I  too am an academician – although I work on a different tangent regarding my philosophy of gaming which is fun- driven and not about purpose – my cause that is autism and how I’m trying to connect gaming and autism with  a start up that is hopefully innovative and entrepreneurial, making use of what I learned from Evoke, World Bank and
Globalgiving, to help autistic peoples. What really interests me about Jane now is that she used Beckett in one of her courses and I did research on Samuel Beckett; not to mention that she is magnetic and charismatic…

My second post was about the context in which twenty five of the games put up here were made, contexts which span not only locale, but also regional, zonal, national and global contexts.

This time around I’m going to talk of my favourite game.

The game is Stray Dog Strut. It’s here as a written prototype: http://gameful.org/groups/gameful-challenge-1-awe-inspiring-improvement-aka-make-lord-kelvin-proud/forum/topic/stray-dog-strut/

Stray Dog Strut is a board game that has in it many layers of complexity. The reputation points keep the game highly competitive. The trivia challenge gives one General Knowledge and the game itself is classic board game stuff with the chance to win, go forward, fall back and many other twists and turns while all the while spreading awareness about the plight of the stray dogs, so that empathising with stray dogs does happen. Those who play-tested it loved the board, the bone piece paper icons used as money that make up the reputation points and also the complexity of the game.

While stomwar, pentaballathon, errandracing, hart’s game, dakia, gambit, the curtain game, junkyard strings, letter play, crazy smoking game, spelling success, wheel-chair mischief, suwasth jeeo, ironwire car, story builder  etc., are all equally entrancing as they are being developed for various levels and ages, for me Stray Dog Strut takes the  cake. I tried judging the games using both gameful instructions  like PERMA and what is being measured and how it improves after playing and Julio’s xl spreadsheet  that also includes vital things like appeal and replayability and it still made the grade.

So what are my killer games in the gameful challenge as of now.

Top five:

Stray Dog Strut
STOMWAR
Hart’s Game – I forget the name.
Gambit
Dakia

My best concept games are:

Junkyard Strings
Curtain game
Errand racing

Pentaballathon

& Spelling success
I have only looked at 30 of the games.
So please don’t call me biased. I promise that if made community judge I will look at all of them and my position would probably change.

However I doubt that my opinion about Stray Dog Strut will change at all. Having watched it being made, seen it play tested etc., I have no doubt it will become a classic in its genre.

I need to add that while this game has a lower age limit , maybe five years, it has no upper age limit though some differently abled people would not be able to play it, though that is true of most of the games coming up here anyway.

by Mike

The Gamification of Psychotherapy (Click on Pic to Read)

Feb 19, 2011 at 5:40 pm in post by Mike

by Mike

Real Life, Ego Defenses & You

Feb 13, 2011 at 9:04 pm in post by Mike

Click on Me and you will be transported to a wondrous blog post! ;-)

Teach River Skills & Crowdsource Kayaking Maps & Meetups

Jan 29, 2011 at 6:21 pm in post by Thomas Jones

My Kayak Oklahoma blog seeks to encourage folks to explore their local water resources through recreational kayaking. I think the site would benefit from a game to teach river skills and encourage sharing map locations of local kayak put-ins and meeting up to go paddling.  Photo sharing would be a great plus.

Any suggestions for a gamification platform to support this?

My Own Private Dagobah: the two side of the (Gameful) Force

Jan 18, 2011 at 5:46 am in post by Nicholas C Lange

You know how you feel when you see products whose labels assert authentic ingredients–”Made with real cheese!”–in a way that only makes you more suspicious? Well I have that same reaction when I see this sector struggle with identity as it tries on different labels like:
  • gamification (“now with 300% more game mechanics!”)
  • games for good
  • games for change
  • serious games

I don’t know about you, but my reaction to these terms is mixed, and leans negative.  It’s kind of like when food “tastes healthy,”  great food can be healthy but it has to taste GOOD!

I think Gameful *can* be a place where genuine game designers can bring their art and capabilities to connect with passionate champions of real-world challenges and make some pretty delectable dishes. But I’m worried that the lens of benevolence will often–particularly in the early days that we are finding ourselves–inadvertently sabotage the focus on the player’s experience.  Those projects driven by agents for some public-interest “good”, will often have that particular “good” on the top of their design goals.  It’s rational (follow the money) and it is troubling. The top design goal for any game should be to be played.
After all, How much good is “good” game play, if a “good” game isn’t played?

To close this inaugural blog post, I want to share a secret:  I am not yet a game designer.  I’m a just another do-gooder who wants games to help me do good.  I therefore acknowledge that I, by my nature, am highly likely to fall into exactly the trap I’ve described.

I feel the pull of the dark side of convention and puritanical belief in our socially-beneficial mission on a daily basis.  Integrating real-world goals in ways that support our organization’s mission, at the expense of the player’s experience is a continual struggle as I seek to practice the gameful religion.  Every day at the office, I sense the strength and power of the dark side.  I need balance from the gameful side.

Help me gameful monsters, you’re my only hope!

PS I realized that I never proposed a more favorable alternative to the classification problem I opened with.  It goes against a core piece of my identity to complain without offering a solution, so rather than try to define a new genre of game, just develop a “Seal of Approval” that would be awarded or certified against gameful criteria.  This is a branding, like Good Housekeeping, Energy Star, or Oprah, and is flexible, defensible, and is a proven model for conveying quality, excellence, and social norms.