I wrapped up the fifth module of Learn 2D Gamedev From Zero, which despite its name (“Loot It All”) was focused on collisions, some rudimentary physics interactions (collision layers and masking), and tweening.

I’ve never been diagnosed with any type of ADHD, but I definitely get inspired and feel pulled when doing tutorials, and sometimes that will drag my progress out. Task lists keep me on track, and I like that there’s a very specific progression in this course.

One of the things that pulled me was the tweening section. Tweening, or “inbetweening,” is the act of generating intermediate frames between two keyframes in animation. It happens in traditional animation, digital animation, and of course, in user interfaces.

As I was following the tutorial, which encouraged some experimentation, I had written two statements that executed a tween; a movement and a scale.

	tween.tween_property(sprite_2d, "position", Vector2(500, 400), 2.0)
	tween.tween_property(sprite_2d, "scale", Vector2(2, 2), 1.0)

I executed the script, but I had expected things to happen simultaneously, but instead the sprite moved, then scaled. I’ve gotten used to Node.js/JavaScript/TypeScript development with aschronous execution, and this felt procedural. There’s got to be a way, and there was: by RTFM (Read The Manual).

The Godot Tween Class documentation mentioned parallel, which did the trick. As I was poking around, I also learned about set_trans (my favorite so far is TRANS_SINE, but that could change).

So, I applied it, it worked, I was happy, and continued messing around with it, then got back to the actual course. Practically, it scaled and moved at the same time, and it looked smooth and slick. That’s stuff I’ll use later, to be sure.

The moral, I guess, is to focus, but allow for some practical distractions as long as you can get back on track. Tomorrow is pretty busy so I don’t have high expectations on progress, but Friday during the day is wide open. To infinity and be-SQUIRREL!