I'd just like to share a bit about my experience in developing software for mobile platforms, namely Android and iOS. Why am I posting this here? Because we're trying to use as much open-source software as possible. We'll also share code we develop along the process. However there are some problems with this approach. First, here's a screenshot of the game as it is today:
I belong to a small team of two working on a new castle defense game for mobile devices. You can check out our site here. I'm developing the graphical parts of the game and most of the work has been done on a PC running Ubuntu 11.04 and using some of the excellent FOSS graphical tools available. These include Blender 2.58 for 3D modeling and animation, including 2D animation, Inkscape for most of the drawing part and Gimp for post-processing and assembling of images. Coding is mostly done in Mac or Windows because of the Corona SDK we use being only available for Mac and Windows. Still, I have done some coding with Gedit myself.
The problems start when we need to do some work related to the final stages of animation: the packing the frames together. Manually adding frames together is very time consuming and there are several tools available for this task, however there are only Windows and/or Mac versions of these programs.
Also, there aren't good and easy to use SDK's for developing games for mobile platforms. What bothers me the most is the lack of software for linux for developing games for android. Sure, Java development can be done in Eclipse but that just means we have to do an iPhone version and a separate Android version from scratch (code-wise). Corona SDK is the only effort I've seen of multi-platform support from a single code base, but that's only for Win and Mac like I said before. I doubt there will ever be a linux simulator for Corona, but one can dream.
Lastly I just want to point out that it's a real shame there isn't any mobile games SDK for linux since there are already some very good tools for programming, like the amazing Meld for comparing and merging software projects, the various IDEs with excellent capabilities, not to mention that Ubuntu is a really wonderful desktop environment to work on.
Partially related rant. If one doesn't want to do Java (or indeed, uses a cross-phone-OS SDK), the default target is ARM. No problem there, but nobody usually bothers to do more, or isn't even allowed to (via the SDK coming as ARM binaries, etc).
This is starting to be a real issue, because MIPS Android phones and tablets are becoming available. Cue x86 Android, and even more arches.
A surprisingly small part of all Android apps are pure Java, most have at least some ndk parts, and thus only work on ARM. Limiting your market there, app devs.
Of course it would be nice to have a more unified setting (ala iOS), but meh.