The thing that struck me more is suggesting that game developers would want to release software on platforms they have no access to. Especially if you are even half serious about being professional and you have consideration for your customers, you'd want to make sure your software works and is tested properly on all target platforms.
I don't think I would release any software for a platform that I can't get access to for testing and development. Not only would you leave the customers dangling when you can't answer or solve a single bug-related question, but you also leave yourself dangling. Cross compilation would be a nice feature perhaps for a final product release when you've previously tested it on the native platforms, but I would think that even then you'd want to run the final exe on the target platform and test it at length to make really sure it is solidly stable.
I'm not so sure overall that cross compilation is really going to help anyone unless you are just releasing some small thrown-together game/tool. Like if I release something to linux people that I only ever compiled on windows I know they're going to be in for some surprises. BlitzMax is good for cross-platform compatibility and not having to change *much* to make all platforms give the same results, but it's not always 100%. Each platform has different kinds of bugs and issues. For example I ported a small game from Mac to Windows and everything worked after recompilation except the sound didn't work. I had to add a line to switch to the directsound driver. I might not have known that or discovered it at all if I just made a Windows exe from the Mac. Without a Vista PC I could not have discovered the flaw and then all Vista users would be rightly complaining, and I wouldn't be able to fix it or test the fix.
Cross compilation would be a great idea IF:
a) The language and the performance of the application is 100% exactly identical on all platforms requiring no customization at all, and
b) The developmnet platform includes a 100%-compatible supporting-all-features-exactly-as-they-are-on-the-real-platform emulator, for each platform.
c) All issues/bugs/problems local to each platform were 100% known ahead of time and integrated into the language behind the scenes.
Otherwise I think you're just taking a shot in the dark.
Take the iPhone as an example. You do not develop on the iPhone itself, you develop on a Mac in xCode and then you test it in a fully supported 100% accurate iPhone emulator. That means you can be pretty darn sure that when you actually run the app on a real iPhone it will work how it did in the emulator. Without the exact emulation and exact transfer of functionality from Mac to iPhone platforms it just wouldn't work. Also Apple owns and controls both of the platforms - Mac and iPhone and has access to the code for the xCode IDE/language support, and the entire operating system, and the o/s for the iPhone. Without that kind of control an app in the development environment might not work when it gets to the hardware. You don't have that control between Windows, Mac, Linux and other platforms. There are too many variables to make it reliable. If you're really serious about supporting customers and making your application stable you should invest in the platform you are targetting.
I don't think I would release any software for a platform that I can't get access to for testing and development. Not only would you leave the customers dangling when you can't answer or solve a single bug-related question, but you also leave yourself dangling. Cross compilation would be a nice feature perhaps for a final product release when you've previously tested it on the native platforms, but I would think that even then you'd want to run the final exe on the target platform and test it at length to make really sure it is solidly stable.
I'm not so sure overall that cross compilation is really going to help anyone unless you are just releasing some small thrown-together game/tool. Like if I release something to linux people that I only ever compiled on windows I know they're going to be in for some surprises. BlitzMax is good for cross-platform compatibility and not having to change *much* to make all platforms give the same results, but it's not always 100%. Each platform has different kinds of bugs and issues. For example I ported a small game from Mac to Windows and everything worked after recompilation except the sound didn't work. I had to add a line to switch to the directsound driver. I might not have known that or discovered it at all if I just made a Windows exe from the Mac. Without a Vista PC I could not have discovered the flaw and then all Vista users would be rightly complaining, and I wouldn't be able to fix it or test the fix.
Cross compilation would be a great idea IF:
a) The language and the performance of the application is 100% exactly identical on all platforms requiring no customization at all, and
b) The developmnet platform includes a 100%-compatible supporting-all-features-exactly-as-they-are-on-the-real-platform emulator, for each platform.
c) All issues/bugs/problems local to each platform were 100% known ahead of time and integrated into the language behind the scenes.
Otherwise I think you're just taking a shot in the dark.
Take the iPhone as an example. You do not develop on the iPhone itself, you develop on a Mac in xCode and then you test it in a fully supported 100% accurate iPhone emulator. That means you can be pretty darn sure that when you actually run the app on a real iPhone it will work how it did in the emulator. Without the exact emulation and exact transfer of functionality from Mac to iPhone platforms it just wouldn't work. Also Apple owns and controls both of the platforms - Mac and iPhone and has access to the code for the xCode IDE/language support, and the entire operating system, and the o/s for the iPhone. Without that kind of control an app in the development environment might not work when it gets to the hardware. You don't have that control between Windows, Mac, Linux and other platforms. There are too many variables to make it reliable. If you're really serious about supporting customers and making your application stable you should invest in the platform you are targetting.