Apparently I missed an update? Weird, I didn’t even notice I forgot to post. Anyway, most of the little interface glitches have been fixed now, and everything seems to be working okay so far. I realized today that I forgot a super important interface component, the slider for the number of particles, so I added that in.
Here it is with all of the panels open. It’s pretty ugly, but I think it works.
I have, however, noticed one big gaping hole in the functionality here. One of the most important features of the particle system is that one kind of particle can convert into another. One good example of this, and indeed the example which impelled me to make this feature, is raindrops hitting water. When the drop hits, it should turn into a splash effect which has its own animation. Fire and smoke would be another good example.
Even though this is technically possible right now, it’s kind of a mess. What type of particle it converts to is indexed by where the type is in the particle system array, which means that if any of the earlier types get removed the indexing gets thrown off and everything falls apart. Additionally, there’s no way to see what the type number of a particle type is in the editor right now, so it’s not possible, or at least it is super inconvenient, to create these kinds of mutable types right now. I’ll need to figure all of this stuff out before I can proceed. I think it will involve at least a small amount of rewriting the particle system.
There’s a couple of other things I need to account for that aren’t so simple in the current system: First, special-case effects resulting from in-game events, like, for instance, a blood effect from a damaged enemy. There were some pretty good examples of this in Castlevania: Symphony of the Night, a major influence here. I also would like to be able to handle instances where one particle needs to split into multiple particles, but that’s more of a nice-to-have than a must have. None of these are currently handled in the particle behavior system, but are on the wish list.