Объект игрока двигаем за мышкой, виды не используем (step игрока):
move_towards_point(mouse_x, mouse_y, <скорость>);
Противников создаём за границами комнаты. Если кораблик игрока условно движется вправо - значит противники должны двигаться влево, а создавать из надо за правой границей:
instance_create(room_width + 64, random_range(32, room_height - 32));
Чтобы игрок не мог убить противников - можно удалять пули на границах комнаты, для этого в событии other -> outside room нужно прописать удаление объекта.