Tuesday, December 22, 2009

DirectQ Speeds Up

DirectQ 1.8 is now faster on Windows 7 that 1.7.3 was on Windows XP. We're still not quite back to 1.6.x speeds, but we're inching closer each day.

This is all a side effect of the new rendering code I've been doing. I've solved several major problems, including efficient and effective state batching, handling multiple different types of input formats, multiple entities sharing the same model, and merging model rendering into the world without unpleasant side effects.

As an added bonus the code is really clean and elegant, and nice to work with. It should be possible to port this virtually unchanged (aside from the D3D API specific stuff) to just about any engine and see immediate benefit. Of course it's also reliant on the Windows API VirtualAlloc function, but if your chosen OS has a functional equivalent it Can be Done.

I'm really enjoying the work I'm doing on DirectQ at the moment, far more than at any time for a long time. It's a rare thing in any development project to be getting immediately measurable results from nice easy simple code, and also to be throwing out horrible old legacy code while doing so, and also to know that what you're getting is far more functional and robust than what you had before, but this one just keeps on giving.

I wouldn't make any claim to be particularly talented here; it was a happy accident that I stumbled across the right way, and there were 3 aborted versions of the main code along the way here. But things are on track and moving towards a good end result.

0 comments: