Lordis, każdy obiekt ma swój własny identyfikator/numer przy pomocy którego możemy się do niego odwołać.
Jego nazwa to w pewnym sensie tylko jakaś tam stała przechowująca ten identyfikator.
Gdy tworzysz obiekt w standardowy sposób:
GML
instance_create(200,34, moj_obiekt);
To do funkcji nie wysyłasz wcale stringu "moj_obiekt". Wysyłasz stałą przechowującą jakiś numer identyfikacyjny.
Gdy tworzysz nowy obiekt ma on automatycznie nadawaną nazwę object00, object01, object02 i tak dalej. Ten numer na końcu to właśnie jego numer.
Tak wiec do zmiennej globalnej zamiast przypisywać string będący nazwą obiektu:
GML
global.a="moj_obiekt";
Po prostu przypisz jego numer:
GML
global.a=moj_obiekt;