NPR had an interesting piece during Morning Edition about the challenges and potential of mobile gaming. They had a very critical point in the end - the same one I found impossible to surmount when doing trial J2ME development. You can develop an app just fine, but then how do you copy the freakin' bytecode to your phone?
For some people this is easy - the phone might be bluetooth or cradled and show up as a removable device. But, by and large, who is going to have a phone that can? And if it can, are they even going to bother?
I was working with a Samsung, and if I wanted to do some file transfers I'd have to find some weird USB data transfer cable from some off-shoot accessory dealer. And even then there's no guarantee - a consumer phone isn't made to have an easily-writable file system.
The alternative is to send files via SMS or the cellular network. This is also the most sensible way for casual users to get files... but do you always send via SMS? Does your carrier charge per kilobyte? In the end, it's still a pain in the butt.
This is on top of the per-handset incompatiblities and problems with event handling, like what Carmack found when he first started to dabble in J2ME gaming.
Casual and J2ME gaming has great potential - and a potentially HUGE market. But first it has to be easy to jump into, for developers but more importantly for consumers.