I check in on this project every year or so, and I'm happy to see that their support for AS3 is creeping towards completion. I, like many, wasted so many hours in flash games while in school that it was sad to see an element of gaming history fall by the wayside. At least Ruffle can pick up some of the pieces. It does remind me that that there is still no way to play Wolfenstein RPG on iOS. I have an old iPod that I bought in 2010 almost exclusively to play it, but that battery won't last forever. But for now, I think I'll go and play some Adrenaline Challenge.
About 18 months ago I recall hearing Ruffle had virtually no AS3 support, and that was a show stopper for me. I wasn't expecting them to get much done on this front for years. So in that time I simply installed the last version of Flash without the time bomb. Thankfully I am wrong :)
Just to clarify: we already had a ton of work towards AS3 done before that, there was just nothing to show for it until we added some final missing pieces. It’s not like we did everything from scratch in 18 months.
Rust's type system encodes more information than most languages, and so you can offload more work to it. That becomes more and more valuable as the project grows.
Rust also attracts good developers in general, moreso than the average language certainly.
> Rust's type system encodes more information than most languages, and so you can offload more work to it.
I suspect at least one of the developers would argue with you as I have listened to his rants. :)
Rust is a remarkably poor match to implementing Flash because Flash has lots of object orientation with child and parent pointers--which Rust really hates.
> Rust also attracts good developers in general, moreso than the average language certainly.
More specifically (assuming we’re talking about the same thing), the issue is with reproducing a standard C++ inheritance hierarchy (used for both the AS2/3 native objects and for the „DOM” tree nodes), while keeping its overhead characteristics, devirtualisation opportunities, having it interact with our GC and borrow checker and still have a convenient, safe Rust API on top. Our current solution works, but has deficiencies in most of these aspects.
I suspect that it's two things: (1) the relatively good support for Wasm in Rust; (2) the Cargo ecosystem. In the case of Ruffle, the combination of the two seems particularly effective.
Couldn’t you just have a global object table and make your pointers indexes into this, using Rc::Refcells throughout? Rust is still fast with runtime GC.
> Rust also attracts good developers in general, moreso than the average language certainly.
Could you elaborate more on this? I don't think programmers that primarily use a particular language would be anymore skilled than programmers that rely on another language.
I am not going to make the claim that Rust devs are better, but when most people on this website make these sorts of claims, they are often referring to http://www.paulgraham.com/pypar.html
Discussions about Flash emulation always delve to Flash games, but beyond that, I think one of the big benefits is several informational websites that still rely on flash that haven't been able to catch up. The New York Historical Society exhibit Slavery in New York has a page called [The Merchant's House](https://www.slaveryinnewyork.org/gallery_3_1.htm) where they go through items and explain how "Everything was touched by slavery." The online version of the exhibit has a lot of information bits that rely on flash, but that one was personally my favorite. One of the benefits of a project like Ruffle is that we can maintain these works–now that the exhibit is gone, it's the only way to view this written work, and reap the benefits of the extensive historical research done.
The only thing I've seen it fail with is the [video galleries]https://www.slaveryinnewyork.org/gallery_2_responses.htm) on the same exhibit site. They're supposed to be video clips that people took in dedicated booths after going through the exhibit. I've read about the exhibit extensively and it seems like these videos were a really good insight into the way the New York public viewed slavery at the time: "They have the awkwardness of amateur home videos: background noise, long silences, people looking away from the camera." (taken from The Anger and Shock of a City's Slave Past, New York Times) It's supposed to be a subset of some 400 videos, but I can't get Ruffle to work on these pages specifically. I've had a couple flashes of audio come out of the tab while trying to view one, so I know that something is going on, but I've never been able to watch any of the videos. Does anyone with more knowledge than me know what's going on here? I'd hate to see all that disappear.
For what it's worth, the videos are still there (e.g. https://www.slaveryinnewyork.org/flash/Gallery7Responses2.fl... you can see these URLs getting requested in your browser's Network inspector) and can be readily played offline with e.g. VLC, ffplay, etc., and could be converted to a more modernly playable format just as well.
I wrote AS3 and mxml for adobe flex for several years. AS3 was in many ways ecmascript 4, and was IMO pretty far ahead of its time. Lots of things we get excited for today feels like stuff we took for granted on the web in the flash player ecosystem years ago. Don't get me wrong, there were times where it was a nightmare, but back when cross browser javascript was a struggle if it was even possible, we were able to ship a lot of great stuff.
I'd say that AS3 wasn't ahead of its time, I'd say that we were sent back in time when we had to abandon Flash thanks to Steve Jobs and the bend-over Adobe CEO at the time.
AS3 was super cool, easy to learn and safe to scale amongst many developers. Flash had gotten pretty darn fast near the end... And it was all sent down the toilet.
Killing browser plugins was the right decision; besides the poor performance and responsive design, they were a security nightmare with hundreds of unpatched issues. It can't be understated just how much safer visiting a random webpage is these days versus a decade or two ago.
I loathe Apple, but their influence in killing plugins will go down as one of the most important steps forward in web development history.
The only sad part is how many AS3 and Silverlight games just kinda disappeared into the void.
And browser extensions are better? I find so many people install browser extensions, not caring about the permissions, or even know if they're doing it, lol... way way more than they should. At least a company like Adobe that is well known, and would somewhat care about privacy/being hacked/etc, would be in the public eye.
The real argument Steve Jobs should've forced was make it work for mobile.
But that wasn't what he wanted - Flash was "free content/games", so he attacked it on one front, but won two. Sadly, Adobe didn't quite listen to the public, and he was charismatic and forceful, and won.
Since Flash has been banished, so many artists and developers have wanted something that fit that middle ground as much as Flash did. Me too :D
This roughly did happen. Apple decided suddenly and publicly that it would reject Flash (and Air), and this decision was a major part of closing the flash project.
Flash gaming was a billion dollar market at the time that Apple knew they could convert the big dev shops into native app developers for their app store (see Zynga and others) by enforcing native-only app development.
This was the last straw for flash, which was already struggling for funding. See, Flash was already a rather unprofitable project, having no app store, no ad network, or payments platform. The Flex/Flash dev licenses made only peanuts. With Apple closing down roads to adoption, this caused Adobe to finally reconsider its long term investment in runtime engines.
source: flash team friends
edit:
For history completeness, here is CNET's article with Apple's media statement on why it dropped flash. Job's statement was that Flash wasn't a good enough runtime to allow on iOS (or any runtime): https://www.cnet.com/culture/jobs-why-apple-banned-flash-fro...
For what it's worth as another Flash/AIR developer, this is exactly how it happened.
Apple is just very good at spinning the narrative in their favor, i.e. it was because of "stability/security/performance issues" and not "it's a potential App Store competitor, bury it now".
See also: Apple preventing apps from downloading/including scripts dynamically (read: AIR), which was a total security risk, until it wasn't when they lifted the restriction years later when AIR was not so relevant anymore.
The problem with this take is that it pretends that flash provided a decent mobile experience outside of Apple. Adobe couldn't be arsed to create a decent desktop experience for end users. Flash on Android was worse. If flash had survived and become the dominant mobile game engine, would mobile have become as popular? I highly doubt it.
I'm not trying to say it was good on mobile, from many accounts it was apparently bad. But we never got to find out for real, did we?
It's irrelevant though as if Apple cared so much about preserving the user experience, they would also block slow or crashy websites, which they didn't, because they don't pose a threat to their business model.
And it doesn't pose a threat because they (still) control what is possible on iOS web by restricting browser engines to webkit only.
Well, no. Let's not pretend that Apple is (or was) the only player in the mobile phone space. Had mobile flash actually provided Android with a tangible advantage, it wouldn't have died. Adobe couldn't provide a decent experience on desktop, couldn't provide a decent experience on any of the non-Apple mobile platforms they supported, but suddenly the downfall of flash was Apple's responsibility? We really did see what flash could do on mobile and it wasn't great, there was no reason for Apple to put more lipstick on that pig.
Dunno about Android, but crashy web sites weren't really a thing I've ever had to deal with on iOS (or BB10).
I'm not sure how to respond to this, it just seems to be quite a distorted Apple-centric view. I will leave a few references and make of it what you will.
"only player in mobile space"
iOS had 28% market share when the letter was published (Q2 2010), just after Symbian with 33% and Symbian was not on the same level of "smartphone". Android was 4%. So yes, what was supported in iOS had a significant effect on the industry as a whole.
Source: https://www.statista.com/statistics/272698/global-market-sha...
"It was bad/slow/unstable"
Sure, but that's irrelevant. It's not even the main problem Jobs had with it. It's that he lost control over the platform and, if you read between the lines, the App Store revenue. Read the letter and ensuing battle yourself: https://en.m.wikipedia.org/wiki/Thoughts_on_Flash#References
"It was bad/slow/unstable" Sure, but that's irrelevant.
No, it's pretty much the only thing that mattered. The iPhone wasn't the first smart phone, not by a long shot. It was the first smart phone that worked well enough for the masses. HTML5 video wasn't the first video framework either, it was the first that worked well enough for the masses. If Apple had thrown their weight behind flash, we wouldn't be having this conversation… because mobile would not be as popular. Users were not clamoring for another flash experience.
Sure, if literally everything were different flash could've been great. But that's not how life works. Sure, Adobe could've added a bunch of spit and polish (ignoring that flash was inherently bad for video), but they couldn't / didn't.
If flash were some sort of killer feature, surely Google could've doubled down on it and flown the "look how much better than Apple we are" flag. Or Palm, or Nokia, or Blackberry. Nobody defended flash because no users wanted it.
Adobe couldn't even get the desktop experience up to snuff, they had no chance with mobile. That is not and was not an Apple problem, that's an Adobe had an "awful product that nobody wanted to use on their hands" problem. Flash was as popular as it was because a.) that's all there was and b.) it allowed for abusive ads so adtech companies loved it.
Eventually they just cut their losses, without having put working versions for Android tablets or Windows Phone, and the implementations on Android and BlackberryOS having their own issues.
* Even by the end of its run on mobile, Flash had performance and stability issues:
* I am not going to link stories on security issues (there have been tons of those all the time when Flash was used, so it's difficult to find some from around 2010), but I hope you agree on that one.
* To this day, there has not been any convincing argument regarding the lack of accessibility and bad user experience with websites that included Flash elements, or the privacy issues related to Flash cookies that kept appearing.
* I don't have a link offhand because the instance I remember was in Walter Isaacson's book, but there were several people saying that Adobe engineers had been pitching Flash for iPhone to Jobs, with demonstrations, for quite a while and never managed to solve the technical issues. It is completely untrue to say that Jobs was dead set against Flash from the beginning.
> At the time I was a full time flash developer, doing flex and flash on AIR.
At the time I was a student and relied on Flash for several things (websites we had to use for lectures, games, even some development in CS courses, etc). This may be why we seem to have wildly different perspectives. But I can assure you, Flash had been rubbish for quite a long time in 2009. It was buggy, crashy, notorious for turning laptops' fans the moment it appeared on a web page and sucking batteries dry.
> One day, Steve Jobs made an announcement that Flash was crapware and had to die for standards (sic!)
Come on, Adobe is and has been many things, but certainly not a champion of open standards. Apple's track record of supporting standards is stellar in comparison.
> I fully expected a rebuttal, but instead, NOPE: he totally and literally threw his product under the bus, on the world stage.
He really did not. He complained that it was unfair, threw a lot of FUD around (there even was that Flash evangelist telling Apple to go screw itself, and look into any post by Kevin Lynch from that time if you want more vitriol). They lead an anti-Apple campaign for about 2 years at that time. What he could not do is contest the technical points, because they were founded. If it were not for the Android community trying to convince itself that Flash was great because was not on iPhones, there would be absolutely no discussion.
Then, Flash for Android stopped in late 2011 (more than 18 monts after Jobs' letter, at which point Apple and Adobe had been talking about what to do with Flash for years). This would make absolutely no sense if its only issues were politics and Apple (it was still on pretty much any device on the Internet except for iPhones and iPads), and development stopped for all platforms around 2015. None of that is the kind of capitulation you describe.
> Flash was dead. Its replacement was said to be coming, and yet nothing good came out.
That much is right Web apps took a long time to improve.
> Javascript at the time was pitiful. Typescript didn't exist yet, and MVVM in HTML wasn't a thing. We were back to web 1.0.
Come on. None of the popular websites stopped functioning. All the things we associated with Web 2.0 worked just fine on iPhones and iPads. What we lost was games, which should not have been in a browser in the first place.
> Come on, Adobe is and has been many things, but certainly not a champion of open standards. Apple's track record of supporting standards is stellar in comparison.
I don't think this is fair to say Apple is better when it's specifically the open web. While Apple has been timid to expand web capabilities, Adobe has been an enormous aid in pushing the open web, and they have teams of researchers that work with TC39, khronos, and other partners. WebGL, WASM, WebGPU, and a huge part modern CSS today is due to years of R&D and spec work. While Apple had a native app platform to lock users into, Adobe (especially post-flash) had not much to gain other than growing the web to be a better export target for their creative tools.
> Come on. None of the popular websites stopped functioning.
Popular is pretty relative. What about Newgrounds, Zynga (209 million users), schools using Flash rich media for courses, and every website that used Flash for video content. Once Apple iOS decided to forever block flash, it caused these sites to become inaccessible for years on Apple until web alternatives arrived.
Ugh flash based video was a scourge on the web. It was bad on desktop where you're tethered to a power cord and the worst problem with excessive CPU usage was that your fans would spin up. That would never fly on mobile where you're way more constrained by battery life. Besides that flash video widgets always caused problems on desktop with focus stealing and whatnot.
The benefits of standardizing video under the guise of HTML5 cannot be overstated.
I can grok the benefits of using flash for "rich" content (ignoring that most of the rich content were popup ads), but video? No. Video was hands down one of the worst uses of flash.
I totally agree. I developed a 3D rendering engine using Flash + as3, and I think it's my favourite platform I've ever developed for. AS3 is a great language - Brendan Eich referred to it briefly in his Lex Fiedman interview, apparently it was essentially a potential successor to Javascript that never made it into the browser, which I found interesting. I wish it had become a new standard.
I asked the same question in one of the previous threads. Was told that most likely Flash player includes too much licensed third-party code that it would be too much work, if at all possible, to strip it out or relicense it for open-sourcing.
At least all the relevant specifications are freely available from Adobe themselves.
> I wish there were a law to ensure that if you're not selling a software anymore, you have to leave it in public domain.
Shortening the copyright to something sensible like 5 years would've been nice too. Or better yet, require an exponentially increasing tax every year for copyright to be maintained.
Usually companies don't so this because of legal risks - ie. Some of the libraries they used perhaps they didn't license in a way that allowed opensourcing.
A law change could fix this. Ie. A new antique software preservation law could enable any software be opensourced, yet prevent any lawsuits relating to any actions taken under that law. The law could give extra incentives too, for example requiring that any software ever sold commercially either be archived in perpetuity, or opensourced. Legally archiving something forever is expensive, so many will opt to opensource it.
The problem is that these products often used third-party proprietary components. So it often isn't possible to open-source it without pruning large parts of the codebase which is expensive and makes the released code much less useful.
I'm curious. Is authorship of new titles even a possibility once this ships, or is all tooling so beyond ressurection at this point that it would mostly serve as away to revive the back catalog?
Obviously the back catalog is insanely massive, but from what I hear a lot of developers loved making Flash games - it would be interesting if anyone were dedicated enough to try to revive the scene.
It's true that it's not really needed anymore and there are some promising web standards evolving every day. But that never stopped the crazy ones from making it work anyway. People are still finding ways to make new games for old Nintendo hardware.
Adobe still offers Animate as part of Creative Cloud and you can use that to build AS3 movies. If you want AS2 you have to go back to at least CS6, though CS5.5 is preferred as it has significantly wider FLA support. (Don't ask me why that was removed in CS6.)
If you don't like the idea of paying Adobe money you can use Apache Flex, which is the FOSS version of Adobe's toolchain. That's a command line compiler tool, of course, and it only compiles AS3 files, so you'll still need to author and link graphics separately, and for vector art stuff you'd probably need to find a way to convert SVGs to SWFs, embed them in your main SWF thru some weird class declaration magic in Flex, and deal with the subtle masking problems that would cause.
It was an incredibly accessible authorship tool that produced cross-platform single-file animations that were low-bandwidth and scaled.
We still haven't made up for its loss. Javascript + canvas + web stack is a mess. If the Ruffle runtime could quickly start up, I'd start authoring new Flash.
The reason why Flash became so popular is that while the development tools cost money, the player was free for anyone to install. Browsers eventually started installing Flash by default (mostly so they could solve some of the security issues with prompt updates). By 2005, Adobe had a major monopoly on dynamic web content.
And then smartphones and tablets became a thing. Adobe didn't want to keep giving flash away for free, they wanted to exploit their monopoly for profit, by charging phone manufactures 25 cents per device for the right to include the flash runtime on their phones. Many Symbian, Windows CE, and later Android phones were paying this licensing fee to Adobe.
I suspect this royalty fee is large part of the reason why Job's "Thought's on Flash" letter came about. The letter mostly talks about need for open standards, and it is right. But I think Adobe's insistence on royalty fees really rubbed Apple the wrong way. Maybe if Adobe wasn't trying to extort smartphone vendors for royalty fees, it would have survived, and Adobe could still be charging money for the flash creative tool today.
Hell, if Adobe weren't trying to profit of the runtime, they wouldn't have had any objection to making the runtime an open standard and allowing anyone (including apple) create their own flash runtime implementations.
Flash didn't die because it was bad. Flash died because Adobe tried to exploit their monopoly for profit, and the wider industry responded to the threat.
Yes, but that's only a problem with the runtime implementation.
I remember a number of people pushing Adobe to transform the runtime into an open standard. Then every browser would have been allowed to create their own implementations that actually fit with their security model.
Because nobody ever dedicated serious funding towards a 2nd implementation. Even Ruffle is doing it on a shoestring budget (some sponsorship and a lot of volunteer work)
If Adobe had committed to turning Flash into an open standard back when it was still relevant (certainly before 2010, maybe as late as 2013), various companies like Google, Microsoft, Apple and Mozilla would have committed dozens of full-time engineers towards working with Adobe to document flash as a proper standard. And then those engineers would have gone back to their browsers to create implementations.
None of those companies would have made a 2nd implementation of flash back then without Adobe's permission. Not only did they all have working relationships with Adobe (mostly around keeping adobe flash player updated and secure), but there was a risk Adobe might sue them.
Also, without an offical standard, Flash was a moving target. Part of the reason why Ruffle is viable now is that Flash is dead, and there is no offical implementation that might change at a moments notice.
The only way this could ever have been possible is if a widely-available and -adopted Flash runtime was made that was ironclad in security and reasonably performant. Ideally, it would also have been open-source.
Honestly, while I absolutely sympathize with you and people who share your feelings on Flash, I genuinely believe that its demise was better for the web, especially given that Adobe very clearly had either no interest in or no ability to make such a runtime. With Flash dead, there was huge impetus to make reasonably open and widely-accepted standards for more explicit layout, animation, and other kinds of presentation on the web—and now we have that! It may not reproduce absolutely everything Flash did (particularly on highly Flash-specific sites like Newgrounds, where you're guaranteed to have people trying to push the boundaries of the medium), but it does reproduce the vast majority of what Flash was actively used for on the web in general.
Like, my God, do you remember the restaurants that used Flash just to do simple mouseover drop-down menus? Do you really think that kind of bullshit should still be done in Flash?
> do you remember the restaurants that used Flash just to do simple mouseover drop-down menus?
They've moved to restaurant specific apps (written in Swift or an Android equivalent), that you need to install on your mobile device just to order from their menu. While in their store already. :( :( :(
It's a pity the demise of flash killed a games/art scene, but the rest of the web is better off with flash gone and nothing new to fill that role.
The way some people used to make entire websites as flash apps that would bring old computers to their knees is not something I miss. Websites that should have just been static html, like a restaurant's website for their menu, were getting turned into monstrously inefficient interactive nightmares that wouldn't even load at all if you didn't have flash (which btw, broke constantly with Linux.)
This kind of superfluous interactivity is still possible with javascript/etc, but it seems to be less popular and is more likely to gracefully degrade (usually the relevant content still displays even if you have JS disabled.)
> the rest of the web is better off with flash gone and nothing new to fill that role.
What has filled the role of flash for commercial websites is native iOS and android apps, which still somehow end up being way larger than a flash payload and also drain battery faster.
The truly magical bit of flash though was the small scale culture of making tiny little once-off things to share for the love of it, for free. Hacker culture, if you will.
In the flash days, you could make a little toy for fun as a 10 year old kid without a credit card, post it on newgrounds for free to let others see it, brag to your friends, and feel good. Now, you need to buy a macbook ($1000) and apple dev account ($100/yr) to be able to share your dumb joke with your friends at school.
No wonder young kids instead use the even more closed roblox platform to make dumb jokes rather than building iOS apps.
Websites have gotten way more bloated since Flash died. I used to have a smartphone with 2GB of RAM, and certain websites would just crash the browser because it used up too much resources. Flash apps look light by comparison.
> Websites that should have just been static html, like a restaurant's website for their menu, were getting turned into monstrously inefficient interactive nightmares
> This kind of superfluous interactivity is still possible with javascript/etc, but it seems to be less popular and is more likely to gracefully degrade
I'm sorry but— do we live in the same planet??
Either you only browse websites you find on marginalia.ru or there's no way you're possibly serious about this.
I'm completely serious and I'm talking about normal websites found with a normal search engine. Most random websites I browse through work just fine with all javascript disabled. There will usually be things like comment sections or videos that don't load, but the content I'm actually looking for loads and renders fine. Sometimes the rendering of the website breaks and puts things where the designer didn't intend, but even in those cases the website is usually still legible.
By my estimation, 90% of websites work better with all javascript disabled (by works better I mean they displays the content legibly and doesn't waste my bandwidth or CPU time with superfluous nonsense). 9% need first party javascript enabled. 1% need more.
Here's a short clip of me browsing the top results for pecan pie recipes: http://0x0.st/HJUU.webm
I chose this example because I think it's relatively representative of normal web browsing without a techie/retro bias, but the same demonstration works with links from HN too. All of these pages are rendered with javascript disabled. Most websites behave like these. Websites that need javascript, like youtube or various social media sites (including github, the only site presently linked on the HN front page that needs javascript), are a small minority.
My first job was doing Actionscript + mxml. It was fine for the web, even as people talked about things like crashes and/or security vulnerabilities. The same can be said to be true of Javascript today (to a much lesser extent though).
But the iPhone and iOS really killed it by not supporting it, at least that's my memory of it. I remember feeling fundamentally "uncool" by doing Flash/Actionscript/Mxml because right when I got that first job out of college was when Steve Jobs was doing the "Flash sucks" rounds. "It's dead." etc.
I remember a couple of the Flash folks at my job went to a Flash conference where they would do cool things with art and animation. When they got back they bumped into some members of the iOS team who back then were the new hot commodity (both in demand and salary). And they said to the flash folks: "Oh people still use Flash?" snicker snicker.
As an entry-level at the start of my career it made me feel like I was deprecated out of the gate working with legacy tech.
I still remember Actionscript fondly though as well as all the web games I'd play.
There was the teensy problem of being an unending bag of security vulnerabilities. Java Applets were its only competitor, and Java had the disadvantage of being fundamentally designed without security in mind.
> Java had the disadvantage of being fundamentally designed without security in mind.
Nonsense. Java is one of very few languages that was designed to handle untrusted code from day 1, and it showed in having far fewer vulnerabilities than Flash.
Unfortunately the JVM was slow to start up, so you had an even worse "grey rectangle effect" than Flash, and applets like all plugins were poorly integrated with the rest of the page. Top that off with Java not being particularly great for writing UI or video in (it's fine, but it's not great) whereas Flash had excellent tools for doing vector animations and you can see why Flash was more popular.
The very idea of having a `SecurityManager` that runs in the same VM is nonsensical, but that's what Java did. Java was designed - and widely used - as a general-purpose language with full platform capabilities.
Flash at least implemented a VM with a fairly minimal surface. It can only blame its quality of implementation.
Not really. The whole SecurityManager thingie was a fiasco from the start.
It granted access to _code_, not to the environment. Basically, you declared in the manifest that "com.mycompany.blah.*" wants to have full access rights, and SM granted permissions to that _code_. So it was predictably easy to subvert this, because Java code was not typically written in defensive style, sanitizing all the input data.
All the modern sandboxes instead isolate the environment.
Don't forget stability issues. Flash was (before being banished to a separate process) the single largest contributor of crashes in Firefox, responsible for about ⅓ of them. Even in its dying days, I'd "fix" a slow page by wandering over to a terminal and typing "kill -9 plugin-container" to kill all the Flash instances on the page.
I shed tears for the Flash games that were killed off by the demise of Flash. I don't shed any tears for Flash itself.
Back in the day, before flash added 3d I wrote a flash player emulator in a Java Applet, as a "UI System" for our 3D engine. Looking back, I've literally no idea what the hell I was thinking. :-)
On Windows, you can still run old versions of Flash no problem. On macOS, however, it's more complicated because all those versions are 32-bit. On an M1 Mac you would be better off setting up a Windows VM and running Flash in that. On Intel you can install macOS Mojave, the last one with 32-bit support, on a separate partition.
Curious, are you writing Adobe Air apps? I assume the only reason anyone would be writing new AS3 code is to maintain an old Adobe Air app. I ask because the I maintain one and I find the tooling and IDE experience brittle and horrible.
We had one Air app, but it got rewritten into Unity (mobile) and is now retired. No, this one is a real Flash app (MMO game), users run it in one of two ways:
- flash plugin bundled into electron, for players with old hardware, ~30% user base
- Flash transpiled into TypeScript transpiled into ES5 JS, with custom runtime based on WebGL
The whole runtime is kinda like Ruffle, but we don't support all Flash capabilities, just what was required to make app running (but it's still a lot of API surface).
It's a profitable game with an active user base, some of which are stuck on old HW, which can't run WebGL. Flash, surprisingly, is still better at graphics than what current browsers provide.
is the authorship of bew titles possible? yes, it never stopped. check out the flash forward jam NG hosts annually
there are a few open source tools that can create SWFs, but the old adobe tools are the best unfortunately (up until cs6)
thankfully those programs are floating around out there
the only thing about flash that really seemed to die was support from adobe (and they had long since stopped caring, good riddance) and the browser plugin itself. all the rest is all still up and going
Yes, it's still possible. Unity has a lot more mindshare though. I think what made flash work was everything was made with flash, so there was a community around it
Btw there is this (commercial) tool that turns Flash to webassembly.
What they actually do is they run whole Linux (!!) in VM in webassembly, then they run the officially licensed Adobe Flash player there (and you need a separate license for that from... Harman? as those now own Flash IP).
Developer here. CheerpX for Flash runs the Pepper API version of Flash, and you're correct about the license. However, we don't do full Linux emulation just to run Flash - we emulate PPAPI and run the Flash player in an x86 JIT (CheerpX).
This is neat. I hadn't seen it before. I'm still convinced that the internet -- and young, first-time programmers -- lost a really valuable tool with Flash. It's a shame they could never get the security paradigm to work. Flash Applets had a lot of capability and a rare low barrier to entry.
I hate Adobe with the passion of 100 suns for killing flash like they did… yea it had problems, most software does, but it was like 20 years ahead of its time ffs, and the web has been ridiculously bland since they killed it. My conspiracy theory is that apple and google paid them to kill it to force sites to support mobile.
Who needs a conspiracy when your product creates such a terrible user experience? I've never written a lick of flash, and I don't care to. I still have awful memories of just how broken Flash sites were. They'd stick out like a sore thumb since none of the widgets ever worked like native ones, there were constantly keyboard focus issues in Firefox, video never seemed to be accelerated and would decimate battery life, the privacy nightmare of the persistent cookies you'd need to load a flash app from Adobe to clear (permissions as with everything else gave the finger to the host system/browser). Who could forget the near constant security and stability issues? I, for one, am glad flash died.
Flash died because while it sucked on desktop systems, it was somehow way worse on mobile just as mobile was becoming more important.
Well, we've now gone from "none of the widgets ever worked like native ones" to "there is nothing even remotely in the same category as OS widgets available to the developer". Not sure if it's an improvement.
Flash sucked. It was bad for accessibility, it was closed, it was slow, it was a way to force ads on us. Sure you could do animations, but that was not what most of use needed/wished at the time.
The only population that liked flash were:
- marketing departments
- wanna be game devs and the teenagers that played their games
I for one won't shed a tear for developers and their users that have been screwed over by their garden master. You go for closed proprietary technology because it has certain benefits, so have the consequences too. Same thing also goes to classic ASP, Silverlight, etc. You have one master.
But I can't say I did not enjoy flash games. They had a mini boom around mid to late 2000s with "tower defense" type of games which was excellent. For me it felt a bit back in earlier 90s DOS, you had a lot of well made and unique minigames heavily concentrated on gameplay as opposed to "assets"
If they hadn't EOLed Flash then projects like Ruffle would have the difficult job of playing catch up with a proprietary runtime that would still be in wide use.
I'm no Apple fan, but Apple killed it because Adobe was letting Flash be an awful, unreliable piece of software for years, and seemed fine with letting that be the status quo for a decade more. If Adobe did a better job of improving the stability and resource management of the Flash clients, they wouldn't have had to "capitulate".
Citation needed. Flash wasn't particularly more unreliable or awful than browsers were. I think that flash got a bad rap because browser vendors didn't like it's monopoly on content and they wanted a slice.
> Flash wasn't particularly more unreliable or awful than browsers were.
Citation needed. Saying that because Flash was widely touted as a significant contributor to browser crashes.
Though, looking for a citation for that myself just now... all of the search results I'm getting back are just an endless sea of "Flash crashed my browser" type of things instead. :/
Chrome was the first browser to stop letting plugins crash the whole thing, so yea it was a thing before for sure, but it was still way better than other things like ActiveX or Java applets…
This is a page where Firefox developers are discussing how to inject their own crash-reporting code into the sandboxed flash container. I never said that 3rd party plugins didn't occasionally have crashes, so I don't see the point of this link. Can you elaborate?
Javascript also has "crash protection" in the form of a sandbox. That's why pages can "crash" without taking down the entire browser. This would also work exactly the same for Flash.
I'm working on bringing Flash to iOS via browser proxy^0. Basically, what we do is run the browser on the server and stream the viewport to your regular mobile browser (ie, Safari). Then we use Ruffle injected into the remote page.
Basically it's a "monkey patch" to give you extensions-like capabilities but on mobile devices!
Adobe worked on it, and even they could not show anything convincing. This was the time when Flash was causing the vast majority of crashes on OS X. Even on Android they could not make it work reliably and it was plagued with security, performance, and overheating issues.
Adobe had stopped trying years before Apple officially stopped caring.
I remember celebrating when it died but looking back it wasn’t so bad. At least from a dev perspective, working with a batteries-included sdk from a single vendor is a lot nicer than this node_modules cancer.
Off topic, but is anyone working for Adobe here that has access to the Adobe Fastly account? If so, you should probably look into the Fastly config settings:
Fastly error: unknown domain: blogs.adobe.com. Please check that this domain has
been added to a service.
Back when being a student, I remembered following GNU Gnash effort to support for AS2 and AS3, they took years, but in the end, still could only make it work partially. Flash was still dominant in the browsers at the time, yet nobody managed to port to Gnash before it died.
The Ruffle dev team are a bunch of wizards. There have been other projects out there trying to do what they are and they took years and years to get there.
I'm not sure how they got as far as they have in a fraction of the other's time, but they're doing something right. the adoption of it is very noticable.
eat shit, Jobs.
> we can confidently avoid all the security pitfalls that Flash had a reputation for
There wasn't only memory issues. Flash was also vulnerable to clickjacking for instance.
Also, if you do not break the browsers resitrictions, flash is not feature complete (e.g., make cross origin requests and read responses).
But if you do support it, you also have the security implications.
Ruffle might ask the user, and let the user deny such requests, allow them once, or allow for a particular combination of domains, and blindly everywhere like Flash would do.
There's no technical or organizational reason why it shouldn't have ended up this way, and I have absolutely no grounds to be mad about it, and Ruffle is a great project. Flash preservation is really valuable, and I love that Ruffle is still being actively developed and improved, and I wish the project all the best.
But I am still irrationally bitter that Shumway ended up getting abandoned by Mozilla and that Ruffle took its place, for obvious reasons.
Shumway happened before Flash EOL, so it's likely that Adobe forced development to stop. Although Ruffle existed before January 2021, it flew under the radar back then. Even if Adobe had no hand in it, it's much easier (and less risky) to fund an implementation after the official one reaches EOL.
Very exciting, I recently installed Ruffle, as I do multiple times per year, to check if it already supports one of my favourite games, but sadly it's still not there. (The game in referring to is Crystal Saga) It's an MMORPG, which is probably why it still doesn't work. But I'm sure that in time, we'll get there! Exciting times!!
That's awesome you still have the files! I made a point to go and collect some of my favorite old flash games and keep them in a folder along with Ruffle - makes it super easy to spin them up again, especially as the hosts slowly go away.
Some examples: Age of War, Bloons, Bowman, Charlie the Unicorn, Frog Blender, Impossible Quiz, Interactive Buddy, Line Rider, Madness Interactive, N+, Pandemic 2, Dinorun, Ratmaze, Portal, Red., Snowcraft, Fancy Pants Adventure
Yeah I've always been a bit of a data hoarder. One file is broken due to data rott which is a shame but I have some of the old source files so I might be able to recover most of it. But everything else is on a ZFS pool now so should stick around.
I need to dig into some old zip files and see if I still have some of the old downloaded copies of some of games I used to play around