Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ruffle: Flash Player Emulator (ruffle.rs)
351 points by rapnie on Oct 22, 2023 | hide | past | favorite | 173 comments


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.


the more I look, the more Ruffle seems to speed along. how did they get so good (and this fast) ?!?


Unironically, because of rust.

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.

I suspect this is way more relevant.


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

Note that a lot has changed since 2004 :)


Thanks!


probably because of the sponsors


Newgrounds being one


Wow, last I checked they were just getting started on AS3. Crazy to see how quickly they're getting there.


> It does remind me that that there is still no way to play Wolfenstein RPG on iOS.

This may change very soon :)

https://github.com/hikari-no-yume/touchHLE/pull/139


I will be following this very closely.


Same. I’m still looking for a way to play Inishie Dungeon again.


I wish some of the long standing PRs Ruffle has would actually get in


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.


Ah, good idea! For those who are curious, here is the completed set of links.

https://www.slaveryinnewyork.org/flash/Gallery2Responses2.fl... https://www.slaveryinnewyork.org/flash/Gallery7Responses2.fl... https://www.slaveryinnewyork.org/flash/Gallery9Responses2.fl...

The videos are densely packed with great insight from many different points of view. I'm very happy I was able to watch them.


I've passed this on to the Ruffle team, thanks! They are working on improving support for external videos, which was added only a few months ago.


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 too did that for many years.

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


Better not have WebGL and WebGPU enabled, and hyperthreading disabled.


> we had to abandon Flash thanks to Steve Jobs and the bend-over Adobe CEO at the time

For the record, that is exactly how it did not happen.


I'm not sure what your references are, so let's discuss.

At the time I was a full time flash developer, doing flex and flash on AIR.

One day, Steve Jobs made an announcement that Flash was crapware and had to die for standards (sic!)

I shook my head in disbelief. The same week, the CEO of Adobe (some shmuck) went to CNN to address what Steve Jobs had said earlier this week.

I fully expected a rebuttal, but instead, NOPE: he totally and literally threw his product under the bus, on the world stage.

Flash was dead. Its replacement was said to be coming, and yet nothing good came out.

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.


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...


Thanks for clarifying, you explain it better than I remember it.


> no app store, no ad network, or payments platform

Please take me back to that world


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.

Glad to be corrected tho


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.


Yeah, I believe 100% of people who tried Flash for Android convinced that it's dead end.


> I'm not sure what your references are, so let's discuss.

Sure. I did not put a wall of text because I thought the context was still clear but apparently not, fair enough.

* Adobe's CEO was far from compliant, fought as he could and pushed development up to the point where even he saw the writing on the wall:

https://www.theguardian.com/technology/blog/2010/apr/29/adob...

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:

https://www.wired.com/2011/11/adobe-mobile-flash-dead/

https://www.extremetech.com/computing/134551-why-flash-faile...

It was also the leading cause of crashes on OS X at the time. That was a big point when process separation for plugins was added to Safari:

https://www.macworld.com/article/198369/keynote-48.html

* It was also disastrous effects on laptops' battery life:

https://arstechnica.com/gadgets/2010/11/the-future-of-notebo...

* 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.

Overall, there is a summary of technical arguments here: https://daringfireball.net/2010/01/apple_adobe_flash

> 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.


> every website that used Flash for video content

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.


Adobe Flash is dead? I mean Adobe isn't selling it as product? If so, why they didn't open source the Flash player part?

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.


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.


> Shortening the copyright to something sensible like 5 years would've been nice too.

Even juste going down to 20 years like it used to be before IP portfolio owners lobbied to extend it would be a massive improvement already.


Correct, its the third parties.


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.


> If so, why they didn't open source the Flash player part?

The code quality would be an embarrassment. So many exploits yet to be discovered.


They have outsourced a large chunk of it[1], although you could argue not enough of it.

1. https://github.com/adobe/avmplus


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.


It's a zombie though.

https://airsdk.harman.com/


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.


Flash shouldn't have died.

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.


Flash didn't die because it was bad.

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.


> Flash didn't die because it was bad.

Well, it certainly wasn't helped by the Flash Player being a never ending source of serious security exploits, sandbox bypasses, and more. :(


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.


> that's only a problem with the runtime implementation.

"Only". Heh. Bit more than just some minor implementation detail, seeing as until Ruffle there's never been a successful 2nd implementation. ;)

Plenty of false starts and half arse attempts to make one, but none that gained traction until now. :/


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.


That's an interesting perspective. I always liked Flash. The web, frankly, was a lot better when it was in its prime.


> Flash didn't die because it was bad.

Which is a shame because it was bad. Like having to run an app from Adobe to clear out pernicious tracking cookies kinda bad.


> Flash shouldn't have died.

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. :( :( :(


And the user experience is still better.


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.


Yeah the beauty of flash is that it would crash your browser using way less than 2GB of RAM.


> 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.


> The very idea of having a `SecurityManager` that runs in the same VM is nonsensical, but that's what Java did.

Lolwhat? It's fine. It worked great. (It had some vulnerabilities in its history, but so does every sandbox/hypervisor/what-have-you out there)


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.


Just tried the Ruffle demo, it crashed my Firefox. :D


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. :-)


s/Java had the disadvantage/Flash had the disadvantage/ perhaps?


people making login systems in flash should honestly be ashamed of themselves


the only thing that really died was adobe's support (if you can call it that) and the web plugin I was kind of shocked how big the community still is


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.


>Is authorship of new titles even a possibility

We still write fresh new AS3 code at $work. All IDEs and tooling are running fine on W10/W11.


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).


What do you use for the Flash authoring?


IIRC, some version of Adobe Creative Suite.


Thanks. :)


Why? For what? Flash/flex is dead?


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.


Realm of the Mad God?


No, it's some Farmville clone.


New grounds has a "flashforward" event every year or so.


Very cool. It would bring a smile to see this community grow large enough to make some noise.

One of the best parts of a "dead" platform is that it doesn't change!


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).

https://labs.leaningtech.com/cheerpx/for-flash

(I'm not affiliated with them in any way. Just found it interesting one day.)


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).

Yuri talks about CXFF's architecture here:

https://youtu.be/7JUs4c99-mo?t=1045

...but if you wanted full Linux system emulation, we got it! https://webvm.io


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.


If only Web development 10 years later was half of the developer experience of using Flash.


Is it though? Folks using the current tech stack du jour have still managed to recreate the user hostility that Flash pioneered.


Just because I can cook in the middle of the forest, doesn't mean the tooling is the same as on a Michelan restaurant.


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


Man, don't be so critical.

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 you make games that millions of people play are you still considered a "wanna be game dev"?


Pretty important population.


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.


Flash died so Ruffle can live. <3


Adobe capitulated, but apple killed it when it didnt support it on ios.


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…


Yeah, exactly. Just because everyone says it doesn't make it so, and the general public are often wildly wrong about basic computer facts.


Well, neither of us seem to have supporting evidence so far... ;)

---

Using some different search parameters is turning up some results:

* http://web.archive.org/web/20140903235611/https://crash-anal...

* https://wiki.mozilla.org/CrashKill/Flash

* https://wiki.mozilla.org/CrashKill/Flash_Breakdown_Data

There is some talking around the problem on the old Mozilla Blog:

* https://blog.mozilla.org/en/mozilla/firefox-3-6-4-with-crash...

Things being about a decade old is adding further difficulty. :/


> http://web.archive.org/web/20140903235611/https://crash-anal...

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?

> https://wiki.mozilla.org/CrashKill/Flash

This lists crashes seen in the Flash module. But again, I never said that 3rd party plugins didn't occasionally have crashes.

> https://wiki.mozilla.org/CrashKill/Flash_Breakdown_Data

This is a documentation page about types of all-cause failures related to Flash, (could be Firefox code issues)

> https://blog.mozilla.org/en/mozilla/firefox-3-6-4-with-crash...

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.


Yeah, that's all fair.

Did you manage to find citations supporting your assertion? :)


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!

0: https://github.com/BrowserBox/BrowserBox/issues/424


I remember using a browser called Puffin that worked like this to use Flash on iOS


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.


Android did support it for a time though, it was a pretty good selling point in fact... but then google dropped it too :(


Google never dropped it. Adobe did, when they realised that they could make money from HTML5 instead: https://web.archive.org/web/20170114145431/https://blogs.ado... .


apple killed it after Jobs had a hissy fit


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.
That's a current live error when trying to go to old blogs.adobe.com articles. The above one is from this url: https://blogs.adobe.com/asset/2012/06/inside-flash-player-pr...


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.

I wonder how Ruffle get it working so fast.


they were probably less anal than GNU over licences


Why would the license matter to implementation speed?


it tends to be hard to reverse engineer something with an explicit agreement that if you use it, you will not reverse it

or at least, that was the fear at the time so, imagine making a program like gnash, without installing flash

as it turned out, adobe never could actually enforce such a thing, but that didn't stop gnash from absolutely turning into a ghost town

memory is a bit hazy, but thats the gist I got back then

they were so careful, they buried the project, well done


Oh, you mean they were careful about licensing on the in side, not the output side. I wouldn't call it "anal" to want to avoid lawsuits.

Edit: You can't edit in

> as it turned out, adobe never could actually enforce such a thing,

and not explain it - did the courts change their whole view of reverse engineering or something?


I don't have knowledge specific to this case, but the license limits who you can accept code from.


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.


At least this can be done responsibly.

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.


For a live demo, it seems Internet Archive deployed Ruffle for their web archives, and seems to be working well: https://web.archive.org/web/20030208023358/http://www.minicl...


The only thing that makes me happy about Web Assembly is that we got our plugins back.

Sure the Web stagnated a decade catching up with 2011, but thanks to Unity, Flutter and Blazor, among others, we're getting there.


A.k.a. the project which is keeping Homestar Runner content alive in its original form.


quite a lot more than that, but aw yes, homestar runner


Indeed, but honestly it would have been worth all the effort to keep h*r going in its original form alone.


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!!


Oh man you can load local files. Just mucked around with the first game I ever made in high school, man I miss doing that stuff.


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


There is a preservation project called Flashpoint, they have over 170,000 titles at the moment!


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


Same. Wave of nostalgia hitting so hard that I can picture the computer room at my middle school.


There is also OpenFL built on HaXe: https://www.openfl.org/

Which is not an emulator, but more of a spiritual successor, following the same API, and with tools to convert Actionscript projects


One issue I'm having is poor audio-video sync, like off by over 500ms.


Is there a website where I can play old flash games using ruffle?


Newgrounds, armorgames and bubblebox all use Ruffle for their flash games



Albinoblacksheep has it, but it's disabled by default for things that can be served as rendered video

There's a switch in the footer


You can install their browser plugin. I think all Orisinal games run fine with it.


Where do you find the Orisinal games? Looks like the original Ferry Halim website has taken them down.


They're still up! http://www.ferryhalim.com/orisinal/

You'll need to install the Ruffle extension in your browser to view them.


I didn't realize it was still on the page, I just saw the deprecation warning. Thank you!


What was the reason for submitting this OP? Just curious or something new here?


No rust in title? I am shocked


great project! I've used it to bring back some nostalgia for myself :)


BASED BASED BASED


doit


Video LAN Client (VLC) makes most codecs and emulators extra work, as even Flash plays using VLC.


I have never seen VLC run an SWF file and if somehow it can, definitely won't be much more than embedded videos.


Media Player Classic supported SWF files, basically by using the ActiveX Flash Player.


The popularity of two similarly named Rust projects, Ruff and Ruffle, seems mildly unfortunate.


I think people may have a tough time noticing the similarities between the projects

whole different worlds of not confusing




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: