I built this engine to handle a very large tile map for a retro game I am making. The example works in GameMaker: Studio as well and should work in older GM versions. The idea here is to only re-render the tile map when any tiles change or at the end of the month or when the camera moves. It can handle a very large number of tiles the demonstration runs 250x250=62500 tiles at a pretty solid framerate, slower in Studio of course.
Download:
https://www.dropbox.com/s/c93v5pcur2ougwf/tilemap.gm81Size: 14.39 KB
Enjoy!