It's easy really. Games, unlike your precious everyday application software, are designed with some important factors in mind: Number One is to sell as many copies as possible and Number Two (snigger) is to make the game as fun to play as possible. A big chunk of both of these objectives is to ensure that the game uses the hardware/software setup that most of the target audience have, and to be as optimised as possible for that platform to allow a smooth (and therefore fun, not to mention media friendly) engine. Basically, you're not going to recoup your costs in selling Linux or Mac boxed copies of a game, as a game has a huge production and promotional cost and a fruitfly-like premium shelflife. Activision are dedicated to supporting Linux in as many of their future releases as possible.

Seeing as DirectX supports even piece-of-shit old Ati cards and provides APIs for just about every element of the system that the average punter will need, it is a much safer bet for all but the most graphically out-there games. Portability is way, way down the list of priorities. A large part of game design is tailoring the design specifically for the target system (which is why there are so few successful ports to and from console to PC - development cost is simply not the issue).

And a final point is that brute-force porting keeps a lot of code monkeys in work over the long winter months, and is nearly always done by a third party, so why the hell should developers worry about it? I'm not saying that this is all an inviolable natural order of things, it's just the way the industry presently works. Anyway, portability isn't necessarily perfect, just look at the Infocom ZMachine or LucasArts SCUMM -- many mutually-semicompatible versions and reams of quirks that even now are only being figured out.

Gee, we games people are so dumb sometimes! Thanks for pointing that out.