Me podrian decir ustedes mismos para que sirven los surfaces y me podrian dar ustedes mismos una explicacion para hacer iluminacion basica con sprites utilizando surfaces o a base de una pagina en español y que explique bien pls, por que he visto unos videos en youtube pero no entiendo NADA por que no explican para que sirve cada cosa.

Hola Amigo !! te doy la solucion facil y rapida... vamos mira.

crea un objeto llamado: obj_lighting (ESTO CREA LA SOMBRA PARA PODER PONER LUZ)
crea un objeto llamado: obj_lamp (ESTA ES LA LAMPARA QUE ALMBRARÁ) por default xD

abre el obj_lighting, ve a "event create" y pon un Execute code: escribe lo siguiente.

( ESTO ES PARA CREAR LA SOMBRA )
globalvar light;
light = surface_creative(view_wview+0,view_hview+0)

ahora ve a "step event" otro execute code y escribe:

( Esto es la configuracion para que la sombra aparesca en el Escenario)
surface_set_target(light)
draw_rectangle(0,0,view_wview+0,view_hview+0,false);
surface_reset_target();

ahora pon un "event draw" y agrega otro Execute code: escribe esto:

( Esto es para que se dibuje mutuamente por todo el resto de juego y la camara que te sigue)
draw_set_blend_mode(bm_subtract);
draw_surface(light,view_xview+0,view_yview+);
draw_set_blend_mode(bm_normal);

Listo! ahora abre obj_lamp y pon esto en "end Step" en un execute code:

size = 256;
draw_set_blend_mode(bm_subtract);
surface_set_target(light);
draw_ellipse_color(x-size/2-view_xview,y-size/2-view_yview,x+size/2-view_xview,y+size/2-view_yview,c_white,c_black,false);

surface_reset_target();
draw_set_blend_mode(bm_normal);

Listo !! ahora pon 1 obj_lighting en el nivel y los que quieras de obj_lamp y verás..

cuando crees el room ponle de velocidad "60" para que tenga mejor rendimiento!

Por Pregunta sobre este tema o otras dudas que tengas, te hago saber que me llamo Luiber Extrenzas en Facebook, AGREGAME! yo aqui te dejo el Link, cuando quieras, a las ordenes (Y)

https://www.facebook.com/profile.php?id=100008220635391