The first thing any sane programmer does while writing code is to consider portability. Why limit your software to one type of operating system configuration and processor architecture when there are so many others?

Most game developers, apparently, with a few exceptions, do not consider this at all. When I look at the process people like Blizzard make in creating a game, I really have to question their intelligence. In fact, I really have to question the intelligence of anyone who chooses DirectX over OpenGL or SDL.

Now, let's take a look at this. They entirely focus on Windows running on x86 from the very begining. They write code for DirectX. Then in six months to a year, they might, if the community is lucky, hire someone else to completely reinvent the wheel and rewrite the entire game engine for Mac OS and/or Linux. Why is this stupid? They could save a whole lot of time and money if they just use OpenGL or SDL in the first place. For SDL, you write it once and chances are it'll compile anywhere (GNU/Linux, BeOS, Mac OS, *BSD, Solaris, probably others, and yes, your beloved Win32) with hardly any modification at all. With OpenGL, there is a relatively minimal requirement for rewrites, pretty much just a sound/keyboard/joystick/mouse code rewrite and you're done. So why the hell are these guys wasting all this time and money? Really...
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.

Log in or register to write something here or to contact authors.