particle insanitation (Patreon)
Content
particles are a quick and effective way to create varied animated effects with a lot of potential to look amazing without necessarily expending an impractical amount of effort!
we used some particle effects in the demo. for instance, the little lights that raise up on the title screen, or the on-hit animations in combat, or the special effects that play in the scene with zagan. they have very many uses, so it is important to have a good and flexible particle engine!
...we had a good one! but it wasn't very flexible. it was a one page thing on the internet where you could go and drop some settings and it would spit out a file that we'd put out and play in game. the way we played that was through a plugin which only worked on a scene by scene basis, and due to poor coding on both its and my part in the past, we had to add a lot of redundant code to make it animate scene-by-scene. it needed clean up at the very least, but it would be nice to be able to use a better program for particles.
meanwhile, RMMZ, the sequel rpg maker to the RMMV we use, happened to include support for a program called effekseer. MZ uses it differently-- it's just a means to create normal animations as opposed to the frame-by-frame approach we used in, say, reborn. however, our codebase is still very similar, so I thought, if it renders in MZ, surely i can backport support for it to MV and use it as a basic particle engine.
fufufufu how foolish i was
as for effekseer itself, it's a much more robust program than we used previously. for one thing, it is a program rather than just some website. for another, it allows us to layer child and parent particles, create pretty curves, combine effects, add sounds natively, and many other things!
...it also phrases its tool tips like this because it is roughly translated from japanese

"...or else it gets the hose again."
I'm sorry I cannot read any of these tool tips, and there are a lot of them, without thinking of that. I haven't even seen that movie.
anyway, let's see some samples of what this baby can do. From their website:





I'm sure, none of which are easy to make, but, lots of potential!
okay, so over the break, i decided i wanted to push through to the end and get that sorted so that i can be developing with particles as I go forward.
so let's make it work in with our code base--
wait--
wait no what's happening

oh no it's the eternal woes of integrating third party APIs and software NOOOOO
![]()




this was all me around the new year.
so previously I explored that by taking a swim through MZ's code base and collecting everything that made it work and copying into our code and boiling it down. In this case, we should have had everything we needed and just had to have done a little extra work to get it to function.
nothing to it but to do it, right?

okay that didn't work. integrating the library results in a "function signature mismatch" which apparently is just a really scary way to say an argument error, but it was very scary, far far to scary by far, i was scared.
particularly because it's in the library class, and as I've said before:

and also it was a minimized file and relies on assembly or web assembly, let alone the program's API, so it's entirely unintelligible in like three directions but it clearly works in the other context so what gives
I decided to try a different approach. Surely I was not the only human on this planet who had wanted to try using effekseer in RMMV. Let's see if we can find a third party plugin for it!
Turns out, I may not be the first human to try this, but I might be about the second. There was a plugin, but it was incomplete, rough, nothing I couldn't work with if it worked. So anyway, let's try it!

Previously we've talked about how we had to update our pixi version to support some effects in spine. ...Oops! Turns out that breaks the compatibility for this plugin anyway.
...Incidentally, that probably helps our odds with the MZ implementation. Maybe if we--

okay. fine.
so to skip forward a few more days of headbashing, i kept going back and forth between these two approaches trying to figure out how to make this work. and always i'd come back to the same core issues in the library class, despite also trying multiple versions of that library. it was pain.
hey programmers, is there a word for that specific kind of hell when you're trying to debug something, and just getting no feedback whatsoever? i feel like there should be a word for that.
so the folks left me for the night on this exchange

im f i n e

......... but then.....
a light in the dark
I decided to try an entirely different approach, not using a third party plugin at all, but just another library designed to interface pixi with effekseer directly. and, like, this was also incomplete, but it was at least intelligible. and--
in the distance, i hear it,
a sound effect
incidentally, this was how I found out that effekseer supported sounds directly, i didn't know that before, but there I am, just trying to get one of the sample particle files to play, and it plays a sound. I can't see anything, but I know it's out there. It's talking to me. It wants to be found. We are not alone in the universe. If I reach out... just a little more... and grasp at the fabric of the stars..........

...we display the effect!!!! we are granted L E G!!!!!!!!!!!
you'll notice that the messages above were from a solid week ago. since then I've spent the time cleaning up and expanding the functionality of that library and our code-- adding back in functions from our previous particle engine like prewarming, making sure we can quickly add this to any scene, and learning how to direct particles to go from point A to B...
there was still a healthy bit of face-bashing involved there. i had to commune with a coyote to guide me to the end. im telling you, scavenger animals make great low-level programmers.
but in the end, we got through it, and we now have a much better particle engine supported!
no more third party coding ever for me ok? ok, thank you!!! hate it. i want to get back to making the game now.
speaking of getting back to things, quick reminder that Reborn Streams resume today! in a little less than 12 hours from this time of posting, we'll be back on twitch, picking up from the yureyu building! i will probably be very tired. happens.