Tuesday, March 17, 2009

Engine Update

I'm still on a slowdown (and committed to it), but have done some work on the engine lately. First up is the long promised ability to load FX files (AKA HLSL shaders) from disk as an alternative to embedded resources. This is nice as it can let you specify your own shaders. It's not my job to teach you about HLSL and so forth, so you'll need to grab yourself some online tutorials at a bare minimum if you want to play with this. Things to watch out for include needing to have the correct number of passes, correct technique names, correct input and output formats, etc, but in the vertex and pixel shaders themselves it's pretty much fair game what you do. You can get the original FX files I wrote in the "src" subdirectory of any recent release.

This is also PAK file friendly, by the way.

Secondly I've started on an "enhanced" particle system. I've decided not to mess with the original effects too much, so what's going to be done is a replacement of textures, possible reduction in the number of particles (where appropriate), and some scaling and fading of the particle sprites. Basically the objective will be to have blood that looks like blood, smoke that looks like smoke, etc, while retaining as much of the Q1 "feel" as possible. I haven't yet decided on how far to go with this, whether to have everything hard-coded and/or embedded, or whether to allow a certain amount of user customization. Right now the textures are embedded resources, and I'm thinking of modifying my embedded resource texture loader to allow for external replacements. But this isn't meant to be a general purpose engine, it's Quake.

I'd previously rewritten the particle system to be able to support all of the extra stuff that this will need, so it should be possible to turn this around quickly enough: just supply a texture, check a cvar and set some parameters. Making it look right might take more time.

The "enhanced" particle system will be off by default, but I hope it's going to be trad enough to at least meet with reluctant approval in certain quarters.

Barring any bugfixes that should probably be as far as things go prior to the next release. It's still too early to confirm this for definite though.

0 comments: