Quoting Frogboy, reply 79Let's put it in a real nutshell:
I make a call to get a piece of memory from a video card via DirectX. On Card A, I get my memory. On card B, I get an error code. On card C, I get a bad pointer returned because it didn't handle running out of texture memory gracefully. On Card D, it crashes the process because it expected me to first query the pool available prior to calling it. If I, as a developer, don't happen to own Card C or Card D, I will have customers that will run into a problem.
The problem is that the sophistication of the tools can lead developers into having a false sense of security. In the classic days of PC game development, you were using assembly language and didn't rely on high level API calls that didn't always work as they would expect.
This doesn't matter, it's just a problem that needs to be overcome. If testing the game detemnines that only video cards A, B, C work but not D, E, F, then the specs on the back of the box need to specify: 4XGameAB requires video cards A, B, C, (in addition to whatever other specs it needs), and it would be nice if it was also mentioned on the back of the box that video cards D, E, F caused failure problems, so that consumers with these type video cards can avoid the game if there are know compatability issues with that hardware.
The point here I think was that cards D, E, F, [Insert Next Letter Here], were not available or made available for testing, so the developers cannot make a definitive statement about whether systems with those cards can run the game without a problem or not. It is not ever going to be the case (and quite reasonably so) that a developer will have every relevant card in the world available for testing.
On a more general note, it isn't just PC games that have caused this mentality among PC users. The very nature of the PC, PC OS's and software have gotten everyone used to the fact that sometimes, shit don't work until you beat it with a hammer, and sometimes not even then, so be prepared to taste the shit-spray with or without the after-dinner mint for your troubles.
Making something as sophisticated as a modern game for the PC platform is like trying to balance a smooth and beautifully shiny pearl on a rickety rain-slick tower of stacked wooden tables in disrepair. In the process you will bang a few support nails in here and there, and perhaps file a groove somewhere on the top surface. It may balance, it may not. To fix this, you need to make the shiny pearl more like a sticky ball of tar. Now of course, the sticky ball of tar is not going to be as attractive as a shiny pearl, so you need to find the threshold where it's enough like a sticky ball of tar to balance on the tables, but still enough like a shiny pearl to make you want it. But who knows how many types of table stacks this compromise will balance on? What if little Johnny threw a two-legged thing into the mix? What if neighbour Frank put a weighty marble surface on the top? What if silly Susie greased up the whole thing?
When computer systems are tested for bugs, problems and compatibility by the people who put them together (hardware, software, cooling and all) half as much as developers test their games before release, we might all be in a more ideal situatiuon. Better yet, if hardware and software makers collaborated more for purposes of compatibility across the board, there would be no excuse for major faults.
The reality is that these things will never happen. Regardless of this, the reputation of game development companies will still be hurt if they don't release a 99% perfect game. This will and does hurt sales, so obviously it is not something the companies want. At the same time, it is not viable to do the amount of testing that is actually needed to get a 99% perfect game, as cost-wise, this would not put the developer in a position to make more games. So, it's not always about greed, at least not with everyone.
Regarding WoM, it has already been mentioned that better measures could have been taken in development and pre-release, and these measures are now a part of policy as a result. Stardock is doing unprecedented things for a game developer to resolve the issues and to compensate, so I won't be attacking that dead horse.