Sory że odświeżam, ale niedawno też miałem taki sam problem ;)
Jak masz mało obiektów, np naraz ci rysuje ok 20-30, to nie ma co optymalizować, ale jak np. pokój ma powyżej 1000 obiektów, to OBOWIĄZKOWO trzeba... Przykładowy kod:
GML (Step bohatera)
{
instance_activate_all() // Aktywujemy wszystko w viewie
instance_deactivate_region ( view_xview , view_yview , view_wview , view_hview , false ,true ); // Dezaktywujemy wszystko, co znajduje się poza viewem
instance_activate_object(obj_ctrl); // Aktywujemy obiekt na stałe, nie wazne czy jest w viewie, czy nie
instance_activate_object(obj_quest); // Tu tez
instance_activate_object(...); // Tu tez
...
}