Hello there! To minimize your frustration about release delays, I'm posting some fresh info on the current development process. :)
First of all, I've completed the new particle emitting principle. Now it should be more like in Unreal or possibly other games. The extreme stress test indicated very good performance (there are about 400 000 particles in the scene shown on the screenshot above, all with collisions and separate frame updates, calculated in a single thread on CPU because HL doesn't allow otherwise). The even more awesome thing is: I've blown the dust off my particle-based flamethrower code because new emission system allows higher particle emission rates than before. There's also new particle position interpolation feature that allows system to create particles evenly between far emitter positions during long frames. E.g. when the game lags a lot, entity (like a rocket) may receive very few updates, even one per second, so from client perspective, entity stays at one position for a second, during which a hundred of particles may be generated. To avoid that, new PS tries to space particles across the current and previous position of emitting entity. Although not a total remedy, It still looks better.
And now, the not-so-pleasant part about the flamethrower: just take a look at the picture. How the %s should I simulate that in HL!? If you don't quite get the picture, try this one:
The point is: flame has some divergence in trajectory, which looks great. LOOKS. But then, what happens with visual side is this: we've got three streams of flame out of one! Nice? Indeed. Realistic? You bet. But HOW DO I accommodate server code to mimic this behavior?? A little technical reference: right now on the server I do a trace forward (until flame distance or a nearby wall is reached), then build a virtual cone, which deals damage to entities that get into it. Previously I tried server-side particles, "flame clouds", to do a realistic flame, that even interacted with wind (trigger_push). But it caused too many "No free edicts!" crashes all too soon AND generated so much traffic that clients could well drop out with "Datagram overflowed" error, not to mention those horrible lags.
So here I am, not knowing what to do again. And, as you may have noticed by debugging text, the angles problem (Quake/Half-Life) is still there. So, that's how it's going for now. Thanks for reading!