With all the hype around Pokemon Go, we see some people thinking about joining the trend and bringing something to market.
What kind of game can you make? Well, any Massive Multiplayer Online (that’s MMO to game design vets) game you know can become location based. It would have typical elements like farming (planting Incense and Pokestops), resource gathering (catching Pokemons), as well as training and action elements (fighting). And of course social elements which can be both online and offline for a location based game!
Let’s see what the components would be for this.
Location-based game client or app.
- registration – sign in;
- game screens and functions (various like inventory, items, etc.);
- map with game elements/points of interest and current position;
- action functions (for fighting, gathering, etc.):
- can be augmented reality based, in this case we take the camera stream and process it either on client or on the server,
- can be only location based (like Zombies Run where player gets audio).
- chat;
- consistent trending brand elements (like Pokemons or Monsters or Ponies); the most effective will tell an engaging story.
Game server
- geo service (location events processing);
- mapping service;
- augmented reality server (video stream processing where necessary);
- game server with sign-in/sign-up and chat functions.
The game server is basically a scalable real time messaging server where all clients can send their messages and events and receive results. There are number of services that can be used. In a few cases we have used custom built NodeJS/MongoDB based solutions, or MeteorJS or Select.io.
Major functions of the server are signing up and signing in players, sending chat messages to friends and to people in your location and processing geographical coordinates to have an understanding of all players positions.
Mapping service is a separate feature that can be based on Google Maps or OpenStreet Maps or a similar service. It can either give you geographical position information to use your own map rendering engine or just draw the maps directly in the applications, like Google Maps.
The augmented reality server is interesting beast. It can be implemented in two variants. One variant is when client app only confirms with server that the object is in coordinates x,y,z from GPS/location/compass data. Another way is to send video stream from the camera to the server and server will analyze it, confirm the location from visual cues (to make sure GPS coordinates are right and the view direction is right, etc) and only then returns back the coordinates for the augmented reality objects. The client then takes the coordinates and renders it on the video stream of the app.
In the former case the game requires a computer vision processing component to and depending on the requirements can increase the budget of the project.
Overall, these are the fundamental features in a location based app. They can be fairly straightforward to understand but require more than an amateur to implement smoothly and understand the challenges real-time communication and scaling will bring (just look what happened with the Pokemon Go servers!).
Best of luck with your project, we hope you’ve learned a lot.