Monday, April 5, 2010

Interpolation in Software Quake

Just finishing up interpolation in Software Quake; I think the only thing left to do is my muzzleflashes hack for the view entity. I used the old QER tutorial as a baseline, but did my usual thing of putting the position/orientation interpolation into CL_RelinkEntities (so that the viewmodel doesn't need special hacks).

I found quite a few more bugs in the QER tutorial that just weren't present in GLQuake but which caused things to blow up badly in Software Quake. I'll quite likely write these up at Inside3D at some point in the future, but for now I need to road test the code a little more (and fix those pesky muzzleflashes!) For the most part they relate to entities switching models and previous pose numbers being invalid for the new model. Debugging ASM code sure is hella fun.

I must say that Software Quake looks weird - neat, but weird - with interpolation. There are times when you really do have to look twice at the scene just to remind yourself that it is software rendering.

I think this engine will be released. It's quite fun to use and a good alternative performer for anyone who can't use hardware acceleration. There are a few more things I want to do with it beforehand, and the new DirectQ 1.8.3 will almost certainly come first, but this one is a nice thing all the same. At some point in the future I may even merge the code into DirectQ, but that's just crazy ambitious talk right now.

3 comments:

Coranth said...

Merge what you're doing with this into DirectQ and then set up an option in one of the Menus for choosing a renderer, Software or Hardware. Additionally, have DirectQ auto-detect whether one does, or does not have modern Hardware for H/W Acceleration.

mhquake said...

That seems a sensible way of doing it, but it's a HUGE amount of work. :(

Coranth said...

Just take it slow, take it steady; a bit here, a bit there, and you can do it! DirectQ's gonna be the most advanced and powerful Quake Engine ever!