Thursday, February 16, 2017

My Game of Pokemon GO - Stage VI.1: Lapras, I See You!

Lapras is a myth.  It only patronizes certain hot spots along the coast, with zero interest in showing up at other random locations.  This behavior is drastically different from Snorlax or Dragonite, I would say with confidence that Lapras is the most desirable Pokemon by most players.

A Lapras artwork by our youngest Pokemon GO team member SZ.  Lapras is loved.

After the FastPokeMap setback, developers realized a 100%-open-source community-transparent hacking model simply would not work, some decided to pursue an underground model.  Cracked hash keys were kept as a secret and were only accessible to very few developers.  Once a new hash key was cracked, hackers provided paid hash-key encoding services, so that subscription apps such as PokeAlert on Android, PokeWhere on iOS could continue to call Niantic API.  A paid subscription model was established; cash incentive enabled developers to continue their hash key cracking efforts version after version.  Even after Niantic introduced reCAPTCHA to block bot accounts, developers figured out how to rely on crowd sourcing efforts to crack reCAPTCHA (or used paid human solvers).  Niantic then stopped providing time-to-hide (TTH) information in their API (TTH data is not returned until the last 1.5 minutes of a spawn), i.e., you could no longer know how many minutes left for a remote spawn.  Developers figured out a clever workaround.  For example, if you continuously monitor a spawn point, the program would soon figure out exact when a Pokemon is expected to be spawned at that coordinate and how long that spawn lasts (repeative scans detect when the Pokemon disappeared).  As each spawn occurs at the exact minute at each hour, computer program will know not only TTH, but also when to scan a spawn spot.  How clever!  No matter what Niantic came up, developers always found a counter measure.  However, Pokemon map was still not good enough for catching Lapras, it was simply too rare.

As tracker packages resurrected and became more mature and easier to setup, a volunteer setup a private feed for Coronado using a Slack server.  I signed up without hesitation.  It was also discovered that Niantic had increased the spawn duration for rares from 15min to 30min in December, probably because the change of their nearby feature required players to travel further to catch a rare.  Thirty minute made it feasible for me to go to the island by myself.  Learned from our previous mistake, my friend and I decided to visit the island the day before Christmas to hunt for Lapras, hopefully before the history repeated and Slack server would be shut down by Niantic.  We got lots of Grimers, Dratinis and a Snorlax on that day between 8am and 3pm, however, Lapras did not show up.  We were nevertheless confident that the Slack feed worked and agreed to come back after the new year.

On the New Year’s day, the morning after I was back from Cancun, I drove to the island at 10am alone.  Every chime on the phone brought up a hope.  Finally one chime at 10:45am carried the long-overdue alerts for a Lapras near Hotel de Coronado with plentiful 26m left and I was merely 5min away.  Still excited, drove, parked, ran to the beach, the moment I have been waiting for three months to complete my Pokedex was finally arrived!  I had tons of Ultra balls and Razz Berries stocked, preparing for the toughest final battle I could imagine.  Well, the difficulty of catching Lapras is nowhere near the challenge of catching a Dragonite, one berry and one Ultra ball, game over!  Mission accomplished!!  I made it!!!

My very first Lapras was caught near Hotel De Coronado on the New Year's Day. Another gorgeous one was caught in a week after at the Dog Beach (3rd screenshot).



My Game of Pokemon GO - Stage V: Babies

Egg hatching was not totally fruitless. In the mid December, seven baby Pokemons were introduced into the game; they could not be caught in wild, but could only be hatched.  Based on my rich experience in hatching ($$$, time and distance walked in combine!), I knew those rare 5km babies were just as unattainable as Porygons, therefore, I was not going to waste more money on babies.

Then came the Christmas event, where the probability of baby-containing eggs were significantly boosted by Niantic.  I was taking a vacation in Cancun, but I knew this was the only window to get babies without spending a fortune.  With the unknown but significantly-increased probability of getting baby eggs, the return-of-investment in incubator-purchasing was more justified.  Besides, I always had a theory that when the game was first released, the probability of hatching Lapras was way higher based on anecdote stories I heard, but obviously that theory cannot be proved right or wrong, anyway, I did not want to miss this special baby-introduction phase.  It was fortunate that I could walked in the warm sea breeze in the middle of December, which also helped to keep my body in shape, while we were being fed like pigs in an all-inclusive hotel.  With tons of luck, all babies were hatched and I even got two Togepei, one could be used for evolution later.  I have not bought a single incubator since, hatching is generally a terrible strategy for players living in San Diego -- literally a Pokemon GO paradise.
100% loaded to maximize the baby-hatching probability during the Christmas event.  The orange incubator is the free one provided by the game, all other eight costs $1.5 each and were good for three hatches only.

Before the Christmas event, I hatched 346 eggs after walking 502km (recorded on Dec 16, 2016), by now, I have walked 760km and hatched 489 eggs.

Eggs hatched and distance walked so far.

I got a total of 41 10km eggs, including enhanced 10km egg probability during the Christmas baby event, therefore my 10km egg-rate is a bit biased and is misleading above 7.4%.  I believe 7.4% is a solid estimation for the probability of obtaining a 10km [see previous post].  Here is the hatch chart of all my 41 Pokemons.  You will not find Lapras there.


Birth Certificates

Each Pokemon has a birth certificate recording when it was caught/hatched and where it was caught/laid (if from an egg).  I have Pokemons collected in various locations and it is fun to check these certificates to bring back some good memories.

Example birth certificates: Togepi is a Mexican baby born on 12/28/2016.  Visa was not required to bring babies from Mexico into the US, confirmed (well, at least before the new president).  Smoochum is a Houston baby born on 12/26/2016 (egg obtained at airport).  Dratini is actually not a Mexican baby. Pokemons caught at south end of the Coronado Island were mistakenly marked as Mexico.  The map used by the game is not accurate, the Dratini is in fact a legal US citizen.

My Game of Pokemon GO - Stage IV.2: Hatching

Although FastPokeMap attempted a few short-lasting recoveries, soon after developers decoded the hash key, Nantic patched and used a new key.  FastPokeMap was deemed to be a loser in this cat-and-mouse game and Twitter accounts were never restored.  With catching Lapras and Porygon in the wild becoming hopeless, the only route remaining was egg hatching.

Porygon could be hatched from 5km eggs and Lapras from 10km eggs.  Despite different statistics exist, none was collected at large enough sample size, it was the best to assume all Pokestops provided equal chances of 5km and 10km eggs and all Pokemon types were hatched with equal likelihood.  There were about 41 species in 5km eggs and 15 in 10km eggs.  The number of hatches requires for a 50% chance of obtaining a Porygon and a Lapras could be calculated using the simple equations below:

Porygon: $1-\left(\frac{40}{41}\right)^n=0.5$,
Lapras: $1-\left(\frac{14}{15}\right)^n=0.5$,

where $n$ is the number of hatches required.

The probability of hatching at least one target Pokemon versus number of hatches for the corresponding egg types are charted below.  For a Porygon (orange 5km curve), we need 28 5km hatches to archive 50% and 65 5km hatches to archive 80% chance.  Lapras (purple 10km curve) requires 10 10km eggs for 50% and 23 10km eggs for 80%.  Not bad.  However, when we get an egg from a Pokestop, ~80% chance it is 5km, but 10km eggs are rare.  The most reliable statistics probably comes from a recent Pokemon fan KSBS in Singapore [1], who kept a record for 3175 egg hatches!  He got 236 10km eggs, giving a probability estimation of 7.4%.  So 80% chance for Lapras requires 23/7.4% = 311 eggs.


In hindsight, it is most likely a wrong assumption that all 10km species are equally likely.  KSBS' data suggests Lapras has a much lower chance: 8/236 = 3$\pm$1%, compared to an average rate of 1/15=6.7%!  So the more realistic Lapras hatch curve is the blue curve; one needs 47 10km eggs for one Lapras, which translates into 47/7.4% = 635 egg hatches!  This estimate matches my own experience and what I read recently on Silph Road.

Either 311 or 635, with an average 5km-walk per egg hatch, you would have to walk 1500-4500km for a Lapras.  It was pretty obvious to me that this was time to pour cash into the game -- one had to buy incubators.  The game came with only one infinite-use incubator, I needed to buy eight 3-use incubators at $1.50 each, then I could reduce my walk by nine fold using parallel processing.  Cash was injected, no sight of Porygon and Lapras.  I passed the 50% hatch point, then the 75% line, still trying ...  Eventually I got two Porygons, both with IV above 85%.  

By Dec 16, I have walked over 500km and hatched 346 eggs and I decided to quit.  With $0.50/hatch, you can figure out how much I spent in this hatching stage without accomplishing the goal.  One common mistake people tend to make, including myself, is the intuition that our past hatch failure increases the chance of future success, i.e., the more failed hatches, the next one is closer to be Lapras.  However, textbook tells us a different story, after each failure, I still need another 311 or 635 eggs in order to have 80% chance of gaining Lapras in my next attempt.  The history of 346 eggs has no effect on the future and all those incubators were simply a waste without leaving a footprint.  Getting Lapras this way is a lottery most of us cannot win.

Chasing Snorlax

Catching a rare without trackers was nearly mission impossible, but I did manage to catch a Snorlax one night 100% on my own effort.  As I walked entering the "Snorlax Detected" point from the north, the big fat fellow appeared in my sightings, which means it was 120m away.  I started running zigzag as the green arrows indicated on the map.  The yellow dash line outlined the approximate 120m boundary where Snorlax disappeared from my sightings, which made me think either Snorlax has despawned or I have moved too far, fortunately it was always the latter.  After an intense 10-min blanket scanning, a colossal Snorlax, weighted 693.05kg, entered my field of Poke vision!  Postmortem analysis certainly suggested a much better alternative tracking strategy exist, but I was not going to repeat that again, it was simply too tiresome.
Snorlax caught by brutal-force blanket scanning on Nov 11, 2016.


Reference
  1. https://www.reddit.com/r/TheSilphRoad/comments/5rsyqn/coming_out_lvl_38_3175_eggs_hatched/

Wednesday, February 15, 2017

My Game of Pokemon GO - Stage IV.1: No More Trackers

Three candies were earned when a Pokemon was caught, one extra candy for transferring it, so four candies can be obtained per Grimer caught in wild.  To get a Muk, I would need to catch ten more Grimers, which was nearly mission impossible.  I was so close to complete the Pokedex at this point, I was determined.  Hope came when Niantic introduced the "buddy" feature into the game. I could then choose Grimer as my buddy, one candy earned per 3km walk.  Forty candies would take 120km!  Tough but at least it was a path forward.  By the time I walked about 80km and earn 27 candies, Niantic launched the Halloween event trying to attract players back to the game.  During that special week, walking distance was reduced to one Grimer candy per 0.75km, a sweet deal and the remaining candies were piece of cake.  My Grimer was finally ready to morph into a Muk!
Walking my Grimer buddy for over 81.8km. 


I was still missing the last three: Porygon, Snorlax and Lapras.  Tools had sharpened by that time, Twitter accounts started to report rare Pokemons.  We would just needed to be sitting at the beautiful beach of Coronado Island.  When Twitter feeds reported the precise location of Lapras, drove to it.  However, with only maximum 15min for a given spawn, I figured it was not very productive to do the hunting on my own, as I would barely have enough time after I drove across the island and after managed to win a parking spot from other hunters.  My friend and I decided to visit the island in two weeks, which would be mid-October, as we both had family business before that.  This decision turned out to be a huge mistake, one that I had to pay nearly $200 for.

A pleasant surprise came on a Sunday morning.  I happened to open up FastPokeMap and pure luck stroke me.  I saw a Snorlax one block away from my house with 4min left.  Still could not believe what I saw on the screen, I hurried out in my pajamas!  One down!  Porygon and Lapras, here I come – in just two weeks!  But things turned south quickly.

FastPokeMap got millions of usage per day.  Its database grew to the scale that requires NoSQL database to handle, the web traffic also required the latest Big Data Cloud infrastructure to support.  Spawn rules had been discovered through data mining, biomes patterns were explored.  The FastPokeMap movement certainly caught Niantic’ attention.  Bad news came in the morning of October 8th, 2016.  Niantic introduced more stringent encryption mechanism, where all existing programming interface became useless.  FastPokeMap was shutdown, all Twitter feeds sitting on top of these databases or relying on old interface were dysfunct and were never recovered.  Our plan for the final battle at Coronado Island was complete scraped, as it was pointless to roam on the island without Twitter feeds.  This was the start for a Pokemon dark age.

I wrote the following in that dark morning (hint: my friends were working on drug discovery, so I used related jargons):

"Pokemon hunting is like lead hunting.  In the early days, we could only use "nearby" feature to explore our neighborhood, which was like we shaked test tubes to read out the activities of each individual compounds.  Later Go Radar app provided us a 96-well little gadget, then came FaskPokeMap, which was a modern 1536-well ultra-high-throughput (uHTS) screening system, the rule of PoGo game was reshaped forever.  Several refinements occured afterwards, such as the use of Focus library.  Hunting Bulbasaur at the Hour Glass park was just like finding Gleevec from a Kinase library.  Use libraries of Known Drugs with high hit rates was like visiting hot spots, such as Del Mar, La Jolla and Coronado Island.  Not to mention Twitter feed, that was basically monitoring top journals such as Nature, Science and Cell.  Once a target was published in these journals, we race to win!  Now uHTS has gone, Nature Science Cell has been off the shelf, where is our next innovation?  Beginner players may still rely on Focus Libraries or Known-Drug Libraries, pleasant surprises could still occur once in a once.  However, for our advanced venture capitalists, where is our next Blockbuster opportunity?  Our technical department (hackers) is still fighting hard to crack the code and repair the tools we used to have, but this also presents a opportunity for brand-new ideas.  One possibility is to embrace open science and rely on crowd sourcing, such as use a human-driven GO Radar system.  Let us imagine a few thousands of us standing on the Coronado Island forming an array at 100-meter interval.  Each person is in charge of monitoring his 40-meter sightings radius.  Once a rare Pokemon is discovered, we tweet and disseminate the information immediately.  Forming a coalition is the key to the success of this open science model.  Since we have tasted the power of those modern technologies, we can no longer go back to pick up test tubes and hope to find a Lapras, a Porygon, or a Snorlax that way, nor should we unrealistically dream about obtaining a magic egg, which then hatches into what we desprately need.  These are not real options.  Let us take a break, rejuvenent, wait for the next technology revolution, maybe we will meet again in a total different PoGo battle field."

The original text was sent to my dear Pokemon friends in Chinese and I intended to keep that copy here:

"Pokémon hunting就如lead hunting。我们最早只有在neighborhood用nearby,有如手动地晃动试管读取每一个compound的信息。后来Go Radar给了我们96-well的小机器,FastPokeMap则是1536-well的uHTS,从此改写了游戏的规则。然后又出现了几种技术革新,比如用Focus library。去Hour Glass抓Bulbasaur就是在Kinase Library里找Gleevec。用Known-Drug Set犹如去德拉梅,拉赫亚,科岛这些Hit Rate极高的Library。当然还有follow Twitter feed,那就是跟踪Nature,Science,Cell,一旦别人有了发现,就比谁跑的快!现在HTS当了,NCS杂志下架了,下一个技术革命在哪呢?小盆友们当然还可以用Focus Library,Known-Drug Set,还可以找到惊喜,我们这些只看中Blockbuster的风投该何去何从?技术部门绞尽脑汁也许能修复那些曾有的工具。但这也是给新技术诞生提供了摇篮。一种猜想是embrace open science,用Crowd Sourcing,比如协同合作人肉狗雷达。想象在科岛,几千个我们站成间距100米的阵列,每人负责监视和第一时间Tweet半径内的发现。联盟是open science成功的关键。由奢入简,重新拾起试管去筛找Lapras, Porygon, Snorlax,或者幻想捡到一个magic power egg都不是选项。只有养精蓄锐,拭目以待,迎接下一个场革命,说不准我们会在一个新的战场上。"

My Game of Pokemon GO - Stage III: Nest Hunting

Although the program PokeVision was gone, developers realized Pokemon’s API could be used to create new generation Pokemon maps.  Among all the map programs, the best of the best is called FastPokeMap [see previous blog]. FastPokeMap allows one to click on a map and pretend to be anywhere, this way I could mouse click and mapped out all Pokemons even in places, where no player was physically on ground zero.  I started monitoring two shopping malls and other neighborhood hot spots within 8-min driving distance and my desktop was my "Map Room".  As Pokemon spawns only lasted 15 min at that time, I needed to response to spawns just like fireman would respond to 911 calls.

At this stage my play was extremely purposeful, as I had already hunted most not so rare ones in beach locations.  My only remaining goal was to complete the North American Pokedex, nothing else.  So I did not battle gyms, I did not hatch eggs, I only caught enough Pokemon to gain level twenty in order to get Ultra balls, then pretty much only caught the Pokemons I needed, i.e., either it had to be a new species, or the ones I could exchange for evolution candies to eventually gain new species.  This was why my trainer level is still far behind my friends till this day, as I was not actively gaining XP points (I finally reached level 30 before my seven-month mark onFeb 12, 2017, still behind my friends) .

As my only goal was to collect new Pokemons, I did not battle for the first four months. My first Gym standing was only till Nov 25, 2016 at Costco.

There were certainly pleasant surprises during this period.  I hatched a Tengela from a 5km egg the moment I got home one afternoon.  I discovered three hot spots within 100 meters away from home that spawned rare Pokemons at exactly the same minute every hour, which was how I got my second Grimer.  One night I saw a humongous silhouette in the sightings, while driving back from Del Mar beach.  I pulled up to the side and used FastPokeMap to locate my first Dragonite!
Dragonite (center) encountered by super good luck on Sep 16, 2016.


Rare but evolvable Pokemons can be secured through hard work, such as Gyarados could be evolved from the common Magikarps.  Even though it requires hunting 100 Magikarps, very time consuming but nevertheless manageable!  However, Venusaur, Charizard, Vileplume, Victreebel, Gengar and Muk were the toughest, as their ancestor forms were already rare.  At that time I already started following Silph Road on Reddit and some local Pokemon Facebook groups.  Through crowd sourcing, I learnt there were something called "nests", where rare Pokemons spawned at the rate of one per 10-20 minutes or so, much higher than background occurrence.  Nest hunting was probably one of the most memorable game period.  I visited many small parks, places I would never visit otherwise.  Gastly were harvested at the Del Mar Fairground Parking lot at night; Bulbasaur at Eucalyptus Park in Chula Vista; Bellsprout at Hilltop Community Park in Rancho Penasquitos; Charmander at Martin Luther King Jr Memorial Park in Oceanside, and Oddish at the beautiful Liberty Station NTC Park.

Screenshots taken at the peak of spawn in nests.  Each hunt lasted about two hours.

I got three Grimers with ten candies, I still needed fifty candies to produce a Muk.  Grimers were super rare and nearly only sporadically spawned in Coronado Island.  That was a problem.

Bonus Material

Nests migrate, i.e., every few weeks, a Jynx nest may turn into Jigglypuff nest, then into a Nidorino nest, etc.  The trainer community start their crowd source efforts and maintain a Nest Atlas [1]. However, the atlas is not well maintained, probably because beginners do not know about nests and advanced trainers do not care about nests.  Really rares do not have a nest.

Reference
  1. https://thesilphroad.com/atlas


My Game of Pokemon GO - Stage II: Location, Location, Location

One day my colleague at work mentioned how La Jolla Cove was full of PokeStops raining Sakura petals at night, I realized we did not have to go to Canada to get a Horsea after all.  How hard could it be to access beach, which was only three miles away?!  Fun started at Del Mar Powerhouse Park near 14th street - Seel, Magnemite, Slowpoke, Poliwag, Shellder, Voltorb, even rarer ones such as Gastly, Cloyster and Haunter surprised me from time to time.  Some after-dinner trips to La Jolla Cove added Seaking, Onix, Tentacruel and Aerodactyl.

Then I read Niantic shut down a tracker program called PokeVision.  Holly cow! I did not know there had been a tracker, until its death toll made the headline.  PokeVision was a real-time Pokemon map, which offered its users a “Pokemon GPS”!  Too late for the PokeVision party, lesson learned, I started monitor Pokemon online communities.  Homework is unavoidable if you want to excel in this game.

My research soon pointed to an iPhone app called GO Radar.  Players using rooted Android devices were collecting sightings from their Pokemon GO apps and sharing the data on the GO Radar server.  GO Radar app allowed me to see precisely where nearby Pokemons were, how much time was left for the catch, furthermore, it allowed me to see where rare Pokemons were clustered in San Diego – sweetest spots in San Diego include downtown, Coronado Island and Oceanside Pier.  I could clearly see what later known as nests, e.g., Seaport Village was a Drowzee nest, and Coronado Ferry Landing was a Voltorb and Magnemite nest at the time.

I finally took my family to Coronado Island, a sacred pogo playground known as “the quad”, where maybe a hundred players camped on the lawn in the center of the Orange Avenue surrounded by four Pokestops lighted with lures all night long [1].  I remember that night as the night I hunted our first Grimer, however, history remembers that night as August 20, 2016, the night Chinese Women’s Volleyball team won its hard-earned gold medal in Rio de Janeiro.  In another lucky Sunday morning, I got a Blastoise, a Hypno and several Jynx (a nest) under the Coronado Bridge within an hour.  My Pokedex exploded in the second month.  Location, Location, Location!  This is what this game is mostly about!

The "quad" at Coronado (August 20, 2016)

This is why it is known as the "quad".

With GO Radar, I caught my first Grimer that night.

What was the most exciting moments in the game? Whenever I saw a silhouette pop up in the sightings, indicating a new species was nearby.  My adrenaline shot to the roof, when that happened. This screen shot was taken in the lucky Sunday morning under the Coronado bridge.  The Blastoise, embossed in red, was then located by FastPokeMap.

Technical Excursion – Early Days of Pokemon Tracker

Google map divides the surface of the earth into cells using a library called S2 [2].  Cells have 30 levels, where the most granular level 30 represents an area as small as 0.75 cm2!  Pokemon GO uses level 15 cells, which corresponds to a parallelogram of roughly 200 meters in dimension.  The parallelogram ABCD in the screenshot below, taken during my Gastly hunt at the Del Mar Fairground Parking lot, shows what an example level-15 cell looks like.  The reason the cell shape is not a square is because the spherical earth surface is projected onto six squares of a cube surface, which caused skewness for locations other than equator.  Parallelograms are tiled all over the map, ABCD is just one example.

Now imagine a player stands at the pin O, all Pokemons spawned within 40 meters (blue circle) can be spotted on the app screen and are catchable.  Pokemons within 120 meters (red shaded circle) showed up as nearby (see the bar at the very top of the screenshot with the first Gastly circled in purple) without knowing their exact locations.  The player is now supposed to move around and hunt for the first Gastly within the red circle, i.e., you drag the blue circle using your body to uncover a hidden target.  As a nearby Pokemon could be anywhere within the red circle and each Pokemon spawn only lasted 15min, the success rate of locating a nearby Pokemon was not impressive.

Early versions of trackers took advantage of the Cell identifier associated with a nearby Pokemon (Cell ID data was provided via programming interface) and let us know within which parallelogram Cell we should be hunting, this significantly reduced the guess work, as we now know the monster is within the purple embossed area (common area between ABCD and the red circle)!  Although several click-to-scan operations were still required within this region to move the blue circles until the target was located, it was already a giant step forward.  Later versions of trackers scanned a number of blue circles simultaneously on behalf of the player, therefore was able to expose every single Pokemon within the red circle under one click!  This led to the enormously popular site call FastPokeMap.  Before FastPokeMap, some players had to use GPS-spoofing devices to fake their locations into Pokemon-dense regions, such as the Central Park at New York City, some even virtually travel to other continents to catch regional-exclusive rare ones.  Ninatic gradually tightened up the holes and banned such accounts.  During that campaign, Niantic once made a mistake and ban a whole country from playing Pokemon GO for one full day [3].

FastPokeMap was revolutionary as it created more than a million bot trainer accounts and used them to scan on behalf of players at its server side, therefore, it was 100% safe for players to use FastPokeMap with no association to their real accounts.  FastPokeMap was also a crowd-sourcing service, its scan results triggered by one user were cached on the server for all users to view.  Popular spots that had many players naturally had denser Pokemon Map and therefore attracted even more players.  The FastPokeMap screenshot below shows how insanely busy Manhattan was.  By late September, FastPokeMap has reached 10 million daily page views and 3 million unique users per day [4], thanking to all the big data and cloud infrastructure used to support such a massive operation.
Manhattan under FastPokeMap!


Reference
  1. http://www.sandiegoreader.com/news/2016/aug/25/stringers-pokemon-goes-coronado-and-stays-there/#
  2. http://blog.christianperone.com/2015/08/googles-s2-geometry-on-the-sphere-cells-and-hilbert-curve/
  3. http://www.geek.com/tech/one-pokemon-go-player-got-all-of-belgium-banned-1667630/
  4. https://pokemongohub.net/fastpokemap-reaches-10-million-daily-views


Sunday, February 12, 2017

My Game of Pokemon GO - Stage I: Beginner

Pokemon GO was unquestionable THE game of the year 2016.  My trainer membership started on July 15, 2016 – the day two local players fell off the cliff while playing the game [1].  As a computer scientist, I was curious to understand this monumental moment; it was the first time a viable business model was found for augmented reality technology.  Under the surface of this seemingly childish feast, something must had gone terribly right!  Over the course of the next few months, I witnessed how mobile network, big data infrastructure, crowd sourcing and social media worked together creating a totally new life-changing experience.

My journal can be summarized into six stages in the schematic drawing below.  The Y-axis is the approximate number of entries in my Pokedex (i.e., the number of unique Pokemon species I caught, not to the scale) and the X-axis is the approximate months into the game.  This blog series is dedicated to my own memory of the game, roughly one blog per stage.



Stage One: Beginner - Opening the Box of Chocolate

The box was opened with my first catch of a Squirtle after work, which was called a “starter” in the game. The first month was definitely a honeymoon, as new Pokemons were caught nearly every day.  One day I drove my daughter home along the Torrey Pines Beach, she spot and caught eight new Pokemons in that single trip!  We had no idea about the vast size of the Pokedex universe, every Pokemon caught was tattooed with novelty, be it a Venonat or a Psyduck.   To stock Poke balls, we mapped out a walking loop to a nearby shopping mall that covered six PokeStops, we felt so lucky to live in a neighborhood full of Pidgey and Rattata.  We were gaining levels quickly and got a taste of gym training at level five, then went on to level eight to secure razz berries.  Life had been peaceful, until I realized I was seriously behind other trainers.  A friend showed off a Horsea caught in her trip to Banff, while I had never spot a Horsea anywhere.  Other colleagues had Bellsprout, Ponyta, some even had Rapidash and Ninetales!  It was obvious there were Poke Galaxies beyond my planet.  Time for an expedition.

Bonus Materials

Three fun facts/theories about Pokemon
  • Why fans believe the cartoons of Venomoth and Butterfree were mistakenly swapped? Because Butterfree really look like Venonat [2]!  See for yourself [image from source]:
  • Do you know where the names Ekans and Arbok come from? Spell backward.
  • Do you know Meowth and Pickachu are enemies just like Cat (Tom) and Mouse (Jerry)?  Their indices in Pokedex are also opposite to each other, 52 vs 25!
  • How do I know these?  Because I watched “107 Pokemon Facts YOU Should Know!” [3]

How do I throw a Poke ball?

I only throw “straight” (not “curve”) and only aim for “great” (not “excellent”) hits.  Curve ball has a much lower chance of success, but only gives a 10-point bonus, therefore I shoot straight to maximize the hit rate.  An excellent hit does offer a 100-point bonus, but is much harder than a great hit (offers a 50-point bonus).  I have a trick to shot the ball really straight, not to the left or to the right, so I only need to control the distance the ball travels (see illustration below).  There are mostly two types of distances that one can build muscle memories upon for frequent encounters, a close one (requires a very very light throw) for things like Pidgey and Ratatta; a median throw for most others such as Ekans, Paras, Mankey, etc.  With some practice, you should able to achieve great hits maybe 70% of the time.

With your ring finger pressed against the right edge of the phone (red arrow), slide up-and-down the whole hand as a rigid body.
This make sure the index finger travels up-and-down in an absolute straight line.  With this techinque, you can shoot difficult targets such as Ponyta.

References
  1. http://www.cnn.com/2016/07/15/health/pokemon-go-players-fall-down-cliff/
  2. http://pokeconspiracy.wikia.com/wiki/Caterpie-Metapod-Venomoth%3F
  3. https://www.youtube.com/watch?v=YtnILw7IFas