Thanks! 
I’m so glad you think the download speed is fine.
I made the same thing in BlitzMax using the cURL module and it’s a bit faster.
But that might just be cause I don’t write the files to disk first.
By default it allows for a maximum of 8 simultaneous downloads, you can change this by changing MAX_DLS.
It also uses the 4 DNS servers Guild Wars 2 provides, I’m not sure that actually does anything though heh.
You can change that with MAX_DNS, but don’t go any higher than 4 since there’s no 5th DNS server for the tile service.
This example is a bit wasteful when it comes to actually rendering the map since it renders every zoom step ontop of each other.
So even if you’re at zoom level 4, it will render zoom 0, 1, 2, 3.
I do this because otherwise when you zoomed in there would be no images at all to display at that zoom level.