Pokémon Go:
Pokémon Go is a location-based augmented reality free game. It is available on Android and iOS smartphones and tabs. The game was developed by Niantic and Nintendo together, by way of The Pokémon Company. Though the game is free to play, it is not an open source software, and there is not much information available on the exact programming details, but the analysts have found out certain information, which we are presenting here. The freelance work has increased multi-fold on game development since the launch of this App.
AR and other Technology:
The 3D user interface makes the best use of Augmented Reality (AR), APIs supporting different features and GPS capability to locate, capture and battle the virtual characters. The Pokémon character is already well-known amongst children, and it became famous in adults also due to this 3D game with AR. It opened doors for excellent AR games and AR apps and gave a boost to new thirds party mobile Apps also. The game supported in-app purchases and gave a boost to mobile marketing also. Network and NoSQL database also played their role in making the game work.
Development:
The game concept was initiated first in 2014 by Satoru Iwata of Nintendo and Tsunekazu Ishihara of The Pokémon Company. It was a collaboration with Google for an event which turned out to be a large worldwide game later.
The Niantic Company has used the all data from Ingress to populate the locations for PokéStops and gyms within Pokémon Go. It makes use of Google Maps to seed specific Pokémon on the specific environment.
Software which went into its Creation:
The Niantic Lab’s mobile game ‘Pokémon Go’ generated havoc all over the world not just with the game features but because of its social impact and people playing the game on streets and not following the traffic rules. The augmented reality added spice to the game and new generation was crazy after this game at least for the year of 2016 from the day of its announcement.
The game creation is on Google’s Platform as a Service (PaaS) providing a mobile backend. Niantic Labs stores and indexes Pokémon Go’s data from the game using Google Cloud Data store’s NoSQL database. The game utilizes Libgdx as the app’s framework and uses Java, C++, and C# as the coding languages. Multiple cutting edge technologies were put together in making this game.
Pokémon Go uses the game engine product Unity to help create the massively multiplayer online game that builds off the real-world maps to combine reality with virtual characters. Niantic uses Google Analytics to measure the performance of this game.
Niantic Lab’s was able to utilize new augmented reality features that allow players to see the character via their smartphone camera. The game also uses GPS features by mapping and following player movement in real time. The players stumble upon different types of Pokémon in various places. Though the new technologies are not much there in the mobile game industry, the successful of Pokémon Go game will bring them in various other applications.
Some analysts also claim that the game is likely to be based on Java/libgdx, because of the amount of borrowing that was done from Ingress (an earlier title for this game project) and is a guess based on their employment opportunities.
NoSQL Database:
The Database is NoSQL, and it is very likely they are either using Cloud Bigtable or Cloud Datastore. How exactly they store their data (JSON, CSV, etc.) is still not known.
Network Protocol:
The Pokemon Go uses an RPC interface for server interactions using Protocol Buffers. It is also Google compatible, so nothing much surprising here. RPC stands for Request for Response protocol, which is initiated by the client. The client of your App sends a request to a known remote server to execute a specified procedure. The remote server sends a response to the client, and the application continues its process.
Client Side:
The company works with mobile application development using the Unity 3D Engine which supports C#, UnityScript (a type of JavaScript), or Boo – of which they are most likely using C#.
API Development:
With the interest of game publishers all over the world after the huge success of this game, the Pokemon GO Application Programming Interface (API) is available completely in Java. It’s an interaction layer that enables applications to send commands and get results to and from other applications or services, usually servers.
This project is called PokeGOAPI-Java which is available on the GitHub. It is an early stage API showing how you can automate or replicate some of the game functions quickly using the APIs. Although there were Pokemon GO APIs in the wild before; the new API is significant, as it uses Java and enables seamless development of Pokemon GO companion apps.
What’s going on with this Game now?
The game has reached a whopping number of 650 million downloads! Game developer Niantic Labs announced the figure during the Game Developers Conference in San Francisco. They also confirmed that people have now walked about 5.4 billion miles in search of Pokemon! Along with Android and iOS devices, the game is also available on the Apple Watch. The game is making money through micro transactions. Another news adds that the game has added 80 new creatures. There is also a special event organised to celebrate Pokemon Day.
Summary:
Pokemon GO is not open source; the source code is a trade secret for Niantic, and it’s unlikely that you will ever have access to it. Some analysts even say that the initial coding was all done in assembly language and it is not possible to get this code.
There is a busy community of freelance web developers that are trying to reverse engineer the client app and the API for client-server communications. Niantic’s TOS explicitly forbids reverse engineering and unauthorised app analysis, but the developers will keep trying to unveil the code of this App or end up in developing something very similar to this one!