Paul Dunscombe is responsible for 3D support at Rowan Software, the developers of Flying Corps Gold and the upcoming MiG Alley. "Although D3D is thought of as a universal API, no two 3D cards support exactly the same feature set," Dunscombe
explains. "This means that even though only one version of the code needs to be written, it does need to cope with the fact that some features may be missing or supported in a different way. Each time a new feature is used, we need to consider how the software will look if the feature is not present. Provided that some care is taken over this, there is no reason why a good 'generic' Direct3D version cannot be produced. The only coding that we hope we will need to do in the future is to support new features as they become available in hardware. This support will still be through the Direct3D interface and so cannot really be called 'card specific.'"
|Fighter Duel included almost no land in its scenery in an effort to keep frame rates up; with 3D card support, Fighter Duel 2 has no such restrictions.|
Eidos' Bryan Walker, who's overseeing the development of Flying Nightmares 2, Confirmed Kill, and Team Apache, takes a different approach. "We're supporting Direct3D, Rendition's RRedline, 3Dfx's Glide, NEC's SGL, and ATI's Rage APIs," Walker says. "We prefer to develop native drivers as much as possible for our simulations, since they provide better frame rates on most hardware and allow us to really increase the content quality as a result. We'll use D3D on some cards if we have to due to time constraints or developer-support issues, but our goal is to do the best we possibly can, and that's usually not by relying on generic APIs."
This mix of supported features in various Direct3D drivers requires so much testing that it can really stretch out development time. Scott Randolph, a senior 3D graphics engineer at MicroProse who is working on Falcon 4.0, says that the development team got a Glide driver up and running in a week and then tweaked it for another month or so.
"On the other hand," Randolph says, "we had a Direct3D driver functional in about a month, and it still isn't working on all hardware. For instance, on 3D Labs chips only some textures get dark at night; on Intel's i740, none gets dark at night. We're hoping we can find some way that works for everyone."
The varied performance of different cards presents another major problem, says Kevin Wasserman, a 3D programmer at Looking Glass. "Performance is very uneven, both between different chipsets and between different drivers for the same chipset," he explains. "Sadly, there are a lot of cards and drivers out there that provide only hardware 'deceleration'; especially, in our case, drivers that don't provide native DrawPrimitive support. Hopefully, this will improve over time."