Gamasutra: The Art & Business of Making Gamesspacer
View All     RSS
July 28, 2014
arrowPress Releases
July 28, 2014
PR Newswire
View All
View All     Submit Event





If you enjoy reading this site, you might also want to check out these UBM Tech sites:


 
Let there be Flash
by Anatoly Ropotov on 11/09/11 12:12:00 pm   Featured Blogs

The following blog post, unless otherwise noted, was written by a member of Gamasutra’s community.
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.

 

 




"Adobe ceases development on mobile browser Flash"

It might sound surprising, but there are so many reasons why Adobe never had a chance on mobile platforms. But they still had to try. Let me share my insight on why Adobe entered this market and how it might still redeem itself after years of failure.

(*disclaimer* I started using Adobe Flash over 10 years ago. I'm still big proponent of a desktop web with Flash, and I'm what you might call an opponent of browser-specific HTML5 and crapware like Java. I prefer native code on mobile platforms. *disclaimer*)

One might think the whole initiative to put Macromedia Flash on mobile was devised for a single reason, to have the "mobile" box checked for investors. You can read about how it all started on Wikipedia. It all started with a wrong vibe: having a "Flash Lite"-enabled phone never actually meant anything. I guess Japan was the only market that cared about this technology. Carriers elsewhere never gave it the chance to become an App Store. For the next 6 years, Adobe tried to improve things, leading only to an increased sense of confusion among the userbase. They were left wondering, "Why does it say Flash is enabled, but there's no Flash in the browser?". The most advanced users who knew how to download SWF (Shockwave) files haven't seen a killer title. A similar story with "Flash Player" repeated itself on... Sony PSP that was able to launch standalone SWF files with poor performance.

Let’s be honest now, have you actually TRIED using Flash on Android, the first platform to fully utilize Flash inside the browser? A year ago, some of us were excited to run Farmville on Android phones, only to find out it takes an entire minute to load and the game runs at few frames per second. "Well, it's the first release, they are going to address it", some of my friends told me. My reply was a resounding no.

When iPhone came out, there was much excitement around a perfect mobile browsing experience based on Safari/WebKit. However, counter-intuitive to the expectations set on the desktop, Flash was missing. It was a bold move on behalf of Apple and it clearly made sense from the standpoint of user-experience. It is impossible to leverage Flash into an underpowered platform.

Say you visit a site with 5 Flash banners and a video set to autoplay, several instances of Flash player might spawn automatically, depending on the plugin and browser architecture. It's fine on a PC with enough power, but it is a miserable experience on low-end netbook. Now, time-travel 10 years into the past and imagine a Pentium III-833 trying to render the same site. It would be a total disaster, crawling at a few frames per second. The entire experience would be as repugnant as playing Doom on your 3DO: sure, you can do it, but all your friends would be making fun of you for it. The original iPhone, iPhone 3 and even the 3GS have processing power comparable to a P3-833. With the single-tasking of early iOS, a web-page with five instances of Flash player had no hope of performing well. And that's not the only problem. The content from each Flash player instance had to be scaled down to the confined dimensions of the browser, and scaling in flash has NEVER been a lightweight operation. So, Apple's move was justified and reasonable. The entire core user experience would've been bogged down by Flash. 

As the App Store gained steam, Adobe thought that another flavor of a "Flash Lite", AIR VM would be just right for the iOS. Apple did the right thing again by preventing a flood of crappy, slow Flash games, which would not only have undermined the importance of high-quality native content, but would also have raised questions about why the iPhone was so slow running Flash. In 2011, Adobe took another shot at improving their mobile AIR VM this summer and with a lot of pressure on Apple, the floodgates for Flash applications for iPhone were opened. Six months later, we could find very little sign of Flash-developed content in Top Grossing of App Store and Android, except for some rare exceptions of non-demanding media content. I'd be grateful to anyone who can provide a trace of high-quality content in the App Store that has been authored with Adobe, like Machinarium (iPad 2 only).

Let’s also look at it from the developer’s perspective, what's the story of Flash on Android? It's similar to that of Flash on Linux. It was easy for Adobe to say "yes" to Android, and Android benefited greatly from real Flash support. With it, they have finally gotten rid of an obscure "Flash Lite" branch that didn't make sense anyway.  I guess it must have been easy to port Flash, since there were many flavors on Linux, for a variety of architectures. However, they were always obsolete and outdated due to Adobe’s AWESOME, strict QA policy, to the effect of, "do not release early an RC to the public." This has since been changed, and posed an even bigger problem of segregation on Desktop, but that's a different story.

As a bold marketing move for the entire Android platform, stating "we are Flash enabled "created a lot of buzz and sparked a holywar between Apple and Google fans on the scale of "Windows vs Mac.” The motto worked, with a few kinks. There was confusion created by handset manufacturers promising phones to be "Flash-enabled," and some of the handsets never actually got Flash support, since vendors didn't want to provide upgrades for outdated Android 2.1. Some vendors knew that Flash support on low-end phones would be sub-par and took a firm stance, similar to Apple’s. And those users who ended up with Flash on their Android device never had anything worthwhile running on their screens to show their iOS-touting opponents, except for some banners and very light Flash games. And let's not forget about the "battery hog" issue. 

Anyway, let's skip forward to 2011. There are 600+ types of Android handsets, hundreds of millions of mid- to high-end smartphones, just few million tablets, several CPU architectures, and a variety of resolutions, screen densities and video chips, some so bad as not supporting modern versions of mobile OpenGL (GLes 2.0). 

Yet, there’s still very little content worthy of being mentioned as produced for mobile AIR. Some companies, for instance Kongregate, made a bold move in creating their own marketplaces and establishing eco-systems for Flash developers, however they didn’t grow big enough on Android to improve the situation. 

How did Adobe end up in this position? With thousands of exceptional Flash games available, Adobe ended up without their own standalone Marketplace due to... lack of content that actually works. Social and flash game developers didn’t even have access to micro-transaction support in AIR until a very late release last month, so they didn’t make the first move. Adobe didn’t attract high-quality showcase content to the mobile AIR platform either, so great developers didn’t follow. Compare that to Unity, which boasts ambitious MMO projects and has hundreds of developers on board. Adobe only started caring about high-profile titles when Angry Birds was released for Google Chrome using HTML5, showcasing a competing technology and exposing their vulnerability. In contrast to Google, Adobe doesn't market showcase products to end-users. Their mobile showcase products are overly simplistic, i.e. games with a single object on a scrolling background. Entire effort feels like it's not aligned with their brilliant Desktop strategy.

So what's coming next? Another year for Adobe AIR on mobile. One of the latest products released using new, revised technology is Age of Defenders, a nice 2D tower-defense game that features online multiplayer. This time Adobe did a lot more to make sure things work, but their efforts have still fallen short. It only works on iPad 2, since it would run too slow on the original iPad. It only works on 1280x800 Android tablets. Did I mention that there are only a few million of those in the wild? What’s worse, it requires a separate install of Adobe AIR once you have the game, so if AIR fails for some reason, it's time to ask for a refund. This brings even more uncertainty of whether AIR will work fine on lower-end Android smartphones...

If Adobe is to make a difference on mobile platforms, they will have to fix AIR for both iOS and Android yet again, and play another round of catch-up game with Unity on mobile. What's worse, frustrated developers are beginning to realize that Flash doesn’t offer anything to them on mobile. In reality, it isn’t a cross-platform game engine like Unity, it’s still a slow virtual machine for a scripting language that ended up recompiling code to speed-up itself. Dozens of social game developers aren't betting on Adobe, but develop their own native versions of mobile social games. The only hope for Adobe is high-end hardware: iPad 2, iPhone 4G and high-end Android smartphones and tablets. That's quite a small piece of market for now, but it'll keep growing. Will I bet on AIR for my next project? No, I want 100% of the devices, not just 20% - that's the premise of Flash on Desktop.

Will HTML5 overtake Flash in the meantime? This won't happen on Android due to hundreds of millions of phones with outdated WebKit, which will remain like that FOREVER. A reasonable reach for HTML5 games might be on iOS through Facebook, they are making a certain progress there, however the battle with Apple gives them hard time increasing userbase (and frankly speaking, Facebook isn't fond of promoting games for free).

There's no reason for Adobe to worry about increasing HTML5 adoption on desktop as well. It’s just as fragmented by the discordant implementations of Canvas, WebGL and Sound and endless monthly browser updates breaking things around. The only place where HTML5 games gain traction so far is Chrome WebStore, where Google is making a major push, but that's a totally different story which has it's own segregation issues that will last for years. 

I sincerely hope that Adobe will succeed in improving things with mobile AIR. Their upcoming Flash 11 showcase products are awesome. The UE3 engine, and Unity export will definitely redefine desktop Flash yet again, but this has nothing to do with their mobile venture. For that, they will need strong allies at their backs.  Will anyone deliver great content with Flash for Mobile? We might see something in the next few weeks, with the Adobe AIR App Challenge.

Related Jobs

Integrated Military
Integrated Military — Remote Work Possible, Florida, United States
[07.27.14]

Software Engineer
Cloud Imperium Games
Cloud Imperium Games — Austin, Texas, United States
[07.25.14]

DevOps Engineer
Cloud Imperium Games
Cloud Imperium Games — Austin, Texas, United States
[07.25.14]

Animation Programmer
Cloud Imperium Games
Cloud Imperium Games — Austin, Texas, United States
[07.25.14]

Server/Backend Programmer






Comments


Titi Naburu
profile image
The problem that not only Google and Microsoft are fighting Adobe, Mozilla is too. So big companies will hire lots of programmers to build new HTML5 websites, aplications and games. whereas small companies will get their products banned from newer web browsers.

Anatoly Ropotov
profile image
Products banned from web browsers? Won't happen.

Ben Rice
profile image
"This won't happen on Android due to hundreds of millions of phones with outdated WebKit, which will remain like that FOREVER."

While IOS Safari has been pushing HTML5 support for awhile, HTML5 support began on Android with 2.0, and has improved slowly each version increment.

Additionally it would seem that less than 5% of android phones are below 2.0 at this point:

http://www.androidtapp.com/android-tablets-only-tipped-one-percen
t-market-share-nearly-one-quarter-of-android-devices-upgraded-to-
gingerbread/



So, i'm not entirely sure how valid this argument is which sounds a little biased. I'd be more willing to agree that HTML5 support on all mobile devices overall is pretty abysmal, and really needs a kick in the butt in terms of standardization if it's every going to massively succeed.

On another note, i'm curious why you believe Java is crapware. I'm not offended, it just caught my attention.

Anatoly Ropotov
profile image
Hey Ben, I totally agree with you on standardization and abysmal support. I'll follow up with expanded answer soon.



As for Java - I'm referring to "Java in browser", not Desktop Java or Android Java.

Closest match to "Flash Player on Android" is "Java in browser on Desktop".

Bruce Keffer
profile image
Adobe has always banked upon their global community of developers to find and share the benefits of Flash. HTML5 was a challenger that only needed acceptance by a few die hard Flash Devsigners hopping on the Canvas & Video tags bandwagon, to threaten the Flash foundation.



Adobe did not do anyone favors by abandoning the need for a razor thin Flash player either. Now with the Director killer facing the dead man walking shuffle and a power cord pull on the mobile market, looking at Muse and edge a second time makes it obvious that the pair of beta packages have been placed withing the line of waifs looking for parents to wrap fingers on and take the bumpy ride into an HTML5 future.

Anatoly Ropotov
profile image
HTML5 can do only one thing that Flash does well - play a video. Everything else is segregated, slow and buggy. HTML5 is as big myth as Adobe's SVG+JS attempt to beat Flash in mid-2000s.

Anatoly Ropotov
profile image
So on second thought, who cares about browser games on mobile phones? Do you play any browser games there? Would you like to play any? With all those browser scrollbars, absence of full-screen mode, etcetc. The answer until iOS 5 was... NO. Very few cared about browser games, WAP-like game content is still popular in low-tech regions but has nothing to do with HTML5. Native apps are awesome, speedy and cool. Nowadays it's impossible to convince anyone to do things inside a browser "if there's an app for that" (referring to that famous Apple ad). Apps give users access to native payment methods with single click purchase, browser doesn't. As Adobe wasn't able to throw the ball into the "mobile Flash game" court, the fuss with HTML5 was all about "Flash sites that iOS can't open", "video doesn't play" (outdated SWF video players, there are very few left as it's easy to fix media delivery with few html tags) and crappy banners (a lot of ad networks fallback to animated GIF anyway) and a lot of people hate that on Desktop as well.



Anyway, neither HTML5, nor Flash had reasonable chance to solve any game problems on previous generation lower-end smartphones. The weird part is that it's too late to work on any standardization - new WebKit is super cool, new devices run HTML5 at blazing speed - thanks to the desktop browser wars. But there will always be low-end Androids in emerging markets and they won't have a chance to run HTML5 games unless these games are reaaaallly simple, but then HTML5 makes no sense and is just another flavor of JavaScript. Summarizing: Users running HTML5 games on old Android phones will be forever disappointed both in an "Android platform" and "HTML5"...



(Also, in case anybody wants to play HTML5 bullshit bingo and shout "WebGL!"... Well, that's just another flavor of VRML from 90s. Even though a new update to mobile browsers might potentially add WebGL support, this will introduce yet another level of segregation by video chips, processing power and feature support, actually introducing more problems than solving.)





So what's all the Adobe fuss really about?



1) It's about "Flash Lite" that should've been killed earlier or Adobe had to acquire Unity3D at earlier stage and integrate that tech into its pipeline for game developers.

2) It's about distribution power. There are 3 ways to spread your apps now: Google Market, Apple App Store and potentially Facebook app: FB just threw HTML5 mobile game ball into court. Adobe could've been there with their own marketplace, but missed a chance.

3) It's about the desktop naysayers who hate Flash on Desktop Web. Imagine for a second there would be no Flash on Desktop. No feature-rich multimedia sites. No ways to seamlessly author and blend high quality scalable vector and multimedia content (there's no alternative to Adobe Flash).

Most of the major sites on mobile have own apps anyway, so Flash isn't such a big deal.









----

PS Correction to 100m number of outdated Android. It looks like I've exaggerated that number in relation to Android. 100m+ is a number of smartphones that lack full-scale Flash support. Android number is probably closer to 60 mil according to my calculations below:



The whole mobile market: iOS (20%), Android (40%), everything Symbian (15%), BlackBerry (15%). The last two have enormous segregation and few touch screen devices, so we'll just ignore them when talking about HTML5 games. iOS has perfect HTML5 support with blazing speed so it's perfectly fine to target iOS with HTML5. (Except 5% (?) percents of original 2G and 3G devices that won't support iOS5 or will be too slow)



Diving deeper into 40% market share of Android: http://developer.android.com/resources/dashboard/platform-version
s.html

Even though it looks like 80% of Android phones are actually Froyo+, there are 30% of low-end phones with MDPI displays: http://developer.android.com/resources/dashboard/screens.html

A lot of them are really abysmal phones with ~600MHz processor, so HTML5/Canvas/DOM is a total disaster there. This data is based on devices that did connect to Android Market in last week and there are hundreds of handsets without access to Market (e.g. China).



Anyway, reasonable mid- to high-end Android userbase should be on par with entire "iOS 3GS and higher" userbase.



With that in mind, let's see what kind of things we could do on HTML5 performance on iOS 5 and Android 2.x branch.

iOS 5: rich games running at 30fps+

Android 2.x branch: probably similar, yet slightly slower, 20fps+ on higher end phones that have smaller share than iOS 5 phones

Android 4.x: 0 phones and 0 users so far, possibly tens of millions in a year, still huge segregation.

Christopher Moyer
profile image
You were doing well up until you called WebGL a flavor of VRML. The two are not even close on so many different levels. I appreciate your article and opinions, but your lack of fact checking, and to a lesser extent your propensity towards passing opinion off as fact, are getting in the way of your message.

Anatoly Ropotov
profile image
Hey Christopher, sorry for not answering earlier.

Thanks for pointing that out, I should've been more clear about my allegory. Indeed, I do not "fact-check" as either me personally or my teams that have shipped hundreds of products use (or "have used", in case of VRML) these techs. I actually share hands-on experience, not opinions.



I was referring to WebGL vs VRML due to the following aspects:

1) Every browser (or a VRML plug-in) has it's own unique implementation with coding quirks affecting performance as much as dropping FPS to 1.

2) It doesn't have decent penetration.

3) It's slow by default unless you have a modern PC.

4) It's actually worse than a plugin. You can't update it without updating a browser and you can't expect your code to work the same way in another browser.

5) Anyway, do you remember SVG in 2003-2004 when Adobe tried to beat Macromedia? Same stuff here.

Renaldas Zioma
profile image
Aren't all Flash problems on Mobile simply boil down to the fact that SWF was designed with software rendering in mind? It is virtually impossible to make it efficient enough to run games on Mobiles (as it is a significant challenge to get it working reasonably even on consoles).



Flash games on Desktop have a luxury of wasting lots and lots of cycles and energy. But situation is quite different on Mobiles (at least so far).



To be successful on Mobiles IMHO Flash functionality needs to be _redesigned from the ground up_

Anatoly Ropotov
profile image
Hey Renaldas, long time no see :)



There's a bit of mixed truth here.



The short answer is - check out ScaleForm mobile demos rendering Flash at blazing speeds. SF was initially based on some semi-hackish VM for Flash with D3D/OGL mapping as well (developed in Russia, w00t). Their Flash-based UI samples are actually running at speeds beyond Flash VM machine.



The long answer - you are somewhat right if you'd time travel into 2008. It'd be problematic to map sprites and movieclips to ^2 textures on older phones GLes 1.0 on first gen of iPhones and <=2.0 Androids. Nowadays I can't see why things couldn't have been accelerated for GLes 2.0 - there are plenty of native apps that waste cycles far more intensively than a Flash game that re-renders entire screen every frame... Flash player has somewhat efficient dirtyrect routine plus there's a bitmap caching flag for objects, so pixel shader based approach with dirtyrects might've worked even for games with vector animations. Flash devs were used to optimize things until Flash Player 9, but nowadays with gigs of ram and fast cpu they've stopped caring about those tricks that were part of being a Flash dev.



Anyway, you are "da rendering guru" and I'll be glad to hear your real insights on the issue.


none
 
Comment: