Remember Pokemon GO when it launched? Remember how almost everyone in the world was walking around catching imaginary creatures? I do!
Me and my little girl would go on ‘pokewalks’, which was actually a great way to spend time together doing something fun, and getting some good exercise and sunshine in the process. There was a place near a local river that had three ‘pokestops’ right next to each other, we frequented this spot, accompanied by picnics and snacks of course!
Anyway… It didn’t take long before I was writing programs for users of the game to benefit from. The first thing I wrote was a simple website featuring a google map. Users of the website could upload data for where they had found pokemon, and give information on its stats and spawn frequencies. The website was actually getting a lot of use, having over 1000 user submitted pokemon spawns within a day or two of launching.
I think the main reason the website had such an initial success, was due to my packaging it as an app for the android store, as well as it being an online web app for regular internet users. My app was actually one of the first pokemon go map apps to hit the android store! I was also very proud of the app icon as I had made it myself. Normally I am very poor at designing art related items.
Unfortunately,a few days after my app launched, there was a massive upset. A team of people had figured out how to intercept the data being sent to/received from the pokemon go servers. This allowed for many similar ‘go-map’ type websites and apps; however, they were actually pulling real time pokemon location data and displaying it.
Niantic – the creators of pokemon GO – was not happy about this at all, and my app was forcibly removed from the app store along with many other similar apps. Some of these apps utilized the pokemon go servers, and others – like mine – only used user submitted data, and didn’t actually break any terms of service. But I guess that wasn’t of relevance to them…
When I woke up and seen that my LEGITIMATE app had been removed from the play store, I was not amused. I had put a fair bit of work into the app, and didn’t see any reason for the ban/removal. I understand why other apps might have been, due to breaking into the go servers and using their data to provide a service that was almost game breaking. But my service was all user submitted data, Niantic had no right to request its removal.
Being annoyed at Niantic, I decided to refocus my programming efforts and make something that actually did breach their TOS. They way I seen it, they were going to try stop my apps redistribution anyway, may as well make the best app I can before they do…
So, I made my very first game bot! And it was VERY clever… It was a simple node.js app that used the ‘pokemon-go-node-api’ module, which used a python script that created a proxy between you and the pogo servers. Using this module I was very easily able to get all data from a valid player account (required login credentials of course).
The bot itself didn’t look very fancy. It was a basic command line app that simply printed lines to show the bots activity. However, due to how I had set everything up, it was fairly clever. It was able to replicate a real human fairly well, at least in terms of how it ‘moved’ around in game (yes, the bot told the game server its ‘global position’, which was entirely programmed).
It was incredibly entertaining watching the bot at work. It would move around, automatically moving towards near pokestops, collecting their loot, encountering pokemon, perfect capture almost every time (purposely stopped it being constant), it would also ‘sort’ the pokemon in terms of ‘value’, where value was defined by the overall stats of the creature, and only the best of each poke would be kept. Or a few could be kept of the certain creatures I wanted to evolve etc. Automatic evolution was enabled, as was automatically discarding pokemon and items once a certain amount of requirement had been met.
The only feature I didn’t bother to implement, was automatic gym battles. I felt this would have been incredibly disruptive to legitimate players (if there even was any left at this point).
Once my bot was working without any issues or required improvements, I started working on a more GUI based application. The new application would not be a bot, instead, it would allow for players to perform helpful functions such as mass transfer of mons, and discarding of items.
Additionally, I felt all players would benefit from actually knowing how good a particular pokemon was. By default, there was 3 hidden ‘iv’ values (atk, def, stamina) that there was no way to find out in game. This could lead to a player spending hundreds of hours to catch and train a charizard or something, but then they waste all their time because it has low hidden stat values.
My app’s GUI wasn’t great at this point, but it worked. The login screen was pretty nifty as I did spend a fair amount of time on it. Overall I was pleased as the app allowed for users to do all the things I had planned, it was easy to navigate, and it gave a lot of options that the bare game did not. So, I allowed a group of friends who played the game to utilize the app. They tested it out and all feedback was positive…
However… Niantic had obviously caught wind of all the bigger projects online that were doing this kind of thing, such as the node API that both my bot, and GUI helper app used. They began the process of shutting them down, which led to multiple spin off projects, and a constant battle between Niantic, and the API developers. Every few days the API would stop working, and a few days later it would be updated and work again, then repeat. This became incredibly bothersome and destroyed a lot of the enjoyment I had for the project.
Then, the final blow came… I woke up one morning, and discovered that my main account, an 100% legitimate account had been banned. I received no explanation for the ban, and the strangest thing was – all my other accounts that were made specifically for the bots testing, had not been banned. They were under a completely different email as well, so who knows…
By this point I felt like there was nothing to be gained in the game. I wouldn’t have minded as much if it had been my bot accounts that got banned, I just couldn’t get why a legit account was banned. Anyway, I stopped working on these projects. I have no idea if the pokemon go API is still a thing, or even if pokemon go is! Does anyone actually still play it?
In retrospect I do not regret creating my apps. And I do not regret having put so much time into the game. I actually learned a lot of things from these projects, as well as from the behaviour of the games dev team: Niantic.
Creating my first full game bot was incredibly fun, and I learned a whole lot about how to program something that somewhat replicates human behaviours. I also learned how to calculate global co-ordinates and determine cardinal direction values from co-ordinate pairs (eg, point a is north of point b). I learned a little about proxies and how they can be used maliciously. I increased my experience with node js and the electron frameworks (which I love).
Most importantly, I learned how important it is for a games developers to listen to the players, and communicate with them. Niantic failed in this respect, very very badly. Players very openly discussed concerns, features they would love, and their feelings on Niantic themselves. Yet they, Niantic, simply ignored the players for a very long time. There was no daily updates on features being worked on, or even acknowledgement of features that needed attention. From my point of view, this is what led to the games overall demise. I mean, to go from how big it was, to what it is now, is an incredible difference. If only more was done for the players early on, I’m fairly sure a lot more people would have kept faith in the development team. Alas, it was not meant to be…
Not sure if anyone will enjoy, or benefit from this article, if you do, be sure to drop a like, share, or comment your thoughts below! ❤