views:

219

answers:

8

Sometimes, game-like features in an application can make work fun. For example, Stack Overflow uses badges and points to coerce its users into doing work.

  • What game-like features are transferable to applications?
  • What kinds of applications are appropriate for game-like features?
  • Why are game-like features uncommon in applications?
+3  A: 

I think the main issue is that in most applications, they are used for a purpose. They don't need to incentivise the user by making it more "fun" and it's generally a distraction. Imagine what would happen if Visual Studio (or whatever your favorite IDE is) gave you badges... Just like here, many people would concentrate on acquiring those badger instead of writing good code.

Another thing is that, at least in the case of badges/achievements, they're fairly meaningless for offline applications.

Tal Pressman
Ah. But what if you got more badges if you wrote better code and were docked points whenever you violated rules of effective programming or your company's coding guidelines?
Michael Aaron Safyan
many IDE offer games. Eclipse, Emacs etc
Umair Ahmed
What *doesn't* Emacs have? :P I'm not familiar with the Eclipse games, but I wonder if @Evan's point was to have the application **be** the game, not the application have distracting games programmed inside it.
Jeremy Powell
I want to follow Michael's line of thought. Can't we create game-like objectives and obstacles that promote productivity, rather than distract from it?
Evan Rogers
I myself am concentrated on acquiring the stack overflow badgers.
Hooked
@Michael - that would be just as useless as trying to have automatic code reviews. A program can't define "good code", since us humans can't either. Besides, we're programmers - if there's a system, we'll try to crack it instead of concentrating on actual work. Take, for example, the "old days" where productivity was measured by LoC. People would just write the same code using more lines (making it less readable) or, even worse, write obfuscated unnecessary code to inflate the line counts artificially.
Tal Pressman
+1  A: 

Nowadays, games are synonymous with community.

Most line of business applications don't include a wide variety of multiplayer or community aspects to them.

routeNpingme
But surely, there are plenty of fun single-player games.
Evan Rogers
Not that you would use every single day. Even the best single-player game gets boring without other people involved. If a bank teller could make a deposit by racing a Mario Kart through Calculation Canyon, they'd eventually just want to go back to the 'Enter Amount Here' box.
routeNpingme
I agree that your Mario Kart example might be less boring with other players, but it would be no less distracting or inefficient. The game's challenges must line up with the purpose of the work, but I'm not sure that this necessitates a social experience.
Evan Rogers
+2  A: 

It's definitely true that 'game' features in an application might be distracting and detracting from the effectiveness of a lot of applications.

The idea of adding game features to a product is to impose some sort of economy to productivity--a reason for working. For example, the badges here are kinda neat, but what really drives people to do well on SO is the reputation. It enables them to make a larger difference and more impact, and then also ties them to a feel of responsibility for the site. I think SO really strikes a good balance here.

Although, game features in other apps can be insulting imagine this:

> gcc -c main.c -o main.o
Compiling... while your waiting, what's your favorite color?

Edit The question you might want to answer very specifically is "What behaviour are you rewarding, why are you rewarding it, and what is the reward?" If all those have to do with productivity and nothing to do with some orthogonal happiness (ie social standing) I'm not sure its going to work. End Edit

On a completely different note, you must watch this talk on "Human Computation". Wow.

http://video.google.com/videoplay?docid=-8246463980976635143

It talks about using games to categorize images for Google. A little off topic, but you might appreciate it.

Jeremy Powell
But what about:Compiling... while your waiting, would you like to wager that there will be 5 or fewer errors?
Evan Rogers
Yeah, but it seems like that kind of thing needs other people to be playing with you to make it worth while. And also, you have to have something to lose in a game, and it has to be external to the efficiency of your work.
Jeremy Powell
I agree that a game usually needs an artificial risk, or obstacle, and it seems like this would stand in the way of work efficiency. Could the software measure your progress against the real risks and obstacles inherent in the work? Could the artificial penalties act as barriers, discouraging bad practices, without becoming an annoyance?
Evan Rogers
In that case, you're really just providing a pat-on-the-back functionality in your app. gcc reports: "Wow, you wrote that really well, Evan. I'm duly impressed." or "Nice use of comments. I especially liked the Haiku on lines 55, 56, and 57." The artificial obstacle usually works best with social obstacles. Competition, you know?
Jeremy Powell
I'm deleting my last comment and adding it as an edit to my answer.
Jeremy Powell
"Buddy the elf, what's your favorite color?"
Ricket
+3  A: 

Games are really educational applications. True, what they generally teach is how to play the game, but they're still educational.

By the time you finish a typical game, you're an expert in a dozen different mechanics, know how to handle complex scenarios, and can recognize multiple different foes and their patterns.

While game mechanics themselves ("jump!") may not be applicable to typical applications, a look at how games approach teaching certainly could be.

kyoryu
+1  A: 

Brilliant question Evan! And now for my definitive answer:

I think that any work can become fun if you break it into attainable challenges. An application becomes a game when it provides these challenges, explains them, and gauges success or failure.

The difficulties in building challenges into applications are...

  • The challenges must align with the work, so that effort spent surmounting the challenge is also progress towards the user's goals. Otherwise the challenge is only a distraction. Application users have few common goals, so a predetermined set of challenges cannot be very useful.
  • The typical goal of most work done in an application is to impress a human being through creativity and ingenuity. This cannot be gauged very well in software.

For these reasons, building specific challenges into an application has very limited value. Social games may be an exception because other users partially define challenges and gauge progress appropriately on a case-by-case basis.

Evan Rogers
Thank you Evan, really insightful answer!
Evan Rogers
+2  A: 

Flashing lights and other shiny stuff. Good games are loaded with colour and give the same pleasant stimulation as watching fireworks.

too much php
+3  A: 

One of the places where you can see this principle being effectively applied is for applications that use people to generate or index content. In these cases, the game-like aspects are a way to encourage self-moderation. For example, on SO, the rep and badges aim to encourage constructive behaviour like higher-quality answers, peer review etc. Similar systems exist on many generic forums, as well as sites like boardgamegeek and wikipedia.

I could imagine this kind of thing working well for things like community/company wikis, software documentation, or adherence to coding standards or test coverage. The problem, as ever, is to stop the game becoming the main focus. For example, if you could get rep for tidying up your intranet wiki, I can guarantee there would be some people who would do that all day, when their main job was something quite different!

ire_and_curses
+1  A: 

Doom as an interface for process management, anyone?

http://www.cs.unm.edu/~dlchao/flake/doom/chi/chi.html

Harry