Is nVidia Support for Older 3D Games Fading?
BrendaEM writes "A thread on Through the Looking Glass depicts the plight of fans of the original Thief Series and System Shock 2, who are asking nVidia fix rendering issues these 3D 16-bit games on their newer video cards and drivers. In the case of the original Thief series, in which the games build tension by their use of light and shadow, the rendering has been badly degraded from that which was originally intended. In another Slashdot article, the author asked the question whether or not video games were art. If one of the greatest video games of all time, with a growing wealth of hundreds of fan produced missions, as well as an entire full-sized expansion, does not play well because legacy support diminishes, then what will happen to lesser 3D video games?"
This is probably a WinAPI issue. This has nothing to do with nVidia, ATI, Video Codecs (which would only affect cutscenes anyway...) or anything like that. This is almost certainly 100% caused by upgrades with the WinAPI and/or DirectX. Unfortunately for you, the best thing MS ever did was drop full compatibility with Win9x. Check the game vendor for updates or try it in DosBox or similar.
I'm a game dev who uses a very out of date API for my games (DirectX 7). I do 2D turn based games, so there is zero incentive for me to use a newer API, which would mean rewriting engine code.
The problem is not so much that newer cards screw up rendering of old games (although this *can* happen), but that no card driver seems to stick 100% to the directx standard. DirectX is HEAVEN for game devs, because in theory it means we can write to a single standard for the windows platform, and have our games work on any card.
The problem is, there are so many minor quirks, differences and tweaks in the way each card implements the same directx calls, that in practice you will *always* encounter people who have rendering issues just on their PC. I wish ATI, intel (worst offenders) and nVdia would take more time to ensure that their cards actually come closer to the supplied reference rasterizer in terms of results. The entire point of directx is to allow devs to be free of individual card woes. shoddy drivers can undo all of that work.
DRM-free indie games for the PC and Mac: Positech Games
They never supported open source efforts in the past. This is the first time they have provided documentation and been willing to answer questions without an NDA (and sometime they were reluctant to talk even with an NDA).
Actually, this should be very helpful to the efforts to create open drivers for all ATI cards.
http://airlied.livejournal.com/50613.html
http://www.phoronix.com/scan.php?page=article&item=838&num=1
Climate Progress - Hell and High Water
...You're... not quite right.
16-bit as in 16 bits per pixel, with 5 (or 6) bits per color component, as opposed to 32 bits per pixel with 8 bits per color component.
-:sigma.SB
WARN
THERE IS ANOTHER SYSTEM
While I don't doubt that, nVidia at least has been caught cheating in their drivers before now to get better scores in benchmarking software, and I certainly remember them releasing new drivers to improve performance in popular games that reportedly broke other, less popular ones.
Even now, the latest nVidia drivers (which the Bioshock demo recommends you install) has caused a few minor glitches in Oblivion (for me at least), and that's hardly an old game.
It's official. Most of you are morons.
Don't assume. There are two big issues, aside from what you stated, here:
1. Drivers not sticking to spec. Many drivers have many bugs that game devs have to work around.
2. Legacy support leads to sub-optimal performance. When driver devs need to choose whether they'll devote their time to legacy support or a new whiz-bang feature, sometimes they choose the whiz-bang feature.
Wheel in the sky keeps on turnin'.
Seriously, you crack me up.
Okay, with the hilarity out of the way... DirectX. We're talking about a proprietary Microsoft "standard," which had fairly shoddy vendor support up until the Direct3D 8 time period or so. You're using the DirectX 7 API, presumably for the DirectDraw support which was completely tossed out in DirectX 8. (Gotta love those proprietary, ever-changing APIs.)
Frankly, DirectX 7 never worked that well when it was new, so you can hardly expect it to work well now. Back then, the main competitors were 3dfx and nVidia, and everyone else had various buggy/slow non-contender implementations (ATi's first decent 3D chip was around the corner). Your whole point about DirectX being hardware vendor-neutral was never true.
In any case, Microsoft's solution for all this was to move to Direct3D, even for 2D rendering. And you know what? With a little setup, doing all your 2D rendering with a 3D API is actually pretty painless. Direct3D 9 has been around for years now, and is a very stable (and I hear usable) API. And with everything turning into shaders these days, all the hardware is pretty much the same (besides performance, of course). Step out of your comfort zone, upgrade your skills a little, and you might find you end up being more productive in the long run.
That said, I'm more of an OpenGL guy myself. OpenGL may lag behind the latest DX whatever, or bombard you with a bajillion vendor extensions between regular updates, but it also has the virtue of being truly cross platform (not just to different hardware vendors, but software vendors as well), and an industry standard (as much as you can hope for in a fast-moving field like 3D), used in fields as diverse as scientific visualization, engineering, media creation, and yes, even games.
The best thing about OpenGL is that it's highly and precisely specified (while still leaving enough wiggle room for high performance implementation), so you can be really confident about what behavior you should be getting from your OpenGL implementation. Right now I'm mucking around with an OpenGL implementation on Linux running on an ancient i830M integrated graphics processor for a Pentium III laptop running Linux, and other than missing a whole bunch of advanced features, and probably a few pixels here and there that I can't be bothered to notice, it renders exactly the same as the GeForce 6600 GT sitting in my Athlon X2 3800+ box running Windows Vista x64. Now that's consistency.