Pamiętaj, że każdy obiekt ma swoje zmienne, które są ustawiane bez względu na to, czy ich używasz czy nie, jak np. x,y, x_start, image_speed, mask_index, solid, persistent, visible, parent_object itp. Wiem, to tylko kilka bajtów, ale w kazdym stepie, GM przetwarza te zmienne dla GMLa, a jak wiadomo GML zbyt optymalny nie jest. Do tego dla każdego obiektu sprawdza kolizje i wykonuje eventy (create,step, draw) bez względu czy jest tam kod czy nie. To znów trwa naprawdę chwilkę, ale jak wspomniałem - interpretacja GML nie należy do najszybszych i kazdy kolejny obiekt niestety delikatnie spowalnia grę. A zwłaszcza event draw.