Niantic recently released Update 0.83.1 for Pokemon Go. The official changelog from the development team didn’t give the full list of improvements and fixes, but thanks to our friend at The Silph Road who did a full teardown of the latest update we now know what were the improvements and fixes Niantic didn’t want us to know about. Before moving out to the details provided by The Silph Road, let’s first take a look at the official Changelog of Patch 0.83.1 that went live on Pokemon GO website immediately after the release of the update.
v0.83.1 Patch Notes
- Added support and made optimizations for the iPhone X screen resolution.
- Removed support for devices running iOS 8.
- Resolved a bug causing error banners to remain visible until the app is restarted.
- Resolved a bug that prevented Trainers from powering up Pokémon to their max CP.
- Improved load times when you open the app.
- Various bug fixes and performance updates.
And here’s the full teardown of patch v0.83.1 from The Silph Road:
1. App Project Upgrade to Unity 2017.1 (For Real This Time)
v0.81.1 (two version ago) saw Pokemon GO upgrade to Unity v2017.1. Then we immediately saw an unprecedented roll-back. This time, it looks like v2017.1 is back. This means performance improvements and, perhaps most notably, audio fixes for the volume management issue that plagued the older Unity3d engine versions.
2. New Asset Loading Optimizations
It appears a sweep of optimizations was added to this APK version in regards to the loading and requesting of assets. It appears that Pokemon sprite caching may have new optimizations such as LOAD_ONLY_IF_DIFFERENT. Additionally, new caches have appeared for the Pokedex and inventory.
There is also an interesting new addition regarding SYNCHRONOUS vs ASYNCHRONOUS loading (which, for those unfamiliar means waiting til a request comes back before proceeding vs not waiting up and letting it come back whenever it comes back). Assets appear to have a loading policy attributed to them now. See if you notice any differences in the Pokedex or other asset loading behaviors, travelers!
3. Bootup Load Time Optimizations
As identified in the patch notes, we do see several tweaks to help reduce the apps boot-up time – including new BootMetrics that appears to track retries, the time spent before loading the map, and the logo and splash screen times. We’re glad to see these being monitored, and hope they have been reduced across all devices. Give it a try, and see how it performs for you, travelers.
Quality of Life Fixes
4. Accidental Button Press Fix
A new addition has appeared that apparently aims to reduce accidental button pressing. This may simply be a time delay between double taps. See if you can trigger it, travelers.
5. New Buddy Pokemon Test Tool
This one was a surprise. Interestingly, there appears to be a new internal tool for testing different buddy Pokemon out, complete with a GUI to swap between forms, genders, and shiny status. No idea why this tool was necessary – but it may be an internal way to test out the Gen III pokemon and make sure they all look and work great as buddies.
These are both grasping at straws a bit, but we’d be remiss if we didn’t mention them. Buckle up!
6. New Import: Google S2 Geometry Library
A new library has appeared in the APK that contains many functions useful in S2 cell calculations and lookups. S2 cells, for those unfamiliar, are a Google invention for spatial indexing – particularly useful for ‘mapping’ space on the globe to a 1-dimensional index, which allows for very fast retrieval.
Niantic has sliced the globe into 2d “S2 cells” which enable them to rapidly and inexpensively query and catalog locations for anything on the spherical surface of the planet (think spawnpoints, etc).
What’s interesting about this inclusion is that it’s just been included now, after having been used on the server-side application since the game’s inception.
What might Niantic need client-side S2 cell geometry for?
We don’t know yet. But for those interested in digging into this library, here’s a java implementation. The DataStructures and MultiMap packages were the ones included. This could turn out to be nothing, or it could hint towards future functionality. But that it’s been added to the clientside APK has us interested.
7. Caching … Battle Parties?
Amongst metadata regarding enabling local disk caching, an interesting naming decision was made:
We couldn’t help but be reminded that in v0.67.1 the concept of “Battle Teams” were added to the APK, complete with the ability to name teams and error messages when your team had a fainted member and you tried to use the team.
Could this maximum allowed ‘Battle Parties’ be a sign that this feature isn’t fully in the icebox? It’s not the exact verbiage (though this is not the first time Niantic would have renamed things in the APK. See forts = gyms, and troy disks = lures). And why ‘local’ battle parties? We don’t have an answer at this point.
But the thought gets us excited; battle teams would be a fantastic quality of life improvement, and fun new dimension for hand-picking and building our counter squads up for Raiding and general gym play. We’ll have to wait and see what future APKs hold!
Looks like there’s some exciting things to come! Click here to read The Silph Road’s “Parting Thoughts” on the teardown findings.