8-Bit Warrior Games + Design + Tutorials + Random

25Nov/126

TweenGMS – GameMaker: Studio Tweening Engine

TweenGMS is a feature-rich tweening engine for GameMaker: Studio which is both easy-to-use and flexible. With nearly 3 years of development, it offers many essential and advanced features powered by an optimised codebase.

Quickly improve the look of your games by tweening movements, fades, rotations, animations, paths, stats, and much more!

Available on GameMaker Marketplace:

TweenGMS Pro / TweenGMS Lite

HTML5 Demo

[ Features ]

  • Fire-and-forget tweening
  • Step and seconds(delta) timing
  • Time scale contol (global and per-tween)
  • Play modes (once,bounce,patrol,loop,repeat)
  • State control (pause,resume,stop,finish,reverse)
  • View, tile, path, background, and data structure support
  • Automatic memory and persistence handling
  • Advanced callback system
  • Custom variable easing
  • Delayed tweens
  • Control groups
  • Heavily optimised
  • Clean and organised
  • Supports all platforms
  • Examples and game project included
  • And more...

 

Original Free Version  (Unsupported)

Twitter Dev Log

===

If building HTML5 games with GameMaker: Studio, be sure to check out JCHTML5, which includes TweenGMS, to help make things even easier when developing for the web.

Comments (6) Trackbacks (1)
  1. Wow, that’s exactly what I was looking for! I’m new to gamemaker and used TweenLite for actionscript, so I was really missing the tweening here! The existing gamemaker-tween-plugin I found used now-obsolete functions (because of iOS code-execution-restrictions).

    I’m really happy that you found a way (script_execute) to get and set the sprite values dynamically!

    But here my question: You mention that it’s an early state and there may be bugs. Can you tell me what I have to be careful with? I basically want to tween objects in the menues (title image, buttons, backgrounds).

    Thanks for your great work!

    – Dennis

    • Hey Dennis,

      I’m glad you find the system useful. I know that its saved me lots of time since I created it.
      It should be pretty stable for things like menus. You shouldn’t experience any problems when simply moving around UI elements and such.

      Bugs may be more likely to surface with HTML5. For example, I have the system set up so that persistent objects can continue tweens between rooms, but with HTML5 there seemed to be an issue which canceled the tween when a room transitioned. I believe this was caused due to a bug in GameMaker and may already be fixed, but I’m not certain.
      Also, Tweens in HTML5 may seem a tad more rigid, since float values in HTML5 use 4 bytes instead of 8 like the other modules. Typically its fine, but it is something to look out for and tweak when needed. And overall, since HTML5 is still quite new, various web browsers might now play kindly with the system.

      Since GameMaker doesn’t support pointers or references, if you want to tween custom variables, you’ll need to add custom scripts as seen in the folder [Variable References -> Standard].
      For the tweening system itself, you really only need to create setter scripts containing -> myVar = argument0; and pass it as an argument to TweenCreate();

      Other than that, be careful as to not accidentally deactivate the sharedTweener object with such functions as instance_deactivate_all().
      If you do, make sure to reactivate it right away and pause any tweens for deactivated objects and resume them when they are reactivated. But, I must note that the pause/resume functions may not work 100% as intended. These are some of the things I want to clean up further and make more user friendly. Lastly, make sure to always clean up all tween references in the Destroy event of each object.

      Anyhow, go with it and see what works for you! If you find anything that seems rather buggy, feel free to let me know about it and I’ll see what I can do :)

      -Stephen Loney

    • I just wanted to let you know that I have heavily updated my tweening system for GameMaker.
      It is now more efficient and should be more stable.

      It also has a few extra functions, such as the ability to designate tweens to specific groups which can be activated/deactivated.

      The latest version is 0.85

  2. This looks very awesome, however I am receiving an error in my Create Script:

    Push :: Execution Error – Variable Get -1.shared_Tweener(100070, -1)
    at gml_Script_TweenCreate (line 5) – if (instance_exists(shared_Tweener) == false)
    ############################################################################################
    ——————————————————————————————–
    stack frame is
    gml_Script_TweenCreate (line 0)
    called from – gml_Object_oButton_Create_0 (line 9) – instance_create(-10000, -10000, shared_Tweener);

    I think I have the extension installed correctly?

    Thanks.

  3. And….now I feel dumb…for not reading the instructions. Doh!

    Everything is working as documented — sorry about that.


Leave a comment