Why is Pokémon Go so popular?
Pokémon Go is an augmented reality game which uses the camera and location of your mobile device to generate images of small yet powerful creatures known as Pokémon (short for Pocket Monsters) as if they were right in front of you. As a budding Pokémon Trainer, your main task is to capture these creatures using Pokéballs and train them. The game’s map is overlaid on the real-world Google Maps, meaning that different types of Pokémon appear in the relevant locations (i.e. Water-types near bodies of water and so on).
The biggest reason for Pokémon Go’s popularity is it has brought to life the dreams of countless nostalgic millennials, or 90’s kids. The vast majority of Pokémon Go players grew up with the Pokémon franchise; trading cards, watching hero Ash Ketchum overcoming the bad guys and learning life lessons on the Saturday morning anime cartoon adaptation, and trying to emulate him while playing the classic Nintendo Gameboy games Pokémon Red, Blue and Yellow.
Having the power to stand up and do some good in the world aided by a small army of powerful monsters that could be summoned from a ball you carry on your belt was an idea that intoxicated many. Close bonds were formed between the gamer and their Pokémon, be it the adorable Pikachu or the ferocious Gyarados. And now, with the Pokémon Go augmented reality app, these partnerships are closer than ever to the real world.
How many people are playing Pokémon Go?
Although it has seen widespread success across the world with millions of people from all walks of life, the main demographic of people playing Pokémon Go, 18-30, is also the demographic with the highest number of regular smartphone users.
Let’s look at the numbers. In just its first day, Pokémon Go shot to the top of the App Store best seller lists for both Android and iOS, and then was crowned the biggest US mobile game ever when it peaked at a whopping 21 million active users.
Not only that, but it currently has over double the number of daily active users boasted by Twitter, and more than Google Maps. If the trend continues, Pokémon Go could even surpass mobile Goliath Snapchat as well.
Pokémon Go APK
Pokémon Go was released first of all in the US and Australia only – presumably because developers Niantic believed they had the necessary server infrastructure in place to handle users in those two countries. Unfortunately for them (and fortunately for avid Pokémon gamers worldwide), the game was made available worldwide via an APK download within less than a day. All that players needed to do was download the file and run it on their Android phone.
What’s more, even iOS users found a way around it – by setting up a fake iTunes Store account based in Australia and downloading the game from that App Store instead. By now, Pokémon Go has been officially released in most countries, rendering these methods unnecessary. It is also advisable not to download the Pokémon Go APK any more as there are some circulating the web which have been infected by viruses and malware, which is difficult to detect and remove from a mobile device.
What does this mean for the Pokémon Go servers?
This massive influx of users constantly sending and receiving data from the Pokémon Go servers has, somewhat inevitably, resulted in a huge strain on server resources. Despite the fact that the average user of Pokémon Go consumes only around 10mb per hour on their phone, bandwidth and data transfer capabilities on the server side are being stretched to breaking point.
This has resulted in the servers ‘going down’ for hours at a time in certain areas, leaving frustrated users unable to go out and catch ‘em all.
Despite this, the number of active users continues to rise at a meteoric rate, so it seems that Niantic have been granted a reprieve. How much longer they can rely on the patience of their users remains to be seen however – if the underlying issues aren’t fixed promptly, they risk disenfranchising millions of users of one of the most potentially profitable mobile games in the industry’s history.
How do the Pokémon Go servers work?
This level of functionality requires a lot of information to be constantly sent and received by both the client (i.e. your phone) and the server. The backend server platform for Pokémon Go and Niantic’s first mobile title Ingress is Google Cloud Platform running on Java. As Ingress was built in 2015 while the people who make up Niantic were still at Google, and Pokémon Go uses a large amount of data from Niantic such as local places of interest, it is safe to assume that Google infrastructure is heavily used in the server backend.
Their advertised job vacancies indicate that Amazon Web Services (AWS) are also being used, although this appears to have been disproved by a recent tweet from Amazon's Chief Technology Officer Werner Vogels offering assistance to Niantic.
The processing that needs to happen to make Pokémon Go work is split between the user’s mobile phone (AKA the client) and the server, but not evenly. In order to keep mobile data usage and battery consumption down, the app is designed so that the servers do most of the heavy lifting. For example, the client has responsibility for tracking the player’s movements through GPS and periodically sending that information to the server, whereas the server itself tracks the generated Pokémon.
The database held in the server is also in charge of tracking user activities on a general scale, such as where people congregate, where Pokémon should appear (or ‘spawn’), and how far you have travelled. However, the client and the server only exchange data. For example, the server will tell the client to spawn a Pokémon, based on a set of predetermined criteria, and the client then handles the rendering of the Pokémon itself. This saves bandwidth as the message to spawn a specific Pokémon is much lighter in terms of data than a pre-rendered Pokémon would be.
Why didn’t Niantic have more servers ready?
The obvious solution to the issues that users have been facing is for Niantic to ‘spin up’ more servers in the regions with the most traffic, leveraging the near-limitless Cloud environment they are using. It seems that there are three main reasons why Niantic did not simply buy more servers in advance of the Pokémon Go launch.
Although many predicted that Pokémon Go would be a very popular game, few foresaw the massive take-up that has happened. Nintendo and Niantic’s share prices have soared as a result of millions of people rediscover Pokémon for the first time since the 90’s, or even discover it for the first time.
Released worldwide sooner than planned
Niantic planned to release to the US and Australia first, then roll the app out to other parts of the world including Europe. The server infrastructure set up pre-release would presumably reflect this. But the plan was scuppered by the release of the Pokémon Go APK file online, which allowed Android users anywhere to download and play the game. iOS enthusiasts got in on the act too with their own ‘hack’, and soon anyone who really wanted to play in the world could do.
Expectation of user figures to drop
There is a general consensus in mobile gaming that usually ‘what goes up, must come down’. Although Pokémon Go has experienced an unprecedented boom in popularity and active users, the expectation is that these numbers will drop off over time as the novelty of the game fades. If Niantic were to buy lots of extra servers, it is likely that they would need to sign up to a lengthy contract to make it affordable – and if user interest quickly drops off, they would find themselves in a very messy situation.
The challenge for Niantic now is to keep updating and adding interesting new features if they want to retain the massive fanbase they have conjured up.
What can we learn from Pokémon Go and its ‘mistakes’?
Particularly if you are planning to launch your own website, there are some basic lessons that can be learned from the server issues experienced by Pokémon Go.
Even experienced web developers can underestimate growth
Niantic is a team of ex-Google employees which broke off from the company in 2015. This is no team of amateurs; you can be quite sure that each one of them is at the top of their respective field. Despite this, their servers have at times buckled under the weight of users accessing them – which just goes to show that no matter how well you know what you are doing, the Internet can always surprise you. The best you can do is be ready, and be adaptable – which leads us onto the next point…
Scalability is very important
When launching a new app or publishing a new website, you are always firing into the blind a little bit. Even if you’ve done masses of market research and you know the extent of your niche inside out, you will never know exactly how many users or visitors to expect. For this reason, scalability – being able to adjust the constraints of your server or hosting plan – is of vital importance.
Use best practice
It is commonly agreed among developers that Niantic could make much better use of image caching in Pokémon Go. For example, a typical player will visit the same 4-5 ‘Pokéstops’ every day – each Pokéstop contains an image of a local place of interest. Currently, players have to load that image every time they visit the Pokéstop – even if the image file size is small, there is huge potential for streamlining when you consider that millions of people are visiting Pokéstops and having this data transferred to their phone from the server every day.
In addition, Niantic currently uses one load balancer to spread resource usage across all of its servers worldwide, whereas usually you would have one in each region for something as demanding as Pokémon Go.
Launch when ready
One of the postulated reasons for Niantic’s issues is that they were rushing to meet a deadline from their partners Nintendo – which is why the initial release was extremely heavy on battery usage, and demanded too much access to its users’ Google accounts. Fortunately, these issues have since been fixed. When you are preparing to launch your website or application, take the time to make sure everything is as good as it can be – you only get one shot at a first release!
Unavailability upsets users
Server downtime results in a vacuum of service. Just as people who visit a ticketing website to get front row at their favourite artist’s concert are frustrated by the pages loading slowly or not at all, Pokémon Go players are becoming increasingly annoyed that they are sometimes completely unable to access the game. Particularly as the competition gets fierce between players, losing a night of game-time can mean losing ground in the race to ‘be the very best’.
Also, many of the in-app purchases available with Pokémon Go are time-limited to 30 minutes. Paying $1 for one of these add-ons and having the servers crash on you a minute after using it is one of the biggest irks reported by Pokémon fans. The bottom line is, when people are trying to access your website or application, it needs to be available. This is the age of immediacy and people will find what they need elsewhere in most cases if the site doesn’t load within a few seconds. Pokémon Go is the exception to the rule in this respect, at least for now, but the lesson is still there for anyone looking to start a website soon.
Cloud Hosting - get the very best!
Cloud Hosting is one solution that won’t let you down in these regards when you are launching your website or application. With its emphasis on scalability, and the ability to quickly alter bandwidth, storage and data transfer allowance, you can publish your website safe in the knowledge that the server infrastructure running in the background is adaptable and reliable.
Cloud Hosting plans Hosting Buying Guide