Adobe to charge Flash coders to use 'premium' features
news.cnet.com
news.cnet.com
Specifically:
Premium features licensing will only be needed when both of the following APIs are used in the same application run in Flash Player:
* ApplicationDomain.domainMemory, which provides access to domain memory
* Stage3D.request3DContext, if using hardware acceleration
--
From the article, it looks like ApplicationDomain.domainMemory is required when using the Alchemy compiler which allows compiling and running C/C++ code in Flash Player. (Hmmm.. seems like a competitor to Google's NaCl)
While Stage3D.request3DContext is required for using Stage3D which enables hardware acceleration in Flash Player. Angry Birds on Facebook already uses this.
Most games coded natively in Flash/AS3 won't require both. However, I'm not sure whether Unity's export to Flash and Unreal's export to Flash require Alchemy.
In any case, the revenue share is only required when both features are used. However, again the media aren't communicating the whole deal and again it's Adobe's fault for coming up with such weird/complex terms.
Edit:
After some quick research, it seems both Unity and Unreal's export to Flash Player feature require both Alchemy and Stage3D to work. So it looks like what Adobe are trying to do here is to generate some revenue from their 'platform' as otherwise they wouldn't receive a dime from all those Unity devs who would have easily exported their project to run on Flash Player which has a ton more penetration than Unity Web Player.
I think it is unfortunate though that they chose a 'revenue share' model.
It would have been a lot better for the end developers if Adobe just charged Unity and Epic a licensing fee for targeting Flash Player.
First of all, NaCl has little to do with WebGL. NaCl has it's own, non-web-standard way (like NaCl itself) to render 3D graphics. If you use NaCl, you likely do not use WebGL.
> By refusing to help NaCl become open-standards-worthy, Mozilla is going to end up watching Alchemy beat out NaCl (and Emscriptem) with a completely proprietary, revenue-shared (and therefore implicitly licensor-dependent) alternative.
Mozilla can't help NaCl become a relevant standard for the web, even if it wanted to. NaCl is still CPU-specific, still too complex and evolving to standardize and create alternate implementations of, and still will not be supported by browsers without plugins like the iOS browser and Windows 8 Metro.
Alchemy might beat out NaCl. It works in far more places than NaCl, but it's slower, so that will be interesting to watch. But I very much doubt Alchemy will beat 3D gaming on the open web. It isn't just Emscripten, it's also Mandreel and several other C++ to JS compilers in the industry. That approach reaches more people than even Alchemy, and it reaches them with 0 license fees.
That's how Mozilla /can/ help NaCl become a relevant standard for the web. It's still evolving rapidly! That could be a good thing because it's far too complex and cpu-specific /now/. With Moz's participation, that evolution could be directed to something standardizable. It's a lot of work, but it's better than sitting back and watching Adobe take over without asking for anyone's support.
Right now, Alchemy runs at 40% of native speed. They are targeting 80% at public launch. We'll see how that goes... Meanwhile, I've dug deep into the performance of JS and I've been happy when I can get deeply-optimized JS to reach 10% speed compared to deeply-optimized native.
Deeply optimized JS should run much faster than 10x slower than native. Most benchmarks I've run on compiled code are 2x-6x slower than native. And that is before JS engines actually optimize specifically for that type of code, which is happening this year.
I understand Moz's position. I'm just frustrated. Mozilla seems to be so proud to have finally reaching the point that we can run Super Nintendo games in the browser (http://browserquest.mozilla.org/) only 18 years after http://en.wikipedia.org/wiki/XBAND Meanwhile, Alchemy and NaCl can deliver a better-than-iPad3 user experience (zero install + sandboxed, etc) comparable to http://infinitybladegame.com/ to the browser today.
When I speak of deeply-optimized native, I'm talking about large volumes of tuned double-precision SSE vs tuned double-precision math in JS. If I were to cheat and do single-precision in SSE, it would be more like 20x. Moz is talking about adding a Matrix4x4 type to JS to make it easier for games to keep up. That seems to me like a patch to the larger problem of SIMD not making sense the context of JS.
Opera, Mozilla, Microsoft and Apple can't help Google push a standard that doesn't make sense for the web. I don't understand what you want them to do. Help from the other browser vendors can't magically fix the problems already mentioned with NaCl.
The only thing they can do, is ignore the principles of standardization and what is good for the web, and just drop NaCl into their browsers. That would be terrible though.
> Meanwhile, Alchemy and NaCl can deliver a better-than-iPad3 user experience (zero install + sandboxed, etc) comparable to http://infinitybladegame.com/ to the browser today.
http://dl.dropbox.com/u/6873971/data/cube2/index.html
And again, this is before actually optimizing for that kind of code. In a few months that will improve even more.
> When I speak of deeply-optimized native, I'm talking about large volumes of tuned double-precision SSE vs tuned double-precision math in JS.
That's true, for that kind of code JS is slow currently. Things like RiverTrail should help, but they are not close to ready yet.
JS+WebGL is great and I'll keep pounding on it. But, building JS into the world's VM because of the asteroid-like inertia behind JS is frustrating in a similar way to watching Intel bolt stuff on to a pocket calculator CPU (8086) until we get a CoreI7. It obviously /can/ work, but...
Well, NaCl is in no way a step towards that. They are completely separate technologies: One is a modified gcc compiler and custom validator in the browser, the other is a modified LLVM compiler and another modified LLVM compiler in the browser. The only similarity between them is the name, and some of the SFI approaches they utilize. But their code, potential spec for standardization some day, startup times, portability etc. are entirely different.
Supporting NaCl now would not help out PNaCl in any way. (In fact, the opposite could be argued.)
> But, building JS into the world's VM because of the asteroid-like inertia behind JS is frustrating in a similar way to watching Intel bolt stuff on to a pocket calculator CPU (8086) until we get a CoreI7. It obviously /can/ work, but...
First thing, I do understand your frustration. I feel it too.
But JS isn't just there because of inertia. There is no other valid option, all the proposals have major flaws, either technical or legal. JS also has its flaws, to be sure. But since the others are not clearly better (running faster, but only on certain CPUs is not better), JS will win because it does have inertia.
I think... I mean I guess it sounds like Adobe sees that Apple is able to get a percentage of revenue and be successful attracting developers, and they somehow think that they can do the same thing and also attract developers? Sounds like... a winning proposition to me!
If a company has no plans to use these premium features, then yes, I would imagine they will continue along as-is with Flash.
But a last thought; a revenue sharing plan like this will make big players nervous - what might Adobe starting charging for next? It will cause developers to start at least considering alternatives.
The fact that this is a pretty big incentive to change the situation of "some people [having] no choice but to use flash".
Adobe seems pretty desperate here.
In the meantime, it seems like a lot of unity devs are trying to figure out ways to get Facebook users to install the player through sneaky methods.
"What th... seriously? It's almost like they WANT flash to lose to HTML5.."
Adobe sells a Flash authoring app for $700, wouldn't that be considered monetizing it?
And Stage3 is way ahead of what one day hopefully WebGL will offer. There's no way (at the moment) of producing the same quality application in HTML5/js with the same effort you need for Flash.
Mozilla released their cute browserQuest game yesterday, something "Realm of the Mad God" did 2+ years ago in Flash.
HTML5 is very likely to be the future but there's no way they can compete with Flash at least in the areas of Games (and Audio) at the moment..
http://www.phoboslab.org/log/2011/03/the-state-of-html5-audi...
...with cigarette butts stubbed out in it.
I write games in Actionscript every day, that's my day job and it was going to be my night job too. The state of Flash development has never been worse than it is right now, and it is largely because of Adobe's utter incompetence at building tools for targeting the Flash VM. Their documentation ranges from mediocre to horrendous, their frameworks have sprawled far too much, and the runtime is needlessly fragmented. They threw in the towel on mobile development months ago. Then they killed (more or less) their Linux support. So much for write once run anywhere. And what did they declare as their new strategy? Games. Console quality, AAA dev worthy games. They're betting the whole flash ecosystem farm on people playing GPU accelerated, high quality games in the browser. Not the worst idea they've ever had, but not particularly inventive.
Obviously they were going to have to make some money off of this new initiative, and I naively assumed that they would build a really great toolset for developing these games. For some really ridiculous reason, I actually thought that they would get back in the business of building tools to let people create really great content (they haven't been selling the best tools for making Flash content for the last 4 years or so, so I thought maybe they would change that).
Instead we get this, the chocolate cake with cigarette butts stamped out in it. I fully understand that Adobe have not had the time to actually develop a useful developer's kit for game dev targeted at the Flash runtime. In fact, it might not ever be appropriate for them to do so. But right now they are struggling mightily just to remain relevant, so it seemed natural to me that whatever they did come up with would really give devs an incentive to consider their runtime and workflow as a reasonable, efficient, and cost effective option.
Instead some greedy twit seems to have taken a gander at UDK licensing costs (25% off gross after your first 50 grand in revenue), and thought, "we can charge that!" If they offered a tenth of what UDK actually offers, then they might very well have been able to charge what they're going after--9% off net from pretty much all revenue in excess of 50 grand, virtual items, whatever. How very generous of them. But what are you actually getting for this big chunk of your profit?
You're getting Alchemy, a cross compiler that compiles C/C++ into AS bytecode to be executed by the Flash VM or a binary compiled for iOS. Are you getting an industry leading developer's toolkit like Unreal? An amazing engine? A version of Gears of War 3 or some other equally massive/ambitious game to use as a starting point to base your project around? No, you'll still have to pay Unreal for that (or Unity or write your own game engine) and pay their licensing fees (remember, that's 25% off gross). Alchemy was introduced years ago, and at the time, it was just a one man project (if that, it seemed like it was just a part time project at the time). Cross-compile C and C++ into AS bytecode, sweet. Cost: free. I seriously doubt that this stopgap, bullshit, announcement has been preceded by considerably more development into Alchemy, and even if they have thrown dozens of people at the project for the last 6 months, it can't possibly justify the cost. I would think they would work for longer than 6 months on flagship product announcements that are the lynchpin for their entire damned roadmap, but at Adobe, roadmaps themselves don't seem to last that long. So will any giant game developer actually use this? I can't see how it's viable for them to use it at the public royalty rates. Maybe Zynga can get a better licensing contract than us poor schlubs, but there's no way they're going to throw away 9% of their net after blowing through 55% on Unreal and Facebook's take before even considering their own costs.
This being said, what better way to force a spin-off than to totally wreck that side of the business' pricing?
Seems like a pretty ridiculous idea to me.
The sooner Adobe makes Flash go away, the better.
I'm not at liberty to go into specifics, but for example one company we deal with charges a flat royalty off of every product that includes their tech. At the end of the month, we send them exactly 2 statistics along with a check: how many items sold, and what we now owe them. (This is a huge company and we're talking on the scale of hundreds of thousands of dollars.)
When you're a company, you don't take stupid risks like cheating out your licensors over something less than half of what you're making. It's nowhere near being worth the risk, as even aside from any legal issues, fees, and compensations, if you get caught you can kiss that licensing agreement goodbye and then you have to start over from scratch with a different platform, a different provider, and different tech.
Advertising agencies have been charging clients well over $50,000 to build flash sites for years. Are they going to have to start giving Adobe a 9% cut of everything made on their client work?
2. Flash sites should die a horrible horrible death.
Regardless, many flash developers have been clamoring for true 3D rendering in flash for a long time, and hack it together with libraries like Paper Vision. Perhaps I missed something, but the article seems to suggest that these features will indeed be available in the browser plugin, and thus usable on flash sites.
I do wonder if this will affect haxe though.
Steve doesn't understand his own article. The whole point is that they're changing for completely new functionality. These aren't improvements of the existing flash player, they're completely new additions. And beyond that the vast majority of devs will never even have to think about it. You have to make over $50k with your flash product and you have to use the premium features.
Weather you like flash or not, these new features are great for online and ios game developers and cost Adobe a lot of time and money. Also weather you think about it or not, many of the mobile games you play are written in actionscript and running in Adobe air and air apps are specifically exempt from the fees.
So all in all, this is interesting news, but it's in no way as dramatic or devastating as some people would like to believe.
Plus UDK has a similar deal.
Adobe announced a brand new licensing structure for Flash games You should definitely read the details as Adobe explains them here: www.adobe.com/go/fpl and here: http://www.adobe.com/devnet/flashplayer/articles/premium-fea... The short version is that Adobe is introducing a new revenue share licensing model where they will take a revenue share from some content publishers. Adobe will charge publishers 9% of only the revenues directly caused by the game which exceed $50K. If revenue is not directly caused by the game you pay nothing. i.e. An online teaser level for a iOS / Android game, a car company having a realtime 3d demo of their newest model which you can inspect and drive around, a 3d walkthrough for a library, etc, all would not pay the revenue share. We see this as Flash positioning itself alongside other well known distribution channels: make money through the App Store, Apple takes a share. Make money through the Android Market place, Google takes a share. Make money through Flash, Adobe takes a share. It’s also worth noting that the new Adobe license will prohibit scenarios where you’d have the first level of a game in the Flash Player, and the full experience inside the Unity Web Player. Alas, this is something you’ll need to be aware of if you were considering such a route.
You see, Flash is not web technology.Neither is iOS, or Android. Flash was web tech, a long,long time ago, but frankly the web hasn't evolved fast enough to keep up. HTML5 is still nowhere close to flash. WebGL is, but that's not exactly standard.
What I don't understand is the timing of this. Since it is popularly believed that HTML5 will kill Flash in the near future and that Adobe has stopped developing the mobile plugin (neither is true). This will only give Flash detractors more ammo. Adobe needs to do some damage control before they add more drag to one of their flagship products.