Wednesday, October 14, 2009

More Particles

I ended up getting nothing done yesterday aside from reverting my QMB particle system changes back to classic (1.7.2) style. I'm still very much in thinking mode about particles and how best to handle them, primarily on account of potential concerns with explosions.

The real problem with explosions is that sprite that's spawned from QC. Finding a particle explosion effect that looks good and plays nice can be quite a challenge here. Now, in more naive days I would just check the sprite model name and not bother rendering it, but the problem with that is the fact that the actual model that's rendered is determined by QC, and is therefore outside of the engine's control. There's nothing to guarantee that it will always be s_explod.spr, and it could even be an alias model or a BSP model in some mods.

I'm not really satisfied with the thought of building an enhanced particle system but leaving explosions be as to my mind the visual discontinuity this would generate would be far worse than just retaining the classic system on everything. On the other hand, I don't know (yet) how QMB handles this, so there may already be a solution there waiting for me.

Overall, on the QMB front, my current estimate is that completing the job would require about a month. This time would include porting to Direct3D, bringing the classic system on top of that, re-integrating with a lot of the new DirectQ stuff, and all the time bugfixing and error checking as I go. At the end of that time I would likely be sick to death of the code and possibly not caring too much if I never saw it again. Hence the rollback and rethink.

As it stands, the current 1.7.2 particle system is actually quite capable of some very enhanced effects without any code changes. So all that's required to build an "enhanced" system is adjusting a few parameters for each particle type. On reflection, going QMB was one of those nice ideas that just don't work out in practice.

But the problem of explosions remains something to be addressed, so while I may experiment with some effects in some places, I might not finish the system off for 1.7.3 (hey, I do wanna get the new code changes out before 2010!)

0 comments: