@Yking
well, there are many ways. I would probably use a bitmap (or more than one) as world data holder and a shader to paint the screen. But you might use 'draw_quad' or 'draw_obj' inside two nested 'for' loops instead. Imagine your project window fits a rectangle of 32x24 tiles, the world is defined in a bitmap called 'bmpWorld' and the tiles are arranged in an array so one channel of the world bitmap determines the tile. You might paint the screen as follows:

Code:
var _format = bmap_lock(bmpWorld, 0);
var _posX = 0;
for (; _posX<32; _posX+=1) {
   var _posY = 0;
   for (; _posY<24; _posY+=1) {
      var pixel = pixel_for_bmap(bmpWorld, player.x - 16 + _posX, player.y - 12 + _posY); // retrieve the pixel from the world bitmap
      COLOR _col;
      var _alpha;
      pixel_to_vec(&_col, &_alpha, _format, _pixel); // transform the pixel to a color vector and alpha value
      draw_quad(bmpTiles[_col.red], vector(_posX*tileSize, _posY*tileSize, 0), NULL, vector(32, 32,0), NULL, NULL, 100, 0); // draw the corresponding tile
   }
}