I have a pretty difficult problem on my hands. My 3D character moves through space and rotates. I do not know the angle of rotation at any given time, but I do have three X, Y, Z unit vectors serving as basis vectors for the character's coordinate system.

I see that in the Euler angle page on Wikipedia there are three formula for extrinsic rotation. My problem is that they do not seem to work in any manner whatsoever. Either my reading of that page misled me, or game maker does not use extrinsic rotation.

Do Game Maker's rotation transformations always rotate globally in 3D space, or does it use the current set of transformations and rotate around the current X, Y, or Z axis?


Game Maker Studio uses extrinsic rotations, as any 3D engine does. Intrinsic rotations are only functions which performs extrinsic transforms onto an object by moving it at the world origin and deleting any previous transform applied to the object.

In Game Maker Studio, any transformation is always relative to the (0,0,0) position. To perform transforms properly, you use the function d3d_transform_set_identity() to rotate and scale it, before translating it.

| improve this answer | |
  • \$\begingroup\$ So, it is not like matrix transformations, then? Because the way I understood, translating after rotating means something different than just translating? It changes the translation direction. \$\endgroup\$ – user64742 Oct 22 '16 at 0:09
  • \$\begingroup\$ There are matrix transformations too, standard functions allow you to do just certain things. If you use matrix transformations you can define your own matrices and perform whatever transform you want. You can find them in the official documentation \$\endgroup\$ – liggiorgio Oct 23 '16 at 21:21
  • \$\begingroup\$ Where? I've looked for quite a while and I cannot find anything in game maker about using matrices. \$\endgroup\$ – user64742 Oct 24 '16 at 15:14
  • 1
    \$\begingroup\$ Here you go, mate: YoyoDocs - 3D Transformations. At the bottom of the page there are matrix functions. \$\endgroup\$ – liggiorgio Oct 24 '16 at 16:58
  • \$\begingroup\$ I'll have to see if that works or not. The game I am modding might not have those functions. I think it mightve been upgraded to a newer version, but it was originally made in game maker 6._ so its hard to tell whats there at times. The game has a dialogue box pop up for emtering strings executed vie execute_string().Thanks though. :) \$\endgroup\$ – user64742 Oct 24 '16 at 17:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.