I have realize that the times between zones in VV always take the same time to load. No matter if you are entering a new zone, if you have entered it before or not.
Based on what other games with Real time does, even if they are not linked to the blockchain. Re-load the map each time is not a good approach. Even more for such a big game!
They use to have a local cache with how the world, graphics, and buildings look(maybe a huge JSON. I dont know how devs manage this at the moment).
Idea of steps to achieve this:
  • Save the current map/buildings/data on cache when you log in. All the data possible that "may" not change.
  • Add a timestamp to each map zone(arcadia, boreas...) which updates each time anyone saves/updates a new building.
  • With that data we can compare the local stored data with the "last building modification". On that way you know if u need to download map again. if the map dont need an update you will save A LOT of time.
  • This could be optimized a lot saving timestamp for each plot and compare all of them. It should not be hard to have a map of <Timestamp, Plot> and download individually only the updated plots data. Instead of all the map each time.
I dont know how this is approached right now. But If we would have an API that gives us something like
getPlotData(plotId)
I would see something like:
  • After log in, download only the timestamp of last modification of all the plots from the zone you are starting.
  • Match them with the ones in cache, and remove the ones that match. On that way we have now the IDs of the plot which were mutated since we went online last time
  • Download only those plots and update the world(to even better performance this could be done on background while the game is already running) Think about World of Warcraft. When you go to a huge new zone, the first time you see yourself and a lot of assets are missing or changing during the first seconds.
I have multiple ideas of how to achieve this. Feel free to reach me in Discord! Thanks for all your work!