Search

Calendar

Options

Langs

Today I had some issues trying to recompile one of our SWF game to work with Flash Player 11.2 Beta. I was getting an error #2500 An error occured while decrypting the signed SWF. The SWF will not be loaded

After trying different things to understand what's going on, I thought it was just a beta bug that would be fixed in final release. Until I saw the following quote that was added afterwards to the Adobe Release Notes :

Starting with Flash Player 11.2 and AIR 3.2, content targeting Flash Player 11 and AIR 3 (i.e., content using SWF version 13 and above) will not support the experimental Alchemy prototype.

What the F.... ?

But let's explain first what is really Alchemy for those of you that haven't used it. Alchemy is a tool to run C/C++ code in Flash Player. But this is also a set of Flash Virtual Machine opcodes (low level operations) that can be used to get quick memory access.

These opcodes are available by using Haxe flash.Memory class or Joa Ebert Apparat optimization tool.

These operations allow to perform very fast memory operations that crush the performances of using (very slow) native Vector or Array classes. See for instance Polygonal Labs Benchs that show a x3 to x8 speedup by using Alchemy operations.

With native 3D now in Flash Player, it is really important to be able to use these operations as well, since a lot of API require you to build both vertex and index buffers, and Alchemy can improve your framerate by orders of magnitudes !

I've been using Haxe flash.Memory in many different games right now, in order to perform many different operations such as fast 3D (x,y,time) PerlinNoise, custom filters, fast vertex buffer creation, etc etc etc.

Seeing it removed from future versions of the Flash Player is a terrible signal sent to all Flash games developers !

So what to do ?

Adobe history of taking random decisions that piss off the whole community being what it is, I guess the only thing left it to complain, complain, and complain, until they hear us out and bring it back !

Two steps for that :

spread the word ! Tweet this post or other related news around you

send emails/tweets to Adobe community managers interested in flash gaming such as Thibault Imbert

...with the hope that it will make them change their plans.

Thank you !

Update : Actually this is even worse since existing content built for FP11+ (SWF-version=13+) and using Alchemy opcodes will BREAK as soon as you install FP 11.2 !!! You'll have to buy Alchemy2 and recompile your existing content so it can continue to work (WTF ! again) - this information is confirmed by Adobe.

I wonder if this has anything to do with Adobe making a proper production version of Alchemy. I doubt that version is being made obsolete with the latest Flash Player betas. That said, I wonder if Adobe could have some sort of Alchemy light version people could play around with. Or not completely separate, be more upfront with what Adobe is charging for the production version of Alchemy.

I just noticed that the following page with info about the production version of Alchemy was updated yesterday that says the production version will be ready sometime in 2012:http://blogs.adobe.com/flashplayer/2011/09/updates-from-the-lab.html

It also includes a link of a survey on Alchemy. I imagine that's the best way to contact Adobe about how Alchemy is being used and influence what they do with it.

It is curious how the error talks about decrypting a signed SWF. Since Alchemy appears to be moving into a commercial, licensed product, perhaps they are enforcing that the opcodes may only be used if you have signed your application with some kind of release certificate with Adobe?

Get the standard player for free, but get awesome performance only if you pay?

Emrah Ozer

Nov 23, 2011 at 20:53

Hi nicolas,

I think they are planning to end the support for "experimental alchemy". They announced at fotb that they'll turn alchemy to a final product and they claimed that this will be faster than the existing alchemy. I don't remember the exact performance diff.

It's meaningless to end alchemy support after showing unreal engine demo ( @ adobe max) which is planning to be ported with alchemy.

Update on http://labs.adobe.com/technologies/alchemy/"Over two years ago, we released the Alchemy as an experiment; we have not released updates to Alchemy, and noted from the beginning that this technology was unsupported and should not be relied upon for production content. In evaluating market needs and after receiving persistent requests for official support from developers using Alchemy-compiled apps, we have decided to invest in making Alchemy part of a commercially supported product. This next-generation of the Alchemy technology will be coming soon, and more details have been communicated in a recent Flash Player blog post. As before, we advise that developers do not use the existing Alchemy experiment to generate code for use in production."

If it really turns out that we can only use advanced player features by buying/licensing stuff from Adobe (and enabling those features by signing SWF), that would be another slap in the face of the Flash developer community, and ultimatively another nail in the coffin

"To make it clear, we are not dropping fast memory opcodes. We are actually working on making it better and supported through Alchemy 2." -Thibault

Sounds like this is temporary.

Bilal

Nov 23, 2011 at 21:25

Why you cut the paragraph you quoted?

The important portion declare that Alachmy is moving to a production version:

''Update – Nov 22, 2011: Starting with Flash Player 11.2 and AIR 3.2, content targeting Flash Player 11 and AIR 3 (i.e., content using SWF version 13 and above) will not support the experimental Alchemy prototype. Existing Alchemy experiments targeting Flash Player 10.x and AIR 2.x are unaffected. We’re continuing work on the new production version of Alchemy for next year that will allow developers to publish Alchemy-enabled content targeting Flash Player 11 or AIR 3 and beyond. And if you’re interested in Alchemy, we invite you to participate in our survey. We appreciate hearing your thoughts and feedback!''

Yet another reason I am all for something like HaXe and dropping Adobe off at the next bus stop. It has been a great product and has kept me employed for years but the time has come to evolve and move to something a little more open (e.g. HTML5, HaXe, etc.)

As for the announcements regarding Flash Player, Flex and the like, while I agree it's time to re-strategize on some things, their delivery of the message was so poor. Somebody should fall on the sword, might as well be their CEO. OCCUPY {insert some random city here}

My guess is they've found a better way to implement the fast memory opcodes, and don't want to have to support both the new and the old opcodes forever. Plus the new Alchemy will be a paid product, so apply some gentle pressure to people to get them to pay for it by limiting them to flash 11.0 or below for the old experimental alchemy. I think it's a little silly that they disabled the old Alchemy opcodes before the new ones are available though...

Sven Dens

Nov 23, 2011 at 23:24

While I can totally understand Adobe's move to commercialise Alchemy, the way they're going at it seems terribly wrong. Consider for a moment: which Flash developers are affected by this sudden decision to no longer support the "old" opcodes in FP > 11.2? It's not the newbies & juniors. It's not the banner guys, nor the mediocre developers. The ones that actually know why they're using Alchemy in the first place are the *TOP* Flash platform developers! The guys that have brought us great 3D-frameworks, guys like Joa and Mr. polygonal, guys like Andre Michelle and so on... Why on earth would you want to offend the people that advocate for your platform with their great work in a time where that same platform is under pressure as it has never been before? Quite astonishing to me...

I installed FP 11.2 beta today and ran my Alchemy project and it worked fine. But it was built targeting swfversion=11 (FP 10.2). So it seems that as long as you compile for swfversion<13 you can still use the pre-release Alchemy in FP 11.2.

Sorry about the delay in responding to this. It is a holiday here, so it has taken me a little longer than normal to find some information on all of this.

The changes in the current Flash Player beta are targeted as part of the process of making Alchemy into a product. However, it is clear that the current solution is not optimal for developers using the undocumented op-code APIs directly. We don't have a solution for this just yet but our goal is to provide one. We are in the process of reaching out directly to developers to help come up with a solution that will ideally address these concerns.

In the meantime, if you need to develop on the latest beta player, then you can use the beta standalone players (standard and debug). The op codes still work there (let me know if you see otherwise). You can grab it from here:

Thanks for the clarification Mike. After the horror that was a week ago I'm sure you understand people's worries, and why they are jumping down Adobe's throat over this.

This is going to sound ridiculous, but do you actually survey / talk to any developers before deciding on things like this? There are people in the community that are looked up to ie Nicolas here, or Andre Michelle (for more pure Flash) who are horrified by this and, if you keep doing things like this, will turn on the community they have fostered.

Flash is a community that is built on experimentation and on pushing boundaries. You let us experiment with Alchemy, push boundaries with it, and now want to take it away. It is fair enough if you want to start charging for it, that is for the toolchain to make it easy, but to remove it for those experimentors that have been the people showing how awesome your (Adobe's) product is just stupid.

If you keep doing things like this you will have more and more people stepping away from your products, both player AND development suites, because they can't trust you and don't feel their work is appreciated.

I use haxe as my general day-to-day programming language because it is simply easier / faster than Flash. But I use the Flash IDE for layouts, animations etc. And I am very happy to pay for it because it makes my life easier for these tasks. I would likely also be happy to pay for an Alchemy toolchain if this made my life easier for specific tasks.

If you are removing the opcodes for Alchemy for a technical reason then tell us this. Is it because you cannot support the current opcodes as well as the new ones? ie you only have a max of 255 commands (1 byte) and this will make too many of them? At least we could understand why you are making such a decision, even if we were not at all happy about it!

@Subb, Hey your looking at a lot of the guys who push the boundaries of what is possible, test, develop comment, promote, the true "hardcore"/"Experimental" end of the flash development scale, I would love to be as talented as a lot of the guys but they really do amazing stuff which beneifts the WHOLE flash community These are are behind most of the amazing flash content you see on the net who create stuff and do all this cool experimental stuff so that adobe get the feedback they need to make it to something everyone else is able to us and benefit from, you see they also the guys who feedback on all the BETA releases..

@Mesh We just had us worried that it was all going to get taken away with no replacement. Mike I think you calm all our nerves which have been all on edge recently.. So thanks for posting even thou you where on holiday this is very much appreciated. I Think I can say for everyone we are super exciting to see what performance gains will come out of using alchemy v2, Can't wait to play with it, So any new bits of info you can send our way would be most appreciated :-)

PR wise please blog and tweet news as most of us watch your feeds and keep us all up today we stop us all panic-ing as i not sure if anyone really reads the official blog info as it off our radar as we wanting the cutting edge news and love to hear what your up guys are all up to as there is a lot of warmth and love towards the Flash Platform Team...

From September: "We’ve been listening and have decided to invest in creating an improved version of Alchemy, which we plan to release as part of a paid production offering for commercial development. We intend to make non-commercial use free of charge."

I hope that this is no longer the plan. Given the new direction of the Flash ecosystem, locking down capability in the player for proprietary tools is pretty short-sighted, and seems quite arrogant. Being the best cross-platform browser-based toolchain was the competitive advantage for Flash. For game development, AIR has more significant competition.

You'd be far better served by actually making the best content creation tools rather than reverting back to the old philosophy of crippling any third party offerings.

My old projects using Alchemy or Azoth still work.But it seems that you can't compile targeting flash player 11.2.Hope they can fix that, it's not a good idea to ban us to use Alchemy v0.5 with latest flash player features.Also, check this:http://forums.adobe.com/thread/928606

David Q Hogan

Nov 24, 2011 at 09:37

Hi Mike,

Thanks for responding to the community!

Just wanted to add my voice to those calling for continued support for the alchemy memory opcodes. I'm currently using a HaXe JPEG encoder optimised with those opcodes, and as we need to be able to encode as many JPEGs as possible per second, the performance boost is core to the capability of our product. Will certainly be licensing the official Alchemy product when it arrives.

Even worse. If you have old content (SWF 12) and this content needs to be loaded into a different SWF via flash.display.Loader for instance the same applies and your old content is broken.

Why is this bad? Because it breaks backwards compatibility. Alchemy has been part of the Flash Player for 2+ years now and you cannot argue that this is some kind of experimental mumbo jumbo anymore.

Adobe made a bad decision by restricting access to this, breaking even old content.

I remember a lot of people saying that you can still run old Flash content in the latest Flash Player and it behaves (sort of) the same. This was also a well played argument in against HTML5. Well. Not anymore.

An example of why this is bad and what I am talking about can be found here. The 12.swf and 13.swf load library.swf which was exported as version 11. The difference is that in the 13.swf the old library.swf will no longer work.

We are should hear Mr. Roger Gonzalez! http://rivetgames.com/the-future-of-flash-game-development/

//I believe the best long-term salvation for Flash is to open source the Flash Player, similar to how Adobe contributed AVM+ to Mozilla for the Tamarin Project. By combining disciplined project management with a huge population of contributors, Flash would increase in stability and platform reach with little work by Adobe, and sales of Flash tools could be contribution positive for many additional years.

Adobe: if you love Flash, set it free!//

I add only -- Adobe set free Flash runtime for it lovers and it haters!

Hallelujah and stay tuned.

HB

Nov 27, 2011 at 20:08

I also use Alchemy in some of my projects and hate this decission, hope Alchemy 1 will be enabled again, and disabled only when Flash 12 comes out (or Alchemy 2 is ready for use). But I think you should update the news regarding that there will be a free for non-commercial solutions license, and that compiled SWFs won't be broken just by installing the new Flash Player.

There was some reference in that official release that there is some of the new codes already in 11.2, and at a guess that's why they're dropping the old? So there's no incompatibility?

I have a horrible feeling the "listening" they've been doing has been only to the companies ie Unreal / Unity, and not their developers. This is kind of insane seeing as it's those developers that have made Flash what it is today. And by developers I mean designers too! The reason that Flash always went so well was because people could push it, both technically and creatively. The same reason Silverlight crashed, it wasn't a design tool.

It's sad to see when the top people ie Cannasse / Ebert are complaining about this that Adobe just ignores it. Seriously guys. You want to simply become the people who make the player that you play Unity / Unreal games through? Flash was one of the biggest reasons the Indy game scene has come alive in recent years, and so many people have got into making games. You want to kill that? (I now do not know who I'm ranting to sorry)

''every single time you make a stupid move, i'm considering going back to java. flash player is so much better than java for apps like irc clients or photo editing software, but you're making mistake after mistake, pissing off people.

first you've dropped air for linux. then you've dropped hardware acceleration for stage3d in flash player for linux. while i can understand both moves (hard to maintain in as fragmented as linux environment air runtime, linux gpu drivers going bonkers), locking out old alchemy opcodes to 10.2 and below is as bold as insane. people have commercial 3d-and-alchemy-based projects, people have deadlines. people that trusted you, people that helped you, the best of the best flash developers. luckily i'm not one with such a project or i would just say 'screw you, adobe'. some of them will. you can't just take it away without giving new version immediately to all parties. if you'll give it to selected parties only - it'll get disassembled. if you'll give it to selected parties only and swf files using new alchemy will have to be signed - you'll shoot yourself in the foot once again. i guess people would accept the fact that swf files using new alchemy will have to be signed, perhaps even the fact they would be signed at compilation stage, with all new opcodes remaining a mystery, if you would give them the damn thing already, not months after locking the 3d world for old alchemy opcodes.

seriously, adobe, what are you afraid of? that performance gains from using new alchemy won't be as big as bold your claims are? or that people won't buy it because they'll decide that old alchemy opcodes + 3d performance of flash player 11 (considering the possible lock of new alchemy world to some form of swf signing) will be enough for them? you should have locked it with flash player 11.0 release then. now you should leave it as it was, with warning that it'll stop working for flash player 11+ content when alchemy 2 gets released, and with some alchemy 2 prerelease, making it possible for developers to switch from whatever they're using (haxe/apparat/whatever) to alchemy 2. they would understand and they would pay. what they don't understand is how you can treat them this way after all they've done for the flash platform.

what i don't understand is how you can be so stupid. seriously, are you fuckin' nuts? you want respect? then respect the developers using your software, coding for flash platform and working on keeping it on the bleeding edge, because without them you wouldn't have much. if you want them to keep buying your software, respect their software and their work. right now you're just intentionally screwing them, and that's not a wise move. at all. sure, you can say the same thing about using alchemy with flash player 11 in production environment after your (a little bit late, but still) warnings, but that would just mean you don't understand the community. flash was always being pushed to its limits and you gave them the best shiny-shiny toys they ever dreamed of, making it possible to push the limits even further. now you're just taking it away, saying 'get lost and prepare your cash, but for now just wait'. i guess they were just considering you to be a little bit more reasonable, expecting you to act in a mature, not greedy way. ironically, with moves like that you will loose not only money, but some of the best developers out there - and flash platform needs them. you need them. can you afford it?

ps. sorry if this comment doesn't reflect the exact situation at this moment, but i'm temporarily on 32kbps connection and still doing research in this matter, so i'm not sure if the information i've gathered up to this moment is up to date.

ps2. don't get this rant wrong, i'm not some sort of foss hippie - quite the opposite, i'm against opensourcing flash player. i respect the fact that you have a vision, ideas, and that you're working hard to make it happen - and with flash player development driven by the always-innovating, never-sure-what-to-do community, the only thing that would happen, would be a disaster. you just have to understand that using bleeding edge stuff in production environment is in our nature - after all, where's the fun if you can't use it? please, stop making mistakes. otherwise more people will get pissed and when you'll reach some critical mass, they may as well jump the haxe/nme bandwagon and code complete air replacement, targeting both desktop and mobile envinronments, able to generate native android/ios binaries without any problems. and after all, that's what you're after, right? who needs alchemy performance? game developers. and which market is the biggest one? mobile market. you think you're the only one able to target it with one unified api and sdk? think again.''

a little bit late, but who cares.

Oreyne Lang

Jun 11, 2012 at 22:26

Somebody can send tutorial about alchemy to my email.I can´t open page of Adobe. Please, some help is needed