変数の宣言をオブジェクトで行うことが義務付けられたら組める処理に大きな制限が掛かってしまうよ……

それはさておき、GameMakerではオブジェクト自体がクラスだから、
多少変態実装ながらも、インスタンスを生成してクラスや構造体として使うということも可能

必要になったらインスタンスを生成、不要になったら破棄。他の言語におけるクラスの扱いと一緒