Dibuja el piso con primitivas, con un script como este:
[gml]
var a, b; //inicio, fin
a = floor( view_xview[0] / 16 );
b = ceil( (view_xview[0]+view_wview[0]) / 16 );
draw_set_color( c_white );
draw_primitive_begin( pr_trianglestrip );
for( i=a; i<=b; i+=1 )
{
draw_vertex_color( i*16, room_height+1, c_white,1 );
draw_vertex_color( i*16, path_get_point_y(argument0,i), c_white,1 );
}
draw_primitive_end();
draw_set_color( c_ltgray );
draw_primitive_begin( pr_linestrip );
for( i=a; i<=b; i+=1 )
{
draw_vertex( i*16, path_get_point_y(argument0,i) );
}
draw_primitive_end();
[/gml]
Esta es la path

Y este es el resultado

En el script, la altura del piso se obtiene de los vértices de la path, si quieres dibujar una path suavizada, entonces la lectura se debe hacer en puntos más cercanos. Puedes usar primitivas con textura para darle más detalles al terreno.
[gml]
var a, b; //inicio, fin
a = floor( view_xview[0] / 16 );
b = ceil( (view_xview[0]+view_wview[0]) / 16 );
draw_set_color( c_white );
draw_primitive_begin( pr_trianglestrip );
for( i=a; i<=b; i+=1 )
{
draw_vertex_color( i*16, room_height+1, c_white,1 );
draw_vertex_color( i*16, path_get_point_y(argument0,i), c_white,1 );
}
draw_primitive_end();
draw_set_color( c_ltgray );
draw_primitive_begin( pr_linestrip );
for( i=a; i<=b; i+=1 )
{
draw_vertex( i*16, path_get_point_y(argument0,i) );
}
draw_primitive_end();
[/gml]
Esta es la path

Y este es el resultado

En el script, la altura del piso se obtiene de los vértices de la path, si quieres dibujar una path suavizada, entonces la lectura se debe hacer en puntos más cercanos. Puedes usar primitivas con textura para darle más detalles al terreno.