As a PC Gamer you expect to upgrade, you expect that at some point your hardware will not run the latest games acceptably. Battlefield 2 does not even give you that option. It attempts to make all non DirectX 9 compatible video cards obsolete. Which means all GeForce 4 and older video cards will not run Battlefield 2. You cannot even start up the menu. Neither Electronic Arts nor the game's developer DICE have any plans to fix this. Even though the GeForce 4 line of video cards has enough horsepower to render the game it is not compatible with Pixel Shader 1.4. Emulation to Pixel Shader 1.3 would easily make the game playable on these cards but redundant texture checks make this difficult to implement.
The response from Electronic Arts on the Issue was:
"We've been talking to Benjamin Smith on the development team about this. There are no plans to implement GeForce 4 support in a patch. The engine was not built to run acceptably (performance or appearance-wise) on the GeForce 4 series of cards."
Then why does it run on slower cards such as the ATi Radeon 8500? The performance of this card is no better then the GeForce 4 line except for the inclusion of Pixel Shader 1.4 support.
Pixel Shader (Defined) - a program used to determine the final surface properties of an object or image that run on a graphics card, executed once for every pixel in a specified 3D mesh. They operate in the context of interactively rendering a 3D scene, usually using either the Direct3D or OpenGL API.
DirectX 8.1 or DirectX 9?
All GeForce 4 cards are DirectX 8.0 compatible and support up to Pixel Shader 1.3. Dice claims only DirectX 9 support but clearly shows support for a DirectX 8.1 video card, the ATi Radeon 8500. The major difference between DirectX 8.1 and 8.0 is Pixel Shader 1.4 support. When ATi introduced Pixel Shader 1.4 back in 2003, nVidia argued against it and failed to add it to the GeForce 4 line. Yet, here they did nothing to argue for support of video cards still capable of running the game? Even more insulting is the nVidia seal of approval on the box: "The Way It's Meant To Be Played" - I'm sure this is reassuring to all the nVidia GeForce 4 card owners who cannot play Battlefield 2.
Pixel Shader 1.3 vs. 1.4
The main difference is that Pixel Shader 1.4 lets graphics chips render up to six textures in a single pass instead of four. This is a performance difference. When Pixel Shader 1.4 is used, the ATi Radeon 8500 would take only one pass to render, as opposed to 2-3 on the GeForce 3/4 graphics chips. The performance argument is lost because in real world situations the GeForce 4 line easily beat out the Radeon 8500. Proving that (performance wise) the GeForce 4 line would be more then capable to run this game.
Doom 3 supports at least a 64MB GeForce 3 and Half-Life 2 supports at least a 64MB GeForce 2. These are graphically superior to Battlefield 2 yet support older hardware. These are forward thinking developers who understand PC Gamers and the upgrade cycle. Valve's Half-Life 2 survey clearly shows over 20% of PC Gamers would not be able to run Battlefield 2. Where are the similar statistics from Electronic Arts or DICE?
PC Gamers expect older cards to run slower and at lower detail levels with newer titles. They clearly understand newer video cards will make games look and run better. But this is not the point. When games support older but capable hardware it gives the PC Gamer an incentive to upgrade because they can see the difference with their own eyes. That decision however should be up to the game buyer to make; it should not be forced upon them by the developer. No matter how innocent the developers intentions turn out to be, this comes off as a way to try and sell more video cards for nVidia.
If you can't count on the game developers, you can count on the community. Some faithful programmers have created a work in progress shader modification that gets the older cards to work. Download it and give it a try but remember this is far from finished and currently looks poor because all the shaders have not been converted yet. But it does give owners of "obsolete" video cards some hope.