I have never been much of a game player. Apart from the occasional game of Solitaire during college (and a seriously disturbing brush with Grand Theft Auto last year), I managed not to get addicted even while hanging out with game obsessed geeks, and building Tetris for a computer science course. I would look at people addicted to computer games, and congratulate myself on knowing better.
Pride goes before a fall. A few months ago, I started looking into game design while working on a Rich Internet Application. My goal was simply to understand how games manage to get users do such complex actions, what type of instructions and reinforcement they use.
Fast-forward two a few months later – I regularly play games! I especially like Bejeweled, and Bookworm from “popcap” games. I have also started playing online games on Yahoo messenger with friends and family members all over the world.
One thing I have noticed is how well games facilitate a “state of flow”, which is the Achilles heel for many business applications and web experiences. They are hardly ever able to achieve a “state of flow”.
What is a state of flow? Csikszentmihalyi (what a mouthful!), the psychologist who pioneered this concept calls it “being completely involved in an activity for its own sake. The ego falls away. Time flies. Every action, movement, and thought follows inevitably from the previous one, like playing jazz. Your whole being is involved, and you’re using your skills to the utmost.”
Hmmm. Like playing jazz. Most hackers will instantly identify the flow state as being the place where they get work done, and possibly the reason they chose to work in technology in the first place (flow is addictive for sure). For me, hacking code makes me completely absorbed (especially the iterative process of initial debugging, or the simple “typing” of code that happens if software has been properly designed before you start coding). Debugging and writing code puts me in a state of flow.
Using business applications or web applications never quite absorb me in the same manner. Games are one of those rare technology based experiences that can reliably put me in an (unfortunately non-productive)state of flow. I get completely absorbed in playing the game, just the way I get caught up in code. Reality slips away for a few minutes or hours. This rarely happens with other software applications or web applications. Why? How can we better facilitate flow? What can games teach us in this regard?
Daniel Johnson from Univ. of Queensland, australia has researched “flow” in game design. He mentions 8 factors that lead to flow in games (taken from his talk linked to above -go there to read the entire talk).
1) Tasks that offer a chance of completion
(No-one plays a game for long if it seems too difficult to succeed)
2) Tasks that facilitate concentration
(such that people become so involved in what they are doing that the activity becomes spontaneous, almost automatic…)
3) The task has clear goals
(It is important in any game that the player knows what they are attempting to do, as soon as they lose sight of this their desire to
4) The task provides immediate feedback
(Player’s want to know how well they are doing; hence the need for a score or energy bar)
5) The task leads to deep but effortless involvement (that removes
from awareness the worries and frustrations of everyday life)
6) A task that facilitates a sense of control over one’s actions
(People like to feel seamlessly in charge of the experience)
7) Concern for the self disappears during the task, yet paradoxically sense of self emerges as stronger when the flow task is completed
(for example the sense of victory if you do well in a game)
8) The sense of duration of time is altered
(Everyone has lost track of time when playing a particularly good game)
While all these goals are worth considering, I think No. 2 – “Tasks that facilitate concentration” are specially important. Vanilla web interfaces with the “wait while I fetch data from server” are the very antithesis of flow. Human beings have a short working memory, and mentally we move on, while the system is still fetching new data.
The second thing I have noticed about games is that they are sparing in their use of space. A game uses as much space as is necessary – and no more. The most complex set of actions take place in a very small window. Ask someone who designs web interfaces to cram so much action into a system and they will give you seven full pages, and two levels of navigation! IMO, this tightness of design is deliberate and very effective. It makes perfect sense in terms of how human attention works. From what we understand of visual attention, there is a small space (a few degrees of visual angle) that we pay focused attention to. Anything beyond that space is attended to by (much lower-res) peripheral vision. By having all the action in the foveal area, we can stay focused on what we are doing.
I have noticed that RIA’s are more constrained in their use of space than vanilla web applications. This is due to the fact that RIA designers cannot simply design a completely new page every time they have to add a feature: they have to work within the existing view. This is a good development.
If designers just borrowed these two principles: no latency, and limited area of action – I think it would help a great deal with keeping people focused on what they are doing.
These are not the only lessons from game design. There are several more that I will talk about in later posts. Right now, I need to play a quick game of Bejeweled to get my daily fix. ;->