ID:2568912
 
This has been a very interesting week for development, looking into some dusty parts of the engine and in some cases making surprising improvements. It all started with an issue that might be more bug report than feature request, even though the behavior that existed was intended: gliding was synced to client ticks rather than time, resulting in some jerkiness. I wasn't sure how easy that would be to change, but thanks to client.fps already having some hooks in the gliding code, this was easier than I anticipated. The result of this is much smoother gliding that looks more like what you'd get out of animate().

I also did some cleanup of the rendering process because it was a bit of a nightmare in some spots; this might potentially translate to small rendering performance gains, but I don't know for sure. What I did was move all the client.color handling code out of the renderer and into the pre-render. Before, the rendering code had some awfully convoluted logic regarding client.color and how it interacted with matrices, but now that's all vastly simplified.

That change came out of another refactor I did, where two structures were using special bitflags for a subset of appearance_flags, but the logic to set those individually instead of just copying the whole appearance_flags value like a sane person was ridiculous. I had if() checks for six, I kid you not, six different flags. That made marginal sense when a lot of those flags were first introduced, but as they grew it became clear a massive simplification was in order. The downside is a lot of the affected code doesn't look as nice, but the changes will have no impact on performance in most places and a slight positive impact in some high-volume routines.

I don't think I'm out of the woods with topological sorting after all, as NSBR has reported discovering another hang case. Maybe it's not the topological sort at all, but we'll see. What I'm sure of is that I closed the hole that was causing the problems before, so this must be something immensely more complicated. Either that, or there's some different screwed-up logic in 513.1522 that's catching an infinite loop, and I kinda hope it's the latter.

Also on my radar is a bug involving some icon corruption. I've been given some really good clues to go on even though I don't have a test case, but this means delving deep into the code looking to score on a hunch.

My great thanks once again to out to all of you who've helped support BYOND lately via Membership, Patreon, etc. Thanks for keeping development going strong, and I'm always working to reward you with better performance, bug fixes, and of course juicy new features. Don't forget we're closing in on 513 stable, so get your 514 brainstorms revved up.

Mother's Day is upon us, but of course a lot of plans for that are completely out the window so who knows what to expect or how to handle it. You know what my mom really likes as a gift? Movie theater gift cards. So, speaking of needing to brainstorm...
KISS for the Win!

514? "The Game Designers Update"

New Feature "New Map Formats":
...Mode 7
...Hexagonals(Both Types)
...Brick Style Grid(Square and Rectangles)
...FPV(First Person View, Id Tech 1 type)

New Feature "DM Ads":
...Programmable ads, including share rates. Would be cool to have a way to monetize that benefits everyone. And being able to program specific ads at different rates. Even a way to specifically support BYOND at 100% if one decides at any moment. I don't know if anyone has ever done this but it sure sounds like some engine developers are totally missing out on earnings because of it.

More Bulletproofing, Refactoring and Documentation building, starter guides for all map formats should be a requirement.

Why? It makes DM get faster from Idea to Prototype and having built-in multiplayer still, makes it have a stronger unique selling point. Which means that marketing it will be simpler. And at times like these where "doing your own online thing" looks even better, BYOND has a chance to speed up growth. The "DM Ads" will greatly increase earnings for everyone, which means, happiness for all.

Just a few quick thoughts, so busy!
Very good news. Keep it up !!