Keep Your Players Flowing

What’s the Flow?

The concept of Flow (Csikszentmihalyi, 1990) defines the mental state in which a person performing an activity is fully immersed in a feeling of focus, full involvement, and enjoyment in the process of the activity. It is a state of complete absorption with the activity at hand. It is a state in which people are so involved in an activity that nothing else seems to matter. For purposes of this article, we’ll simplify it asserting that Flow is the Optimum Challenge.

Why is the Flow Important for Us?

Because when we enter the Flow, we feel intrinsically motivated and happier, which is related to our perception of fun. As a side note, you’ll always want your players to be as much intrinsically motivated as possible, and since it is hard enough to foster intrinsic motivation, this is another reason why the state of Flow is an important game design element.

What Are the Requirements of the Flow?

1. Clear Goals and Progress

The player must know what is she trying to achieve and how to track her progress.

2. Clear and Immediate Feedback

This helps the player react to changing demands and allows her to adjust her performance to maintain the flow state.

3. Optimum Level of Difficulty

The player must have a good balance between the perceived challenges of the task at hand and her own perceived skills. The player must have confidence that she is capable to do the task at hand. We must ensure that we are communicating to the players correctly the difficulty of the task, and that they are able to evaluate accurately their level of skill. If they fail to understand one of these two things, the Flow state will be much more difficult to achieve, and it will be lost easier.

How Do I Get Players in the Flow?

Players enter and stay in the Flow when the game offers them the Optimum Challenge, this is to say, a balance between the difficulty of the task against their skill. The comparison of difficulty-skill will determine how the game experience will be (see the image below). Through his research, Csikszentmihalyi identified eight different experiences. I encourage you to think of examples of each one as your read them:

  • Low challenges versus high skills can serve as relaxing experiences.
  • Low challenges versus moderate skills lead to boredom.
  • Low challenges versus low skills give place to apathy.
  • Moderate challenges versus low skills foster worry and concern.
  • Moderate challenges versus high skills create experiences of control.
  • High challenges versus low skills make the players feel anxious.
  • High challenges versus moderate skills create activation
  • High challenges versus high skills enable the players to enter in the Flow.

Game Experiences

Remember that “High challenges versus high skills” doesn’t mean that the task is very difficult per se. If the player doesn’t know anything about your game, learning even the basics can be a challenging task, no matter if these basics are really simple. On a side note, this is out of the scope of this article, but I figured it would be worth to mention that there are more elements you should consider when creating your game experience, namely that it should be able to be perceived as challenging for inexperienced players while not resulting too easy for the experienced players. If the new players find it too difficult or if the experienced players feel you are insulting their skills, there is a good chance that they will abandon your game. It doesn’t mean that you should satisfy them all; rather, there are techniques that allow for experienced users to squeeze more performance out of a system when interacting with it, which new users don’t even are aware of.

How Do I Keep Players in the Flow?

As players repeat the activities of the game, they improve their skill. In order to keep them in a state of flow, the difficulty of the activities must rise to match their skill. If the difficulty of the activities doesn’t change, eventually the player will move from a “High challenges versus high skills” experience (Flow) to a “Low Difficulty with High Skill” experience (boredom). If the difficulty rises too fast, the player will end up in a “High challenges versus low skills” experience (anxiety).

Conclusions

We want our players to enter the state of Flow. We will get them there by presenting them with challenges that match perfectly their skills. As players play our game, their skill improves, so we will need to rise the challenge to keep them engaged.

Bibliography

Books

Enrique G. Fernández, Mº Dolores Martín, Javier Domínguez, “Psychological Processes” Donald A. Norman, “The Psychology of Everyday Things”

Websites

George Fan, “How I Go my Mom to play Plants vs. Zombies” Wikipedia, “Flow (Psychology)” Wikipedia “Mihaly Csikszentmihalyi”

Tags: , , , , , , ,

About Isilion

Musician, neophyte humanist, home-philosopher, avid reader and impassioned conversationalist. I like coffee and people and dislike shouting and anger.

2 responses to “Keep Your Players Flowing”

  1. Asier says :

    Hola Isilion, me pongo en contácto contigo tras leer una buena cantidad de posts y replys tuyos. Tengo 24 años y he estudiado artes gráficas y diseño de videojuegos por lo que a nivel gràfico ya sea 2D o 3D me puedo mover con facilidad. Tengo algunos compañeros estudiando programación y a decir verdad andan bastante liados estudiando C++. El problema que tenemos es que no vemos en que momento los graficos, ya sean 2 o 3D se juntan con el código que ellos hacen para dar como resultado algo parecido a una interfaz de juego. Quisiera saber si me podrias ilustrar ya que más allá de la animación de graficos 3D no veo como pueden coger el material que yo les doy para hacer algo jugable. Gracias

  2. Isilion says :

    Por lo que me cuentas, lo que entiendo que necesitáis es un motor de juego. Esto es algo que podrían programar tus amigos, pero es una tarea muuuuy costosa y que no suele salir a cuenta. Sería como construir un coche para poder hacer un viaje. ¿No sería mejor alquilar uno o pedírselo prestado a alguien?

    Te recomiendo que eches un vistazo a Unity, que es un motor muy extendido y con el que se pueden hacer verdaderas maravillas. Tiene una licencia gratuita que os serviría perfectamente, creo yo. Si tus amigos están acostumbrados a un modelo de Programación Orientada a Objetos (que entiendo que sí, porque están haciendo C++), les requerirá un cambio de mentalidad, porque Unity se programa con un paradigma distinto – Programación Orientada a Componentes, y con otros lenguajes – C# y JavaScript. De todos modos, seguro que cuando entiendan de qué va el tema les va a encantar porque se hacen juegos muy rápido.

    Esta es la página de Unity. Puedes bajarte el motor y hacer los tutoriales que ahí se proponen: http://unity3d.com/learn

    Yo les diría a tus amigos que siguieran este tutorial, que a mí me encanta, para acercarse a cómo se programa en Unity: http://u3d.as/content/m2h/c-game-examples/1sG

    Si tienes más dudas, te diría que os metáis en la comunidad de Stratos, un foro de desarrolladores de juegos, donde puedes preguntar todas estas cosas, y también buscar gente que esté haciendo cosas para unirte a ellos, o al revés :http://www.stratos-ad.com/forums/

    Ea, ¡Ánimo y suerte en el camino!