Giter Club home page Giter Club logo

pogo-emulator's Introduction

Progress

Supported/tested versions:

  • 0.35.0

Features/progress/todo

  • Environment variable config support
  • MITM Proxy
  • Google User authentication/login
  • PTC User authentication/login Could probably emulate the SSO server as well...
  • Create/Edit player avatar(tutorial + afterwards)
  • Create/Change playername
  • Asset Hosting w/ 2 minute expiration
  • Pokemon generator
    • Import game_master
    • Build pokemon profiles using game_master data
    • Custom Spawn tables
    • Spawn database
    • generateStarter (Generate "decent" starter and assign to player)
    • generateWild
    • generateEgg
  • Captcha menu
    • Welcome disclaimer(Needs improvement though)
    • pogo-emulator admin menu
    • pogo-emulator player menu
  • Pokestops
    • Custom Loot tables
  • Gyms
  • Imports
  • Configurable
    • Simplify configuring Loopback for MongoDB, Redis and MariaDB
  • Other
    • Could easily add support for the PokemonGoMap frontend to interface directly with the server's database, or some other Map frontend

Getting started

Below are steps I use for connecting/testing/etc. Remember this is an unofficial server, so we don't care about SafetyNet

  • Server
    • Ubuntu 14.04 (From scratch VM/DigitalOcean/etc)
      1. curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
      2. sudo apt-get install -y nodejs
      3. git clone https://github.com/zaephor/pogo-emulator.git
      4. cd pogo-emulator
      5. npm install
      6. cp config/pogo.example.js config/pogo.js
      7. cp config/server.example.js config/server.js
      8. cp config/download.example.js config/download.js
      9. Edit config/server.js and config/pogo.js to your liking
        • Make sure you supply a google_maps_api_keyin config/pogo.js
      10. Download the PokemonGo game_master, assetdigest and all the Pokemon asset files
        • Can edit config/download.js and run npm assets or node download.js to obtain these files
      11. npm start
        • I often run this from within a screen session...
  • Client
    • Android (CM12.1 Root + Xposed)
      1. Install Xposed somehow(look this one up)
      2. Install @rastapasta's Pokemon Go Xposed (Mostly care about the cert pinning)
      3. Activate Pokemon Go Xposed
      4. Reboot
      5. Configure device for Proxy PAC address
        • Wifi
          1. Edit current wifi network
          2. Check Advanced options
          3. Change proxy to Proxy Auto-Config
          4. Set the PAC URL to http://<SERVERIP>:<PORT>/proxy/pac
        • Other
          1. Supposedly you can modify APN settings, or use ProxyDroid, I've not tried it yet
      6. If needed, the CA cert file can be downloaded on the device at http://<SERVERIP>:<PORT>/proxy/ca.(pem|crt|der|etc)

Known glitchs

  • After completing the tutorial, the capture rewards pop-up get stuck on screen. This begun as soon as I started experimenting with Pokemon Inventory it's database

Developers Notes

I know my free time to work on this will vary so I welcome most pull requests.

Currently this runs off of a memory/file based DB, but can easily be configured and connected to MongoDB, MariaDB, or anything else supported by Loopback.

  • Application
    • app.js <-- Core application file, mostly just contains middleware and routes mappings
    • /config <-- All necessary config files(Except for some DB specific stuff at the moment)
    • /assets/<platform> <-- Asset directories
    • /middleware <-- Custom middleware functions used on all /plfe/* routes
    • /requests <-- The functions executed for each request action in an RPC call
    • /platform_requests <-- Some more functions in RPC calls, usually device signature and IAP stuff
    • /routes <-- The various routes endpoints
    • /ssl <-- Configured as MITM's default cert path
    • /views <-- PUG-based templates path
    • /views/captcha <-- Templates meant to specifically be displayed in the Captcha display on the phone
  • Database/ORM
    • /db/common/models <-- Database model objects
    • /db/server/datasources.json <-- Literal DB configurations
    • /db/server/model-config.json <-- DB Model-to-storage mappings

Credits/Thanks

Disclaimer

©2016 Niantic, Inc. ©2016 Pokémon. ©1995–2016 Nintendo / Creatures Inc. / GAME FREAK inc. © 2016 Pokémon/Nintendo Pokémon and Pokémon character names are trademarks of Nintendo. The Google Maps Pin is a trademark of Google Inc. and the trade dress in the product design is a trademark of Google Inc. under license to The Pokémon Company. Other trademarks are the property of their respective owners. Privacy Policy

pogo-emulator is meant for an academic understanding of building and scaling a mobile multiplayer game from the server-side perspective and see what the game could have become.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.