So I'm toying with the idea of writing a game - I've got a pretty good idea that, more importantly, has remained a pretty good idea for the last few weeks. Simple to implement, fun to make, fun to play. I should be happy, but I'm not.
I'm tearing myself apart trying to decide which platform(s) to create it for. For starters, there's the obvious: the iPhone. Tons of free engines and code samples make creating a game for the iPhone a no-brainer. Unfortunately, that means there are thousands upon thousands of them, and getting any sort of attention in that crowded market would require more work to market and publicize than it would take to actually create the game.
Then there's the G1 - its hardware is on par with iPhone, yet it has a much smaller user base. This is a blessing and a curse - less users means fewer sales but less competition. Same deal with Blackberry - I don't have the numbers to back this up but my hunch is that the number of iPhone users dwarves both the number of G1 and Blackberry users. At any rate, Don't Dial iPhone is outselling Don't Dial G1 by at least a 10:1 ratio (but, that's with a very iPhone-centric marketing effort). Maybe with some G1 exclusive marketing I can get that to 5:1.
The Blackberry has in its court a much less crowded market, and a push for quality (RIM has explicitly said they're not going to tolerate the crap apps that Apple does). Also, I'd be a fool to sell my game for anything above $1 on Apple's app store, but I could sell for $3, maybe $5 on Blackberry and remain competitive. G1 is probably the same story, but muted slightly due to the number of free apps, as well as the G1's open source spirit, which attracts a user base that's a bit less comfortable with paying for apps.
The really discouraging thing is that technically, the three platforms couldn't be farther from each other. Don't Dial has taught me that getting any meaningful code sharing across all three platforms is difficult if not impossible. I've toyed with the idea of building a cross-platform metalanguage that would "compile" down to ObjC or Java code, but doing that is a lot of work, and then you have to abstract all the functionality of the APIs you need.
Lots of questions, very little answers.