Saludos
Existen muchas formas de hacer movimientos en GM, puedes hacerlo tanto con las variables de "hspeed" "vspeed" o con las posicion "x y" del objeto, te recomiendo mejor la segunda ya que se empieza hacer mas facil
Primero seria una gravedad, para eso usarias algunas variables que gestionen la fuerza con la que se caera y una variable que contenga la velocidad vertical.
Luego esta el movimiento para los lados que eso lo harias igual que con la gravedad, pero en modo horizontal
hsp = 0;
vsp = 0;
vel = 4;
grav = 0.6;
pixelCheck = 0.1;
vsp += grav;
if (vsp > 8) vsp = 8;
repeat(vsp * 10) {
if place_meeting(x, y+sign(vsp)*pixelCheck, obj_solid)
vsp = 0;
else
y += sign(vsp)*pixelCheck;
}
var move;
move = (keyboard_check(vk_right)-keyboard_check(vk_left))
repeat(move * vel) {
if place_meeting(x+move, y, obj_solid)
hsp = 0;
else
x += move;
}
Esos repeat son para chequear colisiones y para moverlos pixel a pixel, de esa forma es facil.
Por ultimo si quieres hacer un salto... Bueno ya depende de como lo quieras, como eres un novato te sugiero probar el metodo facil
if place_meeting(x, y+1, obj_solid)
vsp = -10;
Con eso creo que ya tendrias lo basico en el movimiento de un objeto, bueno siempre hay mas metodos que probar para hacer movimientos, hay distintas formas de hacer colisiones y movimiento, eso ya depende del tipo de juego que hagas y de como lo quieras hacer, el metodo que te doy es para un simple plataformero