Is Pokémon GO an extremely fun game?

This post contains my current thoughts about the success of Pokémon GO. It should not be interpreted as a conclusive work, but rather as a conversation piece. You are invited to reply in the comments with your thoughts.

Everyone has heard about the Pokémon GO hype, and most of you have probably played the game. If it’s so popular, it must be an extremely fun game, right? Let’s analyze what exactly is so appealing inside the game:

  • Collection. Perhaps the most obvious type of fun in the game. The catchphrase of Pokémon is even “Gotta catch ’em all”. There is something inherently appealing about collecting stuff, consider how some people collect post stamps.
  • Small tasks. I’m not sure what an appropriate name is here, but I’m referring to the apparent pleasures of completing small tasks. Pokémon GO is full of them, there is always a new pokéstop nearby, there are regularly new pokémon to catch, you can walk to hatch eggs, and more.
    Gym leaders are publicly visible

    Gym leaders are publicly visible

    Every time you complete such a task, a bit of dopamine is released in the brain (see for example this article, although I’m not convinced we fully understand the role of dopamine in games yet). This type of attraction is dominant in many casual (free-to-play) games.

  • Competition. Players compete to become gym leaders of the gyms in their neighborhood. Gym leaders are publicly displayed on the game map with their avatar and nickname, which shows a certain dominance of the leader players. This is especially appealing to players below 30 years old (see for example this post, which aligns with other research).
  • Exploring. Pokéstops are tied to interesting places in the real world. Players are frequently cited that they see things they didn’t knew existed in their neighborhood.

There are of course more appealing aspects of the game itself (e.g., customizing your character, figuring out the optimal strategy, the dexterity challenges in gym fights). My impression is that the aspects above are the strongest, let me know if you disagree.

So are these four things in the game extremely fun? Are they so compelling that they explain the game’s success? I think there is more. To analyze that, we need to move our focus away from the game and onto the player. How is the player using the game? Do past experiences of the player have an influence? Let’s specifically analyze the player:

  • Nostalgia. This factor has also been mentioned by others as important. Many people have watched the Pokémon television series during their childhood, played Pokémon games, and possibly collected Pokémon cards. But that alone is not enough. Most current GO players haven’t played any of the other recently released Pokémon games. I think the answer can be found in the nostalgic Pokémon fantasy of really being a Pokémon trainer. The premise of the game is that you can walk around and catch Pokémon in the real world, something that was not possible before. The Pokémon fantasy can now be lived, as opposed to just being imagined. Side-note: even though this was the premise of the game, I don’t think the game has fully delivered on it. Important in the fantasy is not only to catch Pokémon, but also to train them and to form a bond with your Pokémon. GO does not facilitate this bonding well. An enormous amount of Pokémon have to be caught to make progress, making your Pokémon replaceable instead of valuable.
  • Companionship. Many players play the game together, walking with a friend to catch Pokémon and conquer gyms. The game does not enforce this. It is convenient to cooperate when attacking gyms, but not necessary. But more importantly, the game deliberately does not restrict playing together. It would make sense if a Pokémon can only be caught by one player. But in GO, Pokémon can be caught by all players in the neighborhood, resulting in cooperation instead of competition.
  • Togetherness. Since GO is so ubiquitous, other players are frequently encountered on the streets. Players sometimes talk to each other, even though they haven’t met before. Even just seeing that someone else is playing the same game frequently results in a smile. Everyone is playing the same game, this forms a sense of community.

It should be noted that the clear separation made between analyzing the game and the player is just a way to structure the analysis. Both parts are always in interplay.

So are we now able to explain the success of Pokémon GO? There is one factor we should not forget to consider; the context in which the game and the player reside. Does the context play a role in the success of the game? Let’s analyze the context:

Pokémon GO on BBC news

Pokémon GO on BBC news

  • Media attention. The game has been making headlines for over a week now. People are constantly made curious what this Pokémon phenomenon is. Also, if so many people are playing it, people are inclined to be part of the group. It’s almost impossible not to be interested in the game. The pervasive nature of the game encouraged the media attention. The game is blended into the real world and thus becomes visible to the general public.
  • Accessibility. Everyone has a smartphone, everyone can try it. The game facilitates this further by being free, and by being relatively simple to play.
  • Summer vacation. The release is well-timed. Many people have plenty of spare time, and the weather invites people to go outside.

There are more contextual factors which have an influence, but I think these are the most prominent. Interestingly, there was barely any marketing done by the publisher. Other (mobile) games usually spend an enormous amount of money and effort on marketing which aids significantly in a success.

With the analysis of the game, the player, and the context, I think we have enough information to explain Pokémon GO’s success. My explanation is that there are two main factors. Initially, the nostalgic fantasy appealed to a large group of people giving the game a large initial momentum. The next main factor was the huge amount of media attention, accelerating the influx of new players.

What about the game itself then? How does it contribute to the success? I think the game is ‘fun enough’ to facilitate the success. Considering the mechanics of the game, I don’t see elements which are extremely fun. All of the elements have been executed better in other games*! Note that I don’t think it’s a bad game. On the contrary, it does its job very well. The appealing factors of the game are varied to make it fun for a wide variety of people. GO contains all three categories of appealing factors found consistently (in different forms) in the scientific literature: Challenging aspects, Social aspects, and Exploration aspects.

To answer the question from the title, I would say: No, Pokémon GO is a fun game but not as extremely fun that the game itself (the first part of the analysis) explains the success of the game.

If you have thoughts, additions or corrections on my analysis, please let me know in the comments. If you want to read more cool posts in the future, subscribe via Twitter, Facebook, e-mail or RSS. The ideas behind this article have also appeared on the Dutch websites De Kennis Van Nu and NPO Radio 1.


PhD project: Why do we play games?

Why do we play games exactly? Are we playing Candy Crush for the same reason as Call of Duty? And what about The Sims? An answer such as “because it’s fun” is too simple. What is “fun” exactly, and are we playing all games for the same type of “fun”? Understanding the different appealing aspects of videogames is the main topic of the PhD research I’ve started. The project originates from a research proposal I wrote in 2015 which was selected in the Graduate Program Game Research at Utrecht University.

In four years I will investigate what makes games appealing to play. Much research has already been done to answer this question, but I see some large knowledge gaps. My hope is that the knowledge I generate will be useful in many areas. I will focus on making it useful for game designers. I started by making a detailed plan, and figuring out what I am going to do exactly. Here’s roughly what I will do:

What do we actually know?

There is a lot of research investigating why games are appealing. This question is usually not addressed directly, but disguised as research into player motivation, different types of fun, or emotions generated by games, for example. All these different perspectives have produced similar results, but also striking differences. It is my hypothesis that all this research is addressing the same underlying question: what makes games appealing? However, these different perspectives can each highlight some aspects while other aspects are missed. (And some approaches may include an additional focus.)

So this generates the current situation: there are a lot of theories about sort of the same topic, but with a different perspective. This makes it very difficult to compare and combine the knowledge. Figuring out what the combined existing knowledge is on this topic is my first research goal.

How can we use that knowledge?

I see a lot of potential to use the combined knowledge on why games are appealing. It can be used in game design to understand better what the appealing parts are of the game and how to improve those appeals in that specific game. It can be used to find for which specific appealing factors it is relatively unknown how they work. And subsequently, it can be used to better study a specific appeal in isolation because the other factors can be ruled out with more certainty. And there are many more applications for the knowledge on why games are appealing! Applying the knowledge is the second part of my PhD project.

Wow! This can be really interesting, don’t you think? I will be posting regular updates on this blog with results, food for thought, and other progress. If you are interested, follow me on Twitter, Facebook, via RSS, or subscribe to receive updates via email.

Pitching my research project at DiGRA NL

Pitching my research project at DiGRA NL

Thesis prize!

My thesis “Real-Time Dynamic Radiosity for High Quality Global Illumination” has won the Science Faculty’s thesis prize. This encourages me to pursue publication, even though I’ve already been shifting my research focus. Also, my thesis was nominated as one of the three candidates for the even more prestigious general Utrecht University thesis prize.

The laudatio can be found in the Utrecht University news item. (The page is in Dutch, but the laudatio is in English.)

More info on my thesis can be found here.

Thesis prize ceremony

Debate on game education

In June I represented Utrecht University in a debate on game education. It wasn’t so much as a debate but more of a discussion, and in my case mainly giving a long overdue introduction to the game education at the Utrecht University.

It turns out there is quite a lot of confusion about the difference between university level students and applied higher education students. I was surprised by the gap: the audience didn’t seem to know much about the university, while in my background at the university I have never seen an explanation what makes the university different from applied higher education. It was very challenging to bridge this gap in one evening, and I think I succeeded only partially.

Another major source of confusion lies in the role of university internships. Where higher level education internships are usually about the intern joining the regular working process, university level internships are about doing research. Research seems to be interpreted as doing fundamental theoretical research which is only usable in companies working on state of the art technology. Understandably, this interpretation scares away a lot of companies from university level internships. In reality, university internships are often about applied research. If a game studio has a technical problem or question, this is usually sufficient for a university level internship. Most game studios have yet to recognize these technical problems and questions as university internship opportunities.

The debate can be viewed online here.

Marries at Control Gamelab

Lecturer position at Utrecht University

As of January 2014, I started as half-time lecturer at Utrecht University within the Virtual Worlds division of the Department of Information and Computing Sciences. The other half of my time I’m an experimental game developer. One of the reasons I was asked for this position was the good evaluation of the Advanced Graphics course which I created and taught in 2013.

The first major project I did as lecturer was recreating and lecturing the Game Design course from January to May. The course is primarily for Game Technology bachelor students and it is the only game design course in their technology-oriented curriculum. By recreating the entire course I was able to give it a more academic theoretical basis and include recent developments in game design theory. The new course largely reflects my current view on game design. You can visit the Game Design course website here, which contains all course material.

What I particularly like about my position as lecturer is the positive influence it has on my activities as experimental game developer. This positive influence also works the other way around as my lecturer role benefits greatly from my experimental game developer adventures.

And finally a fuzzy picture showing my game design students:

Game Design students


Last December I finally finished my master’s thesis for the Game and Media Technology programme at Utrecht University. It was more arduous than anticipated, but I’m satisfied with the result.

The topic of my master thesis is real-time high-quality global illumination. In short, I developed a radiosity-style technique which modifies the radiosity solution using hemicubes which are rendered only from the perspective of the dynamic object. Real-time high-quality diffuse global illumination is achieved using this technique, but only for relatively small scenes. Although my implementation is not suitable for general use in games, I’m convinced the theoretical framework introduced in my thesis has a lot of potential and will lead to more practical techniques when investigated further.

The thesis, which provided me with a cum laude graduation, will appear later on this website under “Graphics Research” together with a demo.

This movie shows the results, which was captured in real-time on an AMD Radeon HD 5770 graphics card. The visual quality is nearly indistinguishable from the reference rendering.

Reprojection experiment

I was just playing around with this strange idea I had. When walking around, the old image information is recycled to compose the new image. That is, until you press a button to refresh the information for your current position.

Can you get a feeling for where you are in the environment?
I’m not sure what I will do with this. I have several ideas to turn it into a game, but I’ll have to investigate what works best.

(Model is the public domain Sponza model, by Crytek.)

Porting a 3D XNA game to the Mac using MonoGame

When making a cross platform game, XNA is generally not a good choice because it depends heavily on the Windows-only .NET framework and DirectX. In my case, the Mac OS X port came as an afterthought. After creating the game Seven Dimensions for the 7 day FPS challenge, some people requested a Mac version. I thought it was impossible to recompile an XNA game for Mac OS X, but a friend of mine said it could be done! I decided to go for it. If it worked,  it would make XNA a lot more versatile.

Step one: Get a Mac

At first I tried to use Mac OS X in VMware. Running Mac OS X was surprisingly easy, thanks to a pre-made solution found on the internets. But I didn’t succeed in running any type of 3D game at all. I guess the VMware graphics driver can’t handle slightly more complicated graphics. On top of that, Xcode seemed to be impossible to install. Fortunately, I could borrow a Mac from a friend.

Step two: Setting things up

There’s an excellent guide here (part 2 here) which describes everything you need to download and install. However, that guide is aimed at 2D games (using SpriteBatch only). There are some small differences if you want to use 3D graphics with custom shaders. Most importantly, you need to use the develop3d branch of MonoGame (at the time of writing).

Any shaders you want to use have to be compiled into an intermediate MonoGame format. To compile the shaders, you need a Windows computer. Open the 2MGFX solution found in the develop3d branch under Tools. This solution depends on additional dependencies which you have to download separately. Go to the develop3d branch of the github repository and go to the ThirdParty folder. Click on the green “Libs” folder, download that as a zip file and place it in your local ThirdParty/Libs folder. Now you should be able to compile the 2MGFX solution. The compiled program is the command-line tool you have to use to convert your .fx shaders to .fxg shaders. Make sure to open the .fxg shader in a text-editor to see if there is shader-like code in there.

You should test your setup using the CartBlanche sample Particle3DSample. If it compiles and runs without crashing immediately, you’re ready to port your game.

Step three: Porting your game

Prepare your project as described in part two of the guide mentioned above. Your code should compile almost directly. But unfortunately, you will encounter problems when running your game. The problems are very project-specific. These are the problems that popped up in my project:

  • The Game class was destroyed instantly causing an exception that the Game class was used while it was disposed. It turns out that Mono handles the “using (game = new Game())” syntax  in program.cs differently. Simply rewrite this code to avoid the “using” syntax.
  • EffectParameters were not found. This can be caused by two things. First of all, if a parameter is not used in the effect, you can’t set it. Secondly, texture effect parameters cannot be found. The texture should be set using the texture sampler EffectParameter instead.
  • The sampler settings defined in the shader were lost. You should set these settings from c# using the GraphicsDevice.SamplerStates collection.
  • The Mouse.SetPosition function does not work. I worked around it, maybe it’s fixed in a later version of MonoGame.
  • The viewport position offset was mirrored vertically. This is easily fixed by correcting the offset of the viewport you create.

Step four: Hope for the best

MonoGame uses OpenGL instead of DirectX, which can cause obscure problems. Your game might behave strangely on some hardware for no clear reason, especially if you use uncommon graphics features. Seven Dimensions uses line-drawing in combination with depth testing, which is very uncommon. The depth testing didn’t work for the line drawing, so I had to rewrite the game to use triangles instead. There are still other problems on older hardware which I haven’t been able to solve yet.

In total, I spent one day (8 hours) on the port. That’s very little considering that most time was spent on figuring out how to use MonoGame for 3D. The resulting port is not perfect, but MonoGame is still in active development so it will only get better!

Presenting: Seven Dimensions

Seven DimensionsThe seven day FPS challenge is over, and my game is finished! It could be more polished, but I’m really happy with it considering the time constraints.

Seven Dimensions is a puzzle FPS where you play in seven dimensions simultaneously. Is your spatial reasoning capable of understanding these strange worlds?

Go to the page of Seven Dimensions.