Thanks to putting in a little time on the weekend, I got this week off to a roaring start with 517's movement overhaul. Things have been popping pretty well ever since, except for Wednesday which was basically a completely lost day. Don't ask.
So what's new so far in 517? Well, the new Slide() and Jump() procs are in place, and Move() will call one of those by default based on step_size and whether you're staying on the same Z level. I can basically completely jettison the old Move() code, I think. Unfortunately I discovered that the ultra-hacky movable.Move(area) routine is gonna have to stay the way it is, but I think that's okay. The important thing is that the regular Move() can go, and hoo boy am I looking forward to ditching it.
I've introduced one new reciprocal proc, Bumped() which is the partner to Bump(), but other reciprocal procs like the counterpart to obstacle.Cross(mover) will probably get a Recip- prefix. Apparently that's a thing in other languages so people will be familiar with it, but more to the point I couldn't come up with a consistent naming scheme because Cross and Uncross was given such lousy names (by me) to begin with. I mean I know I workshopped those with Tom, but if I had it to do all over again I'd say CrossBy(). Hindsight's a killer.
The really cool thing this new sliding introduces is a new proc called Escape() and its after-movement partner Escaped(). (I couldn't think of a better name. Not for lack of trying.) This is essentially what you would intuitively expect Uncross() to do, except Uncross() acts when the mover is looking to completely separate from an object it overlaps; Escape() kicks in when a mover is looking to first move beyond that object's bounds from the inside. I think this has a lot of potential uses, especially in conditions where blockers used to be needed to prevent movement.
And, I'm adding direction arguments to all of these movement procs. Bump() gets a direction, Enter() gets a direction, Uncross() gets a direction, you get a direction. This also means you're gonna have a much easier time implementing wall sliding.
Testing's been going well, but I have more features coming down the pike before I even think of moving on to the first phase of the renderer overhaul. 517 is gonna be epic, people.
Thanks once again to all of the BYOND Members and to the regular subscribers on Patreon and SubscribeStar who keep this train rolling.
We'll make it out of this crazy month soon enough, hopefully with better weather. I still also have a few things to do I've been putting off, so it'll be a rough few weeks yet. See you on the other side, I hope.
Copyright © 2025 BYOND Software.
All rights reserved.