This is not "advanced" at all. If you are in a computer graphics course, this stuff comes within the first few weeks of lectures. I was in one and I know it.
The GMC is the only place where I see people struggle this much with radial bullet patterns and relative attachments, because everywhere else hierarchical transformation is a standard-issue technique. GML-only rookies have the misfortune of being brainwashed into believing this is difficult, and encouraged to manually apply lengthdir_x() and lengthdir_y() in ways that become unmanageable for more than one joint. They're being herded into gun fights with knives, and YoYo is left wondering why GM games have a "distinctive" look.
One thing I'm starting to dislike about the GMC is how liberally the "advanced" label gets slapped on essential, frequently used skills. Things like arrays, data structures, JSON, buffers and matrix/vector operations get this same kind of unfair treatment all the time, and only in here. It synthetically limits the growth of novices and is borderline slanderous. I'd request that you and other responders band together and help put a stop to this. If something shows up a lot in general development and is essential for independence, please CEASE AND DESIST from calling it "advanced" or "hard", and start calling it "basic".
\
It is the basics! 100% agree. To you and I, to any experienced users yes, linear algebra is the fundamental mathematics that underpins a lot of computer graphics.
However to someone who has issues using trigonometry in game code, matrices will 100% seem like an advanced topic when they look at it. I know hey seemed advance to me for the longest time.
In the context of GameMaker graphics programming, matrices are definetly an advanced topic. Its one of the last things that GM has to teach you. For me it was the last thing I learnt in GM before 'graduating' from gamemaker (or was it shaders, idk).
Even more recently I still learn new things about matrices. I think I only got an intuition for how rotation matrices work two/three years ago.
When I use the words 'Advanced' I don't mean to discourage, or otherwise infer that this is something that needs to be learnt once you are more experienced. What I mean is that it will require some ammount of learning. You need to learn some basic linear algebra, how model matrices work, what the different parts are, you can have inverse matrices, projections matrices, etc.
Then you also need to understand how they can be applied: you can apply them to individual points in code, or get the GPU to transform all the points, and so on.
Its a lot to take in!
All the way along your programming carreers you will be learning advanced topics. What's great is when those advanced topics become basics again. The trick is recognizing those advanced topics, because they are the onse worth aiming for!
I spent so long avoiding what I considered to be advanced, had I known those were precisely the things I had to learn next I would be a much better programmer today.
Don't be affraid to learn something that is too advanced. If it was too advanced, you probably wouldn't know it existed, yet.
[EDIT]
But, I see how now that people are probably in the same mindset as I was, avoiding learning anything advanced.
So, ill change my phrasing to this:
"It may seem advanced, but once you learn it it will be what you base your programming on. This is the next step"
It pretty much applies to everything you mentioned (array, data structures, json, etc.)