Wednesday, July 21, 2010

RMQ Engine Update

As is by now a tradition whenever I achieve a milestone with an engine build, here is the first screenshot of the RMQ engine running the Marcher Fortress.



I mentioned that I was doing some awful things to the FitzQuake code a while back, so I think an explanation is in order. Fundamentally what I'm doing is completely rewriting the renderer to use the same surface batching techniques that DirectQ does. The FitzQuake renderer as it stood was a perfectly fine renderer, and very faithful to the GLQuake standard but with a lot of annoying niggles fixed. However, for the kind of content-heavy maps we're getting here, it wasn't performing as well as it could have.

I could see that was going to be a problem. There are places with very high polycounts, places where almost every lightmap in the map gets an update, and places with extremely high levels of detailed brushwork. Think Doom 3 like levels of detail, but with Quake textures and architecture, and running in the Quake engine.

Drawing each polygon individually is a fine technique for older content, or if you want to maintain compatibility with older (20th century) hardware, which is a very valid choice and not one I would criticise. The kind of detail we're talking about here, however, needs a bit more rendering muscle behind it.

It's still early days, and it's still the first revision of the rewrite, so I can't really say for definite what's going to fall out of the end of it yet - mostly because I don't even know myself yet! What I can say is that the new renderer is very highly optimized for drawing high poly scenes.

As a general guideline, if you can run Q3A well you should also be able to run this quite well. I'm aiming at a TNT2 level of functionality as an absolute minimum, so that's maybe OpenGL 1.4 or thereabouts. You will need multitexture and combine modes - both of which the TNT2 does support. More advanced features - like vertex buffers and occlusion queries - will be used if available, but it won't depend on them.

Now, a few people might be pissed at me for bringing up the minimum requirements for FitzQuake like this, but please, do try to remember that these are not normal Quake maps and that the techniques required to render them well just do not exist on first or second gen hardware. Even if I did retain that level of support and coded my renderer to that spec, the maps would just run very very poorly for everybody.

Forcing everybody else to suffer just to accomodate an icredibly small minority still clinging to their 3DFXs or Power VRs does not make the blindest bit of sense.

You're not going to see any sneak-previews of undisclosed RMQ content on here by the way, sorry about that. I may post screenshots of the engine running RMQ content from time to time, but it will be firmly restricted to content that has already been released.

0 comments: