Ads Top

"I've figured out what Niantic's plan is with the removal of steps and blocking of mapping apps, and what comes next"


#PokemonGO: I've seen a lot of uncertainty in this community about what in the hell is going on with Niantic breaking one of the most important features in the game. I think I've figured it out. I'll start explaining by way of example with a game that hopefully everyone is familiar with, the first person shooter Counter-Strike (any other multiplayer FPS also works for the purpose of this example).A simple way to handle multiplayer interaction in an FPS is for the server to send a list of every player's location to the client. The client then renders the other players into the scene, with the important distinction that other players that are on the other side of walls aren't drawn, even though the client has that information. You can see where this is going. Wallhack cheats were developed that turned walls transparent and showed all players in the level, giving a huge tactical advantage. Some weapons even shoot through thin walls, so you can now easily kill enemy players who can't even see you.The solution to that problem in more modern FPSes is to make the determination of what other players should be visible to the player on the server-side, and then only send to the client the locations of the other players that are visible. That way wallhacks become impossible, because the client doesn't even have the information available to it except that which a nonhacked client already knows and displays by default. The only problem is that doing all of those calculations about which other players should be visible to each player is more computationally expensive for the server, whereas sending down a simple list and letting the clients handle it is simpler.By now the parallels to Pokemon Go should be obvious. In a bid to reduce load on the server (which, really, who can blame them), Niantic initially coded the server to send down a simple list of all nearby Pokemon to the client, and then leave it to the client to handle sorting them based on GPS coordinates and display the steps list (which obscures a lot more information than the client actually has available to it, exactly analogous to the Counter-Strike example from above). They always knew that this was going to be vulnerable, because there is lots of precedent for it with third-party add-ons to the Ingress Intel map such as IITC that display information in a more complete manner than the official map client does. In a typical startup-style bid to launch the minimum viable produce and simply get Pokemon Go out the door, they went with the simpler, less computationally expensive client-side solution, leaving a TODO to make it less susceptible to cheating in the future.I suspect that they underestimated how quickly the vulnerability would be exploited, as well as how much of a breaking effect it would have on their desired gameplay. So here's the timeline of events as I see it:Pokemon Go is released.PokeVision comes out.Niantic panics, goes into damage control mode, and comes up with a short term plan to restrict the amount of information available via the nearby Pokemon API call.They release several client patches, first displaying three steps for everything, then removing the icons entirely.Once the new client patches are rolled out and the clients are no longer expecting this information (and old versions of the apps won't even run without upgrading, which just started happening today), they roll out server-side changes to reduce the amount of information available, including lowering the nearby radius.Somewhere in there they also take additional steps to send C&D to mapping clients and attempt some kind of IP throttling and/or blocking, and PokeVision shuts down.At some point in the future, Niantic refactors the existing API to do the nearby Pokemon calculations entirely on the server, so all that is sent to the client is a list of Pokemon with step counts, as well as the exact coordinates of Pokemon that are actually within action range and should be displayed in the world on the app. This is going to be hard to do and will induce a lot of load on the server, and will significantly increase the frequency with which this API call needs to be made.We are unfortunately somewhere right after step #6, which is pretty much the worst place to be, since the existing Pokemon finding system has been shut down and the new server-side one has yet to be programmed and deployed. But I have faith that it will come back in the future, once the technical challenges of doing it are solved. I suspect that it is one of the biggest priorities on Niantic's plate right now. I just wish Niantic communicated better about it. I think we'd all be happier if, instead of having all this uncertainty floating around, they simply made some statement to the effect of "The existing system for tracking nearby Pokemon was being abused in ways that were detrimental to our intended balance for the game, so we have temporarily removed it until we are able to code up a replacement that does not have the same vulnerabilities."UPDATE: Please see the discussion in the comments. I was wrong about some of the details in this post. Unfortunately, based on the corrections from others, I'm now more pessimistic about how quickly we'll get some kind of functional in-game tracking system back. via /r/TheSilphRoad http://ift.tt/2aFwMUl
"I've figured out what Niantic's plan is with the removal of steps and blocking of mapping apps, and what comes next" "I've figured out what Niantic's plan is with the removal of steps and blocking of mapping apps, and what comes next" Reviewed by The Pokémonger on 00:12 Rating: 5

No comments

Hey Everybody!

Welcome to the space of Pokémonger! We're all grateful to Pokémon & Niantic for developing Pokémon GO. This site is made up of fan posts, updates, tips and memes curated from the web! This site is not affiliated with Pokémon GO or its makers, just a fan site collecting everything a fan would like. Drop a word if you want to feature anything! Cheers.