I'm pretty disappointed with the lack of functional .x exporters for newer versions of 3D Studio Max 7 or 8 (I'm using the trial versions, I don't have 3 grand laying around lol). I've tried the two most popular ones and neither has given satisfactory results. If I can't export the character models directly from .max format into .x format, I'll loose the vertex-weighting information that the artist put into them.
Right now I'm using Half-Life's .smd format as an intermediary to get the models into Milkshape 3D (which doesn't support vertex weighting) from there I export to .x, using a *functional* .x exporter. I've found a artist who is very familiar with Milkshape3D and he has helped me create alternate versions of the character models, though this requires the use of "helper joints" which hides the lack of true vertex weighting, as I can only have one vertex associated with each bone in the animation skeleton.
When we add helper joints to the models the shared skeleton is broken and this requires me to store seperate animations for each of the character models, which is a bummer...but the only real solution.
It will take some time and work, but it looks like I'll be able to get the models looking pretty damn good in the game. Plus I'm now taking full advantage of hardware skinning, which has made the game about 4x faster...it runs like a charm with 100s of characters on screen. I still have not even re-implemented the LOD algorithms yet, this will make it even faster. Other advantages to the new character skinning system include blending between multiple animations, and the ability to have different instances of the same animation (so characters don't all run in stride) pretty easily.
Next up is the real time shadows in the game...about 9 months ago I had stencil shadows in my engine, I was doing all the calculations/extrusion on the cpu...it was alright...I don't know if I want to use them anymore. Now that I'm doing the transforming of the player models on the GPU I don't know the transformed vertex positions so it would be rather hard to do stencil shadows. It was a lot easier when I was doing it all in software.
I think I'm going to go with shadow maps as the "high end" shadowing method in the game. I've never worked with shadow maps before, so I don't know entirely what I'm in for...but it seems like it would be a better option since I could just render everything into a texture I wouldn't need to know what the transformed vertex positions were.
One thing that kind of bothers me is the resolutions of the building/static environment shadows. The concept of cascading shadow maps seems to be a solution to this, unless I've totally mis-interpreted what they're for. Either way I've got a lot of research to do on the subject.
I'm also going to be implementing real-time reflections on the vehicles, which will be pretty straight forward...I'm not really sweating that right now. After that's all done, I'm going to start working on some fancy water for the rivers/oceans in the game. Aaaaand that should wrap up the facelift I'm giving the game's graphics engine.
I'm going to do a quick run-down of each of these graphics featrues and if any of them take more than 3 days each, I'm going to save that feature until I get the game into BETA, and go back to focusing on multiplayer which I've got in a pretty stable state right now.
I'll keep you guys posted.