Rant.

I have no sympathy for game companies (and to some extent amateur open source/shareware projects) that write their games for just one platform and ignore the other platforms that are reachable with just a little extra work.

When you write a video game you generally don't use much of a particular operating system's unique capabilities (unless you're writing to DirectX or a particularly games console, in which case you're beyond help already). You're not having to deal much with each platform's idea of how a GUI is programmed.

Ninety percent of your code can and should be platform agnostic. And remaining ten percent of your code is platform specific and should be wrapped in nice, friendly, generic looking functions and/or classes so the remaining ninety percent wont even know what platform it's running under.

What do you have to gain from writing cross platform code?

Well the obvious answer is easy access to alternative games markets. With little effort you can target MacOS gamers (yes, us Mac users buy games too), the nascent Linux games market and even whatever console is flavour of the month.

Maybe the idea of increasing sales by 5% upwards has no appeal to you. Fine. Then look at it from this perspective. Writing a game that is well structured enough not to care what platform it's running on is naturally going to produce better, more generic code than a game hacked for Windows.

So the extra sales and better designed code doesn't appeal to you? Well, try compiling your code under more than just Visual C++ 6. This will highlight all those bugs that MSVC++ 6 has no clue about. Compile it with CodeWarrior, GCC, whatever else. You'll find a lot of bugs and possible bugs you never knew you had.

Increased sales, better code design and less bugs in the code don't appeal? There's no helping some people...