I didn't read the whole thread but some post got me wondering if there is anyone here who has done some cross platform development and still thinks it is easy. First of all, I am an Linux developer and have used it almost elusively for the last 13 years. But I still use Windows for gaming. When porting a program to Linux you face a lot of challenges:
* Linux is far from stable. I am able to start a 5 year old game on Windows. Running a binary on Linux that 5 years old is a pretty interesting challenge (try a Loki game for example). Xorg is to be replaced by Wayland, for example. Which one would you choose when developing your application? The current API that everyone uses and that will be in use for at least 2 more years, or the next API? Btw: this is the reason why Android is simply a Java (which doesn't change so often) running on Linux.
* Graphic drivers for Linux are a mess. They are significantly slower than their Windows pendants. If you want to get 10 more frames, switch to Windows
* When you develop software, you normally avoid reinventing the wheel all the time. You therefore use a lot of libraries that provide the functionality you need. When you want to use the same code for Windows and Linux you have to port these libraries too.
There are a lot more reasons because of which writing an application that runs in the Windows and POSIX (Linux, MacOS, *BSD, Sun, ...) world is very hard and which make it almost impossible to port a already written program. So if anyone wants to say "its easy", please provide solutions in to at least the problems I mentioned in the very same post.
After speaking of problems, I also have to write about Steams decision to support the Linux environment. First of all, if you want to run your program on multiple platforms, you have to make this decision beforehand or else you have to redesign most of your code. Steam did this when they added support for MacOS so the step to add support for Linux could already use the loose coupling and was therefore significantly easier. There isn't any (real) browser out there that doesn't run on Linux. Libreoffice runs on multiple platforms too. But all these programs where designed with support for multiple platforms in mind and games typically aren't. The reason is simple:
There are no games on Linux because there are no gamers on Linux because there are no games on Linux.
When we, the Linux users who want games become a large enough market, there will be games that are developed for multiple platforms and there will be more solutions to the upper problems like, for example, some stable abstraction layers, better drivers from nVidia and ATI, cross-platform APIs and so on. But again, for that to happen we need a need for this solution, meaning that there have to be gamers on Linux and therefore we need a company like Valve to clear the way and take the initial hard and bold step.
so long
Mathias