For a few months I have been working on game similar to Ingress and Pokemon Go. The whole project is divided into two shared codebases:
- Game client - a libgdx game written entirely in java. It can handle rendering of whole world and should run even on older devices
- Backend server - written in jruby and uses code from game client. It fetches data from fantastic https://mapzen.com/ and extract stuff that is used in game like roads, forest and places.