JeffCroft.com: On Flash
jeffcroft.com
jeffcroft.com
Most analysis when questioning games, this one included, point to the app store and claim it is due to the existence of the App Store and Apple's desire to control game content on their devices.
But they seem almost always to gloss over the fact that the controls would be a huge stumbling block. First, most Flash games use the keyboard for the user input. How would this work on something like a Nexus One? If the controls for the games use the arrow keys to navigate and the virtual keyboard has no arrow keys, how does the user control the game?
Likewise, many follow the mouse movement. However, on touch screen devices, there is no graceful way to track the mouse movement because there is no mouse. Swipes are generally used to indicate scrolling and touches selection. (like a mouse click)
So even if they allowed Flash on these devices, many users would be screaming about how Game X doesn't work and Game Y doesn't work only because the interface doesn't translate gracefully.
I am just constantly surprised that I haven't read any blog posts that address this (seemingly) obvious issue.
Some more information on multi-touch support: http://theflashblog.com/?p=1678
This helps for Flash on these devices IF the developers build in support for them, but that defeats the original purpose which is to give users the ability to interact with the current content on the web the way it currently exists.
Adding support for mulitouch in Flash does not solve the issue of keyboard input having prevalence in Flash-based games and web applications. Nor does it touch the issue of the many that currently track mouse movements. Sure, developers could all rewrite their games and applications to support this feature in the future, but that is hardly a solution to the present issue.
Upgrading an existing flash-game to multi-touch is much less work than re-implementing the entire game again in ObjC.
We want Flash on all devices (including apple stuff) not because we like Flash so much, but rather because it is the only platform that enables 'build once, run everywhere'.
The situation we will have very soon is that developers are forced to maintain one version for apple devices and a flash version for all others. That already is an improvement over the current reality of needing a native port for each individual platform; but naturally it'd be best to have one and only one target.
Just put yourself into the shoes of a mobile developer. With a flash impl of your $game you will reach 90% of the audience. A second impl will be needed to reach the remaining 10%. Would you bother with that second impl?
However, I did insist on H.264 flash videos in an MP4 container (rather than using VP6 in an FLV or something else). That way, we can easily serve HTML5 video to Safari and Chrome as a straight MP4 file if we so choose in the future. It doesn't help us with supporting Firefox/Ogg/a truly open standard, but it does mean that we can support Flash and HTML5/MP4 off of one file. I truly hope that Theora takes off. I hope even more that Google open sources VP8.
I just wanted to point out that one could serve video to both Flash and the iPhone/iPad off of one file with current technology.
edit: actually I've reread it, and it appears he doesn't know that you can serve the same H.264 files via Flash and HTML5.
"I wouldn’t blame you at all if multiple encodings of every video you produce is a non-starter, and you decide to just roll with Flash for now, ignoring the minority of devices (iPhone/Android, etc.) that don’t have Flash installed."
No wonder he's pissed off.
Choosing any one option is rarely the best way to do anything. Offer whatever users need. In the early days of Internet video it was not uncommon to see 3 or 4 different video types available for download. This was in an era of considerably slower computers to do the encoding on the backend and expensive commercial video encoding software. It's not that hard to just offer FLV, straight H264 and even Theora. For other common uses of Flash offering alternatives may be a bit harder but not out of the question. If you have interactive data presented via Flash just give non-Flashers a boring ole' table of the same data. If you build games in Flash Adobe is going to give you the option to publish onto the iPhone and get into the App Store. If you are serving up Flash ads just serve a static image file instead when there's no-Flash -- many sites are already doing this today.
Sure the SWF format is currently controlled by Adobe and I'm not sure what the current status is on implementing your own Flash Player, but there are already alternatives like Gnash[1]. Adobe already has donated their Tamarin[2] AVM2 to the Mozilla foundation. There is definitely work in progress when it comes to open source at Adobe.
Then there is the Open Screen Project[3] that basically tries to standardise Flash. I mean, 99% or so of all web user has Flash installed. That looks pretty standard to me.
[1] http://www.gnu.org/software/gnash/ [2] http://www.mozilla.org/projects/tamarin/ [3] http://www.openscreenproject.org/
Which includes Safari on the iPhone, the iPod touch and the iPad.