IITC-CE / ingress-intel-total-conversion

intel.ingress.com total conversion user script with some new features. Should allow easier extension of the intel map.
https://iitc.app
ISC License
284 stars 110 forks source link

Load intel map using the new, optimzed method? #376

Closed mxxcon closed 4 years ago

mxxcon commented 4 years ago

Niantic today announced that they released an update to (stock) intel map making it load much much faster https://community.ingress.com/en/discussion/11611/dev-diary-new-intel-map-rendering-algorithm unnamed

To me it seems like IITC-CE is still loading as usual. Does IITC-CE take advantage of this new optimization? If not, please consider implementing it.

johnd0e commented 4 years ago

IITC was always faster than stock. But it seems that after recent optimization loading speed is comparable.

Feel free to make your own measurements.

McBen commented 4 years ago

They improved server cache and (maybe) client draw algorithm. Protocol wasn't changed.

mxxcon commented 4 years ago

Developed in 2012, the general algorithm used by the original Intel Map loaded data in “chunks” rather than all at once to try and reduce initial loading times. The new Intel Map rendering algorithm improves upon the original by changing how we define each “chunk.” Mobile phones in 2020 are much more performant than the average hardware available in 2012. We now load as much data as possible within a time window versus a set number, which allows the algorithm to adapt to the CPU performance of each Agent’s device.

The way I understand his explanation old stock intel and by extension IITC request the map in fixed "chunks". Whereas as the new intel map requests as much as your cpu can handle in a single frame(16ms?). It seems like more than just drawing optimizations, but how the client gets data from the server...?

MysticJay commented 4 years ago

The algorithm requires that the intel-servers copy the requested data from the game-server first. the game servers are those that the Ingress-APP works on.

If you access an area which is rarely show in IITC or STOCK the intel-servers can not be very fast, but if you do a reload of the same area that is pretty fast.

McBen commented 4 years ago

how the client gets data from the server..

  • client -> server : getEntities [list of tiles]
  • wait .. previously...wait long
  • server -> client : [tiles data]
  • render

'render' was never a real problem in IITC.