2.5D = 2D gameplay with simulated depth (parallax, scaling, layering). GameMaker excels at this. Here's a practical framework:
// Create Event
depth = -y; // Higher on screen = lower depth = drawn on top
depth draw in front.depth = -y + offset for multi-tile objects.
// Create multiple background objects (obj_bg_far, obj_bg_mid, obj_bg_near)
// Step Event (each)
obj_bg_far.x -= 0.25; // Slowest
obj_bg_mid.x -= 0.5;
obj_bg_near.x -= 1.0; // Fastest
x when off-screen.draw_background_ext for scaling/tiling control.
// Step Event
var scale = 1 - (y / room_height) * 0.5; // 1.0 at top, 0.5 at bottom
image_xscale = scale;
image_yscale = scale;
light_define_direction(), light_define_point() — simple, vertex-lit.// obj_player Create
depth = -y;
hsp = 0; vsp = 0;
grav = 0.5; jump = -10;
// obj_player Step
hsp = (keyboard_check(vk_right) - keyboard_check(vk_left)) * 4;
vsp += grav;
if (place_meeting(x, y+1, obj_solid) && keyboard_check_pressed(vk_up)) vsp = jump;
x += hsp; y += vsp;
// Collision resolution omitted for brevity
// obj_bg_far Step
x -= 0.3;
if (x <= -sprite_width) x += sprite_width * 2;
// obj_bg_mid Step
x -= 0.7;
if (x <= -sprite_width) x += sprite_width * 2;
layer = "Instances_Far" etc.camera_create_view with camera_follow for smooth tracking.Start simple: Depth + parallax → scaling → shadows. Iterate visually. 2.5D is an illusion—sell it with consistency.