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...