SKYPIDAR, 
 gen_world. Create: 
 Код
 
 grid_width=10; grid_height=10; 
 stepx=32; stepy=32; 
 gridWorld=ds_grid_create(grid_width,grid_height); 
 //Инициализация 
 var rand,obj,rand_image; 
 for(W=0;W!=grid_width;W+=1) 
 { 
       for(H=0;H!=grid_height;H+=1) 
       { 
           rand=irandom(10) 
           if (rand mod 10 ==0) 
           { 
               rand_image=irandom(Cell.image_number) 
               ds_grid_set_region(gridWorld,W,H,W+3,H+3,rand_image) 
               W=W+3; H=H+3; 
           } 
           else 
           {    
               rand_image=irandom(Cell.image_number) 
               ds_grid_set(gridWorld,25+W*stepx,25+H*stepy,rand_image) 
           } 
       } 
 } 
 //Создание 
 var current_cell; 
 for(W=0;W!=grid_width;W+=1) 
 for(H=0;H!=grid_height;H+=1) 
 { 
       current_cell=ds_grid_get(gridWorld,W,H) 
       obj=instance_create(25+W*stepx,25+H*stepy,Cell) 
       obj.image_index=current_cell; 
 }       
 
 Еще тут есть такой момент что может не распознать Cell.image_number 
 Это потому, если нет объекта клетки в комнате, поэтому и невидит 
 Код не проверял, но логика вроде понятная. Я бы сказал элементарная 
 Если что не понятно пиши)