Last Friday we were streaming a bit of work on the action RPG series. In doing so I decided to see how quickly I could throw together a tutorial on something that was asked about in the chat. Ended up with this video. Don't get too used to this. It's not how I select topics but I did find it a quick and useful stopgap! Might throw these out from time to time when working on bigger projects.
About the RPG itself, we're making use of some new GMS2 features like room inheritance that hasn't really been touched on by my videos before but that can apply pretty widely to all projects. I think I'm finally, finally happy with the fractional movement stuff (for now), and the health UI and room transitions are functional. The latter needs some thinking about how exactly I want to deal with post-transition control. What exactly should happen when I touch a transition space, when should the player have and not have control, etc.
Also there has been some internal shifting around of things in the game management objects. I have an oGame object which notoriously in game jams I've used as a generic dumping ground for code I didn't want to properly structure or organize. Here I'm trying to keep it to truly meta & global operations. Global definitions, application settings, etc. Then the object creates a series of manager objects that look after their own things. I've also opted to store their names in global variables rather than rely on the object name when accessing them.
What I mean by that is often when we want to access the player, we do something like "with(oPlayer)" right? And if there's only one of the player object that works fine because GameMaker pulls the "first" (???) instance of the object it finds. This isn't exceptionally great practice so where we can I'm trying to have us store the precise ID of the instance we want rather than making gamemaker do an entirely unknown operation in order to find it from an object name.

"i" as a prefix for an instance name is a new one for me, we'll see if I stick with it. Consistency is harder than it sounds.
I feel I should always clarify, when I say something isn't exceptionally great practice. I mean that exactly. It isn't great practice. Doing "with(oThingIOnlyEverHaveOneOf)" is demonstrably functional and fine. Your project won't fall apart or become unshippable if you do this. I do it all the time. I just want to start to subtly incorporate more good habits and ways of thinking in my tutorials where I can.
Finally in the last few minutes of the livestream on Friday I also added a couple new sprites in preparation for working on liftable entities including this tiny explosive friend.
$20 folk can grab the latest .yyz from here https://shaunjs.itch.io/shauns-action-rpg and see some of this stuff coming together.
Reminder that the password to view the page is LulusAdventure, (I know this isn't exactly a secure post but it's only passworded to keep it "unlisted", rather than totally private.)