Pokemon Go is an augmented reality (AR) smartphone game created by Niantic in which users may collect, fight, and train Pokemon in their natural environments. It was launched in 2016, and since then, millions of people all around the globe have played it.
Cloud computing is used in several capacities of Pokemon Go’s technology. The term “cloud computing” is used to describe the practice of providing data storage, computation, and network infrastructure through the internet. To manage the massive quantities of data needed to power Pokemon Go and provide a seamless experience for users, the game’s creators turned to cloud computing.
A player’s request to catch a Pokemon is processed via Cloud Load Balancing. When a player initially launches the app, it connects to the game’s server in the cloud and downloads all of the static material for the game. To further speed up caching and serving of this data, cloud CDN is also enabled at the cloud load balancer level. The player’s mobile request is received by the Global Load Balancer, which forwards it to the NGINX reverse proxy. When a user accesses the game, the reverse proxy will forward them to the main server.
The Spatial Query Backend, the third component, is responsible for organizing a cache that is partitioned geographically. This cache and service defines the player’s time zone, the locations of gyms and PokeStops, and what Pokemon show on the map. The game’s front end is in charge of the player’s input, while the spatial query back end controls the world map. The data sent back to the player originates on the front end, where spatial query tasks are processed.
Because BigQuery is completely controlled and scalable, we can concentrate on constructing complicated queries without worrying about the structure or schema of the data, allowing PokemonGo to evaluate the data for the game. By indexing any variable we would want to look at, we can generate any number of useful dashboards, reports, and graphs to show off to the team. We utilize Dataflow as our data processing engine and a batch job to handle player logs stored in Bigtable. Because of this, we can efficiently manage the game’s growth and size while also analyzing and learning from the data we collect.