So, first thing: I've been making noise about wanting to make Dream Maker use the hardware graphics renderer, so that I could someday completely 86 the software renderer. There are about half a dozen complex steps in that process, but the very first step was to move all the rendering code from the client to the byondwin library. That was more annoying than I anticipated, but in the end it all worked out. This of course is one of the major reasons I'm waiting on the release, because it's a pretty big structural change. I'll yank out the client code once the dust settles.
One of the next big things to come up was a new filter. I've wanted for a while actually to have a wave distortion filter, and I decided the time had come.
That's Lode Wars with a quick plane master thrown on with five animated wave filters.
So the gist of the new filter is you specify a direction and period for the wave with x and y, a size (amplitude) for the max pixel distance to distort forward or backward, and an offset (phase). By animating the offset you can make the wave move, and having multiple waves in parallel makes a really nice watery effect. In the image above I probably should have gone with a longer period on all the waves, but this was just a quick example. The wave shader will try to handle 10 waves at once if it can, for faster processing.
With that implemented I'm already thinking there are a couple of options I might want: 1) It'd be nice to be able to tell the wave filter not to expand beyond its bounds and to reuse edge pixels as the sample instead of transparency when it's near the edge. 2) A sideways wave, a wiggle effect, might also be desirable. Therefore I'm kind of considering adding flags to this filter before I release it.
I discovered a couple of interesting things along the way, including a few nasty bugs related to filters and animation. So those will be out of the way for the next release.
Also on the subject of filters, I'm quite open to considering other cool filters. A bloom filter has been suggested before, although those are devilishly difficult and notoriously poor performers, so I'll have to give that some thought. But if you have a filter effect you'd like to use in your game, please let me know and I'll be happy to consider it. Bribes also help.
Finally, I also made a rather shocking discovery about memory usage that impacts games like SS13, and it means I'm going to have to embark on a project to deal with that. I'll elaborate more in this week's Patreon post for a look under the hood.
And on top of all that, I have a new idea for plane handling in 513 that I think is gonna be a big deal.
That's it for this week! Thanks everyone for being a part of this adventure, especially our Members, donors, and Patrons. Big things are coming!
For this, is a filter necessary or is it possible to do it by matrix?