I have done lots of multi-platform programming, and I can say it's quite doable, but you have to realize in an early stage of the project you want to do it: otherwise, you probably have lots of code with non-portable dependencies. This could be the case for Orbiter, which could make it a nightmare to make it portable. For the rest, multi-platform developing is all about choosing the right (portable) dependencies (e.g. OpenGL instead of DirectX, and wxWidgets instead of MFC), and make yourself familiar with them. The list of remaining issues is usually very small, and they can be dealt with by testing on all platforms regularly, and making small adjustments to the code in case of problems.
As I understand, Artlav's OpenGL client already works on Linux natively. :thankyou: Artlav! For the core application: that's all up to Martin to decide. For now, I heard it works in Wine.
About plugins: does anyone know how the Firefox people deal with this problem? I'm using Linux about 16 hours per day now, and I seem to be able to use every plugin I want to use. On closer inspection, these plugins turn out to install .so files on my system (the Linux equivalent of .dll files). Does Firefox have some kind of platform-independent SDK? Do they have some sort of automated way of compiling for every supported platform, or are all plugins open source, and are the binaries community contributions? I can't imagine that all plugin makers have access to all target platforms.