A while ago, I started working on a system for drawing lots of tiles, I mean LOTS of them. Thesystem has minimal performance impact no matter whether the view is zoomed in, or zoomed way out so that all the tiles are on the screen at once.
Now you can see this system in action. see the system in action for yourself. Let me know if this topic interests you, and especially let me know if you download this and it doesn't work on your (windows) computer!
The tile set is something I found on yoyogames official resources.
This demo comes with a map that contains 16,777,216 tiles. The system can support larger (as well as smaller) maps.
Single runtime windows .exe (2.07MB)
WASD -- move view.
QE -- zoom view. (you can zoom WAY out)
LEFT CLICK -- change tile (left click in the main window)
RIGHT CLICK -- select tile (right click in main window or on tile set)
ARROW KEYS -- select tile (by scrolling row / column in tile set)
•There is a tiny misalignment in the tiles, which causes a barely noticable disjunction at their edges (working on that)
•There is a small distortion when viewing out which is mainly visible when there are large areas containing a single type of tile.
•There is a problem with the way transparencies are sampled in the tile set when scaled down. I could use help with that if anyone thinks they can shed light on that problem.
The system uses a shader to cause each pixel of the map that is drawn to the screen to look up which tile it belongs to as well as its position within the tile and the orientation of the tile. Performance is dependent pretty much only on the size of the map on the screen, and so there is barely any performance impact even if millions of tiles are visible at once. Any tile may be flipped along the x and or y axes as well as rotated at any 90-degree angle. The only serious limiting factor on the size of a map is the ammount of memory it takes in ram / vram. I've tested maps as large as 67 million tiles with good results.
Edited by flyingsaucerinvasion, 22 March 2016 - 10:04 PM.