Hacker News new | past | comments | ask | show | jobs | submit login
A Flash Player emulator written in Rust (github.com/ruffle-rs)
265 points by known on Feb 5, 2021 | hide | past | favorite | 125 comments



Ok, funny story about ruffle: Years ago in 2012 some co-workers stumbled on the greatest website ever: http://www.novalight.net/NOVALIGHT.html (takes a while to load now) To prove that HTML5/CSS3 was finally ready, I started a side project to recreate it in JS: https://github.com/jtwaleson/NovaLight-Challenge . I never got far and I don't know if that means I never finish side projects or if Flash is officially superior to HTML5. Anyway, the owner of the original site found it and emailed me his appreciation and I think we both had a good laugh about the situation.

Two weeks ago he emailed me again to ask if I could maybe finish the project because flash is now dead, and the site is part of his legacy etc. Instead I slapped ruffle.js on it and everything is back up! It's quite slow to load, but apart from that everything looks great! Ruffle is an amazing project :)


I googled Peter K Joneleit after your description of him in the README and I was curious if you were just having a bit of fun or if he was involved in defining these web standards. Hooooo boy I was not prepared for his Twitter, it is wild


Wow you're not wrong about his Twitter, that was an adventure. It's so over the top I actually can't tell if it's meant to be satire.


Probably just a hacked account


I don't think so. The "SOL" link on his page leads to even worse stuff.



I deliberately did not include it as it has some pretty awful stuff


I was just having fun when I wrote it. Just saw his twitter feed... wow...


To be honest I did see some conspiracy stuff on his website, but I decided to ignore it and just focus on the beautiful Flash animations. Not sure how I feel about it.


I think it’s ok to separate the art from the artist, so to speak. The original site is indeed interesting and a nice example of Flash web design from the era, the Twitter acct doesn’t change this


I'm sorry. I looked at this website, and he explicitly blames me and my people for controlling and destroying the country (and the World Trade Center) and wants me destroyed. I can't look away from that. It's sad that that's OK on Y Combinator's Hacker News, but at least I know what I'm dealing with here.


If you interpreted this thread as an endorsement of anti-Jewish conspiracy theorists then I think you ought to re-read it. To restate in case it is unclear: the original author of the page turned out to have hateful views, but it needn’t reflect at all on the homage that jtwaleson made and they shouldn’t feel bad about it.


He's clearly an insane person. There's no use getting worked up about what some digital hobo is screaming.


I don't think you should feel bad for admiring his work. I'd hesitantly say that he may have some mental troubles and we should rather feel bad for him, which I personally do, sincerely. It's like how many admired TempleOS.


Whew, "some" is putting it lightly.


When trying to recreate the site in HTML5, how did you not notice the big "SOL" button on the flash page linking to his blog about how the Jews did 9/11 and other nonsense?


See my other comment. I gave it a cursory look and ignored it and I'm not sure what I feel about that. I agree with some others in the thread and try to look at the "art" separately from the "artist".


[flagged]


I can assure you that I do not support this.


As soon as I saw his handle is literally "GodSend14" I knew I was in for a nice ride.


Eccentric like the late https://en.wikipedia.org/wiki/TempleOS creator


Lets call a spade a spade. Its not "Eccentric", he either has serious mental health issues or is an American far right conspiracy theorist. And don't you go implying that all American far right conspiracy theorists have mental health issues, that is not proven or even logical in many ways.


The man's talking about prophecies, comets and reptilians.


Marjorie Taylor Greene, who is a member of United States congress literally blamed forest fires on Jewish space lasers. It's hard to discern these days who has mental issues and who is just conspiracy theorist. Unless a doctor has diagnosed someone I will reserve my judgement


This work should be put in the wikipedia list of outsider art[1].

[1] https://en.wikipedia.org/wiki/List_of_outsider_artists


Awesome page, and it even works flawless on mobile.


Took a while to load, but absolutely worth the wait!


Oh god it's every PowerPoint secreting manager's dream and the worst nightmare of everybody else.


I couldn't stop laughing at this page, so dramatic.


So wait, you tried to rebuild a flash website in javascript for the purpose of drawing conclusions about HTML5? How does that work? I mean, Flash and HTML5 are made for different purposes and use cases and HTML5 is not JavaScript.


https://html.spec.whatwg.org/multipage/introduction.html#is-...?

> the term "HTML5" is widely used as a buzzword to refer to modern web technologies

This is because HTML5 includes elements like canvas, which is useless without JavaScript, but JavaScript would also be much less useful in the browser without canvas. So "HTML5" is a useful shorthand for what is made possible with HTML5-level browsers https://www.w3.org/TR/2014/REC-html5-20141028/scripting-1.ht...

Also this is post-HTML5 (HTML is now a living spec without version numbers), but the HTML standard now actually does include a bunch of JavaScript API specs, such as web workers https://html.spec.whatwg.org/multipage/workers.html#introduc...


Obviously the replacement needed a combination of HTML5/CSS3/JS.


Only partly true, but I will ask again: What does reimplementing a Flash site in JS have to do with "HTML5 being ready"? How does HTML5 help you with rebuilding the same thing in _JS_? And why does that mean HTML5 is ready? Ready for what?

It still doesn't connect. You can use JS to manipulate an SVG and animate it. You could theoretically just move absolutely positioned colored divs around ... Or you could draw things on a canvas. Does that mean HTML5 "is ready" or "not ready"? It has got nothing to do with it. But yaaay! Lets go! Downvote a comment, which points out a flaw in logic!


You are not being downvoted because you point out logical flaws, you are being downvoted because you don’t contribute to the topic.

Are you not aware of the discussion about HTML5 versus Flash, or do you just disagree with using HTML5 as an umbrella term here? Even the Wikipedia article [0] about HTML5 has a section on Flash, discussing features such as sound, video, graphics and interactive elements. With "HTML5 being ready" I believe OP is referring to it being a viable alternative to Flash. There is a famous quote where Steve Jobs said that Flash is no longer needed, because there are viable alternatives to the features it provided – HTML5 among others.

[0] - https://en.wikipedia.org/wiki/HTML5#"Thoughts_on_Flash"


I have never heard anyone use HTML5 as an "umbrella term" for meaning HTML5 + JS + CSS(3). Why would anyone do that? It is kind of silly to do that. That changes the whole meaning of the OP. Yes, I heavily disagree with such imprecise usage of terms, that changes the whole meaning. In that case my criticism would have been that the OP is not very clear / ambiguous.


I have heard several people use it for that umbrella term, particularly back in the days when I lurked around following the WHATWG and CSS mailing lists.

Consider that much of what is new in HTML5 vis-à-vis HTML4 is in the changes to its JS APIs (e.g., <canvas> is all about the JS API), and its requirement that browsers support other standards such as SVG. Actually distinguishing which component of the web stack actually has a particular improvement that you seek to use doesn't provide all that much value... what does it matter if it's really the WHATWG HTML spec that mandated it or it's the ES5 spec?

Instead, you can just call it all "HTML5" and understand that it's using newer technologies that won't work on legacy browsers, although we're now so far deep into the era that we don't have a terminology for what requires a 2020 browser versus a 2015 browser.


Chill dude.


> Ready for what?

Ready to re-create the most amazing website in human history.

> You could theoretically just move absolutely positioned colored divs around

I would say that in practical terms, this would mean that HTML5 is not ready.

> Downvote a comment, which points out a flaw in logic!

You must be fun at parties ;)

But if you want my final verdict: I agree with others in the thread that HTML is not a good replacement for Flash. Creativity was much easier to express in Flash.


Saying HTML5 is ready to replace Flash was one of Steve Jobs' justifications for sentencing Flash to death.


I'm excited for this; flash is still wholly unmatched as an artistic expression tool. HTML5 and WebAssembly can, obviously, provide the technical chops; but we've never recovered the experience of a novice Flash user who, with no prior domain experience, could realize an inspired prototype game or entertaining animation in less than an hour.

The tool was just that accessible, and the community that good.


> The tool was just that accessible, and the community that good.

The tool is exactly the same and it outputs html\js now.


Not quite. Animate exists, but acquiring it is prohibitively expensive. Flash was popular in no small part because it was easily pirated, and so cheap as free. Animate requires a prohibitively expensive yearly subscription fee.


Agree! It's not just unmatched on the web, for many purposes it's unmatched across the board.

I remember reading that the English cartoon Duggee (which also happens to be my favourite children's show by far) is 100% animated in Flash. Get this, it's a professional, prime time, internationally syndicated TV show and they use Flash because it let's the animators be more productive than anything else.


There has been so many cartoons made in flash, with great artistic result.

Well, turns out there's a wikipedia page on that: https://en.wikipedia.org/wiki/List_of_Flash_animated_televis... Even Family Guy started with Flash!


Having to account for responsiveness kills a lot of creativity regardless of the tools used. Amateurs also used to hand craft unique and interesting Geocities websites but responsiveness has really hampered how easy and accessible that is.


I would add that Canvas' performance profile is not the same as the Flash runtime either, you can't just layer on top of layer with Canvas and not give a F like Animate/Flash let you do. Artists/amateurs don't want to have to think about performance tuning across browsers.


Whats missing from modern tools?


Flash was really special.

The design philosophy behind flash was to let you make animations and interactive content.

The design philosophy behind html/css/js/web stack is a composable system of modules that can be bundled, used to center objects, and plumb state to components.

Flash was on another level. The web hasn't been the same since it left us.


Using Adobe Animate (previously called Adobe Flash {something?}) you can create all the same content you could previously exporting to html5/JS/CSS.


I don’t think anything feature-wise is missing on the runtime side, but Flash’s keyframe/editor setup just let people make the most amazing things.


Stickdeath comes to mind. 2advanced studios work. All the amazing bitmap effects. Flash was really easy to create interactive scenes as your site. Each one different from another. Each one a masterpiece of art and layers and effects taken from gaming and VFX/Film. I miss that. Don’t get me wrong, I’m glad flash it dead, but I really miss the beautiful sites it enabled.


Isn't Adobe Animate the same thing, keyframes and everything, just with html output?


It's probably harder to pirate now.


I talked to several people who used to make Flash animations and games, and none of them had even heard of Animate -- they were under the impression that Flash was dead and there was nothing like it anymore. (Turns out it's literally the same thing with an uglier splash screen and includes the HTML5 plugin by default.)


It also supports Javascript now, and they seemed to have deprecated AS1 & 2 support. I've even seen some TS definitions on the internet.


Animate is only available as part of a $236/yr subscription and can't be purchased. Flash was far more attainable.


Yeah, mostly piracy. So it doesn't matter.


It's a combination of a lot of things. In theory, Adobe Animate still exists today, but it's wildly inaccessible both because of cost and its proprietary nature. There's also complications based on how PWA get deployed to mobile, etc...

But ignoring all of that, here's a quick list of (some) categories of things I still miss from Flash:

- nested animations/clips: The recursive nature of Flash made making animations very fast. It also opened up some workflows with AS2 that were not particularly scalable, but that were excellent for fast prototyping. This is the biggest thing I miss when I open programs like Aseprite. I can't begin to describe how great it was for programming to be able to embed code inside of animation, and have the entire thing be a clip that could be embedded inside another program. Doing stuff like point-and-click games with that workflow was so fast and easy, and it was so easy to build up animations with a lot of disparate parts.

- a content-first workflow: related to the above, Flash let you switch between coding and content very quickly without worrying about stuff like imports. The fact that the content/animation and coding were so synchronized was a different way of thinking about architecture. There were problems associated with it when it came to scalability and organization, but again, just very fast to work with, very accessible, and lent itself to a certain way of thinking about prototypes that had some big advantages. When you had an idea you could be switching back and forth from code to animation constantly, you didn't have to alt-tab or export anything.

- AS2: maybe controversial, because AS3 was pretty popular and a lot of programmers were campaigning hard that it was the "correct" way to do things, but again, I want to stress the weird combination of content/animation/code was part of what made Flash special, and abstracting some of that out and having more "professional" content pipelines and different ways of doing events and organizing everything -- I think something was lost with that transition.

- Also just, in general, the animation tools were good. I don't know of an Open Source (or shared source) tool that has the same level of animation tools. Blender is doing some really compelling stuff that I'm very excited about, but Greasepencil is not a substitute for Flash, it's going in its own direction, and it's much less accessible. Aseprite is great (being able to tag frames and export data about them is handy), but it has some quirks and annoyances around the timeline controls. It's also just a lot more limited, you're basically forced to do frame-by-frame animation. There are some programs that I see animators online using that seem to be very powerful, but they're often either quite expensive or so restrictive and narrowly targeted that I'm not even willing to think about using them.

- And again, I can't stress enough: even just as an animation tool, even forgetting about games, adding scripting to animations is useful. You can have a movie clip that repeats until you hit a frame and throw an event. You can have a hand-animated scene with a procedurally animated background. And that's all really, really fast to do because the way the UX is set up you just have everything accessible at the same time.

----

I don't think it would be impossible to replicate some of the things that made Flash great, and if someone really took the time to sit down and think about what made that workflow what it was, I don't think it would be impossible to make a Flash replacement considerably better than Flash. Flash had bad audio tools, its data formats were all closed down, it wasn't really extensible, it's drawing tools could have been better, and for most of its life it was terrible if you wanted to do anything with non-vector content. There are big improvements that an Open replacement could make.

It would be an uphill battle, because the ecosystem surrounding Flash didn't just exist because of Flash. There are a bunch of different factors that went into it. And there are some APIs on the web that are still annoying. Mobile support for web games is still annoying. Controller support is not great, rumble isn't really supported. There's stuff we could do better. But the core functionality that old-school Flash needed is mostly there, and we could have (functionally) a Flash replacement today. It also wouldn't need to be a web app, you could have a Flash replacement that targeted the web for compilation that itself ran as a native app, and that would be completely fine.

Heck, you could have one that didn't target the web. Obviously I'm thinking first about the web, but if there was a Flash-equivalent Open Source prototyping tool that targeted Linux/Windows, that would also be great, and as far as I know that kind of tool also doesn't exist today.

It could be done, it would just be a lot of work to build, and tricky to get right and to get polished. The really weird reality is that as far as I can tell, no one's ever tried to build a Flash successor that actually imitated the features I care about in Flash. There are plenty of game dev platforms, some very easy to use, but very few of them have great content creation tools baked in, very few are experimenting with completely novel approaches to architecture like Flash's movie clip system.


> This is the biggest thing I miss when I open programs like Aseprite. I can't begin to describe how great it was for programming to be able to embed code inside of animation, and have the entire thing be a clip that could be embedded inside another program.

This was just _magic_.

Godot and Unity prefabs are sort of half-way there, but the scene view being the primary interaction for editing causes the _magic_ to disappear. Flash had the timeline as the primary view; so where in scene view you drop an object into a space, in Flash you drop an animation into a timeline.

The outcome is very different. With time moving forward in the scene view, IE in Unity play mode, the objects in the world move and behave in a linear fashion. A ball rolls forward until it finds the lowest point to settle in. With time moving forward in the timeline the animations within loop endlessly. Time goes from 0 to N and back to 0 to repeat.

This was absolute _magic_ for rapid iteration.

And yes, all the rest you discussed was goodly, as well.

And it was an absolutely great cartoon animation toolkit.,


Are you the author of another flash shim named shumway?

What is the status of that project, is it still active? What do you think of this project?

https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Sh...


Hah! You're not the first person to refer me to that.

It's entirely coincidental, but I love that I share the same name. For purely selfish ego reasons I wish it had succeeded.


PICO-8 seems adjacent, at least. It's generally more programming-oriented, but it includes tools for editing sprites and music and code and bundles everything together under a single editor/runtime, which can target desktop or web or even be distributed in the form of an image file.


PICO-8 is fantastic, but ultimately way less flexible and powerful than Flash.

That's not a dig at PICO-8, it's limited on purpose. But the strength of Flash was that it was extremely flexible and exposed an architectural style that lent itself very well to prototyping. PICO-8 does have all of its tools built into the same app, but it doesn't have anything at all like a movie clip system, it doesn't even have events or a timeline. I think it just has very different goals, it's a philosophy built around having a small, self-contained, understandable system -- not around having a unique workflow.

The closest programming/architecture analogy I draw to PICO-8 isn't Flash, it's the TI-83 graphing calculator. That platform also had a lot of influence over how I learned to program, and it had similar strengths to PICO-8 in how limited it was and how that forced you to get creative and allowed you to really deeply understand what was going on in your program.

Where I do see PICO-8 getting adjacent to Flash is in the community. I think when some people say they miss Flash, what they really miss is sites like Newgrounds and the surrounding indie scene. PICO-8 does capture some of that, it's a great environment to learn to code in, and it's a fun environment to work in. I just don't think it captures any of the tooling. When I say I miss Flash, I kind of miss the indie scene, but I miss the tooling more.


That makes sense

I'm honestly tempted to take a swing at the "open replacement" that you described in your original post..... Though I never actually used Flash back in the day, so I'd need to do some research


It's something I've been thinking about a lot lately. Not necessary to try and make something myself, but just... what would a modern Flash look like if it wasn't just a clone, but it was people actually thinking about what made Flash attractive and really trying to figure out how to replicate its strengths and address its weaknesses?

An interesting point here is that Adobe Animate still exists, which (in theory, I haven't used it) still has a lot of these features. But nobody uses it for game prototyping that I'm aware of -- and not just because it's expensive or (in my case) because people refuse to use subscription software. I've seen gamedevs do their animation in Animate CC, and then export it out to Unity. So there's something going on there.

I wonder if I went back and reinstalled Flash 8, if there are parts of it I would notice that didn't age well, or paradigms that needed to be rethought. But I still feel like that kind of workflow is something we could have again, and with enough thought put into it, it could be even better. I would welcome more people thinking about this kind of stuff or trying their hand at prototyping game engines that were designed around novel workflows.

There's fertile ground in this area if someone wanted to explore it and dig into it.


I think you really hit on something with the integration between code and animation and vector art creation. That's not something you really see anywhere else and it instantly made me understand what was compelling about Flash.

If you want to discuss this further, my email is in my bio!


Which modern tools you have in mind?


I haven't used Unity, but I'm often surprised that it hasn't taken this niche.


This really isn’t what Unity does. Unity is mostly just the engine and level editor. The thing that made Flash special was that it was a complete vector animation authoring tool first, before you get to all the scripting etc.



https://en.wikipedia.org/wiki/Orisinal

Can we revive Orisinal? I used to spend hours on their games: https://wsa-global.org/winner/orisinal/


With the Ruffle browser extension, it appears that most of the games already work (at least the random sample I checked).


I first heard about this project when it saved homestarrunner.com from the dead.

I'm glad it exists, there's a lot of 2000's-era web history wrapped up in Flash.


Homestarrunner was mostly not interactive so they could have just converted everything to video (I bet it is on YouTube already).


It is on YouTube. But there's a _lot_ of Easter eggs in the Strong Bad Emails that rely on interactivity which are lost in the video.


Converting vector images to raster images forever fixes the resolution of the images. Also flash can be much higher framerate than a fixed raster video framerate.


Just tried it out on all my flash animations and games I made in 2005-6. Haven't busted those out for a while. What a throwback. Handled them all pretty well except for one game that loaded images of my friends. Must've had the image files not embedded or something. Great work, and thanks!


What do you mean, a Flash player emulator? There's no real CPU to emulate in the first place. Shouldn't we call that a Flash player?

Or is this because of trademark or something?


To get to 100% fidelity, there'll be a Windows XP + IE 6 on x86 emulator in there sooner rather than later.


You're right it is a unofficial "flash player". I guess the original player was some sort of VM since it ran some byte code.


but if it's written in Rust are they going to be able to emulate the security holes so you get the full experience?


If they target WebAssembly most likely,

"USENIX Security '20 - Everything Old is New Again: Binary Security of WebAssembly"

https://www.youtube.com/watch?v=glL__xjviro


lmao, only if you write something other than rust


There's a lot of unsafe usage in this codebase (https://github.com/ruffle-rs/ruffle/search?q=unsafe returns 5 screenfuls) - though I don't know enough about Rust to tell how risky these are.


Around 3.5 of those pages are unsafe uses for implementing the same trait for garbage collection. The implementations seem very simple and the documentation mentions invariants that are easy to hold so it should be easy to recognize an unsound implementation. I think that it should be possible to not use unsafe at all for some of those but I only skimmed over the code so I'm not sure.

Most of the rest of unsafe uses are to skip rust checks that have already been asserted and for FFI which is unavoidable.

There are only a few unsafe uses whose invariants are not well defined. I only gave it a quick look but I doubt they're risky.

Even if an attacker manages to exploit ruffle, I wonder what could they do in a WASM sandbox in an isolated domain.


In this context any usage of `unsafe` in Rust is probably irrelevant to the safety of the resulting program, because AFAIK the WASM sandbox doesn't trust programs enough to actually allow them to do anything that could potentially violate memory safety.


Yep, in a lot of use cases the wasm version probably is fine with the browser sandbox. But according to the readme this also targets the desktop. I would imagine the desktop mode is native code + wgpu, as there seems to be a wgpu directory under renderer/ .

There are some scenarios when vulnerabilities in a wasm compiled program can be harmful too though. For example the web page embedding the emulated flash applet doesn't necessarily intend to give that app full access to that origin's context. For example it could exfiltrate some api keys or other security tokens of the logged in user of the containing page.


Just run it on an Intel processor with some modern RAM.


>Ruffle is in the proof-of-concept stage and can currently run early Flash animations and games.

Yeah. Just like the 10,000 other Flash implementations. The problem is that SWF is very complex format and relies on proprietary codecs. Also, there are multiple runtimes to support. Like all attempts before it, simple cases will be covered but anything slightly more complicated will never work.


Given the folks sponsoring the project, I have higher hopes for this than you do.


I've seen this before, going all the way back to Gnu Gnash all the way up to Shumway (which was functional in the same way all the others were). The simple parts, typically the things from the AS1/AS2 world, are simple. As you get into the AS3 world there's a drop-off. I don't see anything in this project that hasn't been done before.


I am not aware of the folks behind Gnash, and Mozilla obviously cares about the web, but I don't think either of those organizations have the dedication to Flash that Newgrounds, or even the NYT, have.

Time will tell I guess.


Indeed. I was tracking a lot of these projects a few years ago because we had a Flex/AS3 RIA (remember that term?) so I was hoping we'd get a freebie port to HTML/JS.

In the end, we ended up writing our own AS3->JavaScript transpiler[1]. The Apache Flex project has since done something similar, though by the time that was done, we were done. So my skepticism stemmed from just seeing these projects come out, get some quick wins from implementing a simple subset of swf, and then just go nowhere.

But I wish them well. I hope it works out.

[1]Well, not totally ours. We used the existing Falcon compiler front-end and we wrote the emitter to transpile to TypeScript (after implementing a subset of Flash SDK that we needed).


Oh wow, RIA, yeah, takes me back :)


Our Revenue Services got caught out with the Flash EOL. Their solution was to provide an Electron-based web browser, to much embarassment from those who could peek under the hood to see.

It looks like they decided to bundle an older Chromium version that still supports Flash.

I wonder if ruffle could have saved the embarassment, and worked as a safer stop-gap measure.


I hope this fare better than GNU Gnash.

Back in university, my friends and I had a team hacking on Gnash to try implementing an OpenGLES renderer for a class project. We never got it finished, due to the lack of documentation and our poor reading of C code.


I read the title three times to decide it was saying it's emulating a Flash Player. Seems I was wrong, it is a Flash player, or you could say it's a Flash interpreter.

It doesn't take a specific Flash Player and run it in emulation. That seemed viable to me, the OS support needed wouldn't require any specific knowledge of Flash/ActionScript which is horizontally portable from/to non-flash things.


Can't wait to play Runescape in the browser again.


That runs on Java unfortunately


There are actually a good number of ways to get Java to compile and run in a browser. It should be OK, perhaps the 3D or other advanced API's may be a mess however.


I went looking for the original xiaoxiao stick figure fighting swf to load into the demo and found out that Albino Blacksheep is already using Ruffle in production: https://www.albinoblacksheep.com/flash/fight1


It does not handle neopets games well yet.


Is that possibly because in order to play the games in downloads the content on execution and I am pretty sure you have to be a logged in user to access the games.


I just thought that it would be nice to have a site like "You Might Not Need Jquery" (http://youmightnotneedjquery.com), but one that helps to find alternatives to Flash features.


you know what we need? This implemented a bit further so it can be used to restore lost Flash screensavers. So much art and creative coding went into making some amazing screensavers a few which I still used up til Flash's nixing off Windows in January.


Great project!

To be honest I'm slightly annoyed whenever a github submission mentions the programming language for no specific reason.

Rust is a great tool but it doesn't matter unless you want to participate in this project.


Of course it matters even if YOU don't want to participate. The techy types that frequent here may actually want to contribute, or be interested in how the code was implemented as a learning resource.

Additionally, there are biased for and against programming languages, and I guarantee that there is a whole set of people on HN that would be interested in this project because it is a language they like. Rust means you can run this software almost anywhere and it's going to be easy to install.


I guess that's true and I shouldn't comment that "early" in the morning ;)


I helped restoring JK Rowling official website [1] from 004 to 2010, which was entirely in Flash. It was a reproduction of her desktop / house, with a lot of fun sections, secrets, easter, eggs. After years rebuilding it (with swf files, decompiling them to understand the Ajax calls, etc), browsers announced they were going to stop supporting Flash, so all the hard work was almost useless (a few people saw it and loved it, though).

I tried Ruffle but unfortunately it still doesn't support all the original Flash features, so most of the website is unusable yet. But I wait for the way when they complete it and the website can be browseable again.

[1]: https://www.therowlinglibrary.com/jkrowling.com/en


People think of it as being for games, but high quality applications used it as UI, a lot still do.

Flash was banned to protect the Google, Apple, Microsoft ap ecosystems. Todays mobile CPUs are an order of magnitude way more powerful than those of 10 years ago. The performance issue doesn't apply now.

As for bugs, they can be fixed and they could have been fixed with the passage of time.

The whole agenda of aiming to replace Flash with HTML5 and CSS was a dishonest fraud from the get go.

10 years on now and still nowhere near what was available 10 years ago.


I miss Flash too, but I don't miss the fact that the runtime was only available from a single vendor and only in binary form for the platforms they deemed important. The performance issue was never the main problem.


>Flash was banned to protect the Google, Apple, Microsoft ap ecosystems.

No. There was always a lot of Flash hate around, but it was tolerated because prior to HTML5 set of standards and the massive investment in JS performance, there was no way to do certain things in HTML/JS, so there was space for Flash. Post 2010 it became hard to justify Flash because you could now replicate everything Flash could do (though maybe in a more clunky way).

>10 years on now and still nowhere near what was available 10 years ago.

I wouldn't say that. There is no good reason for Flash to exist anymore. The culture also changed. The younguns who were writing browser-based Flash games in 2004, are writing mobile games today, and the browser is not a popular gaming target anymore (with some exceptions here and there).


The browser is unlikely to be a target for writing games it is crippled as a medium for playing games, or as you put it in a "more clunky way".

> The younguns who were writing browser-based Flash games in 2004, are writing mobile games today, and the browser is not a popular gaming target anymore (with some exceptions here and there).

Don't those games have to be sold though app stores where Google and Apple take their 30% cut?

On the question of a "more clunky way", how come 10 years after Flash was banned, despite improvements in hardware performance, HTML/JS capabilities and development tools have not evolved to surpass Flash?

Could that be because the companies that control the apps stores are the same ones in charge of the HTML/JS standards, and even neglect to implement some of the standards when they might make games and animation development "less clunky"?


>On the question of a "more clunky way", how come 10 years after Flash was banned, despite improvements in hardware performance, HTML/JS capabilities and development tools have not evolved to surpass Flash?

That's not true. JavaScript is still a terrible language, but if you're building a full-fledged web application, you're going to be writing it in TypeScript or Dart - and those languages are much better than AS3, and they do have sophisticated tooling.

In terms of performance, I would say that as of maybe 3-4 years ago HTML/CSS/JavaScript surpassed Flash in every browser outside of IE (IE JavaScript performance is dog-shit, and Flash is still king there).

So if you're building what was traditional known as a RIA or even a game, the HTML/CSS/JS front-end stack is much more comprehensive than Flash/AS3/Flex. I say that as someone who was a fan of Flash, and who wrote hundreds of thousands of lines of code in AS3. Our company also leveraged alchemy/FlasCC for performance as well - which was transitioned to asm.js/WebAssembly (another way that Flash was really ahead of its time). Stage3D is easily replaced by WebGL. We're actually using a dart framework called StageXL, which mimics the Flash display list API because Flash display list (API and implementation) was really sophisticated for building vector animation-based apps (games or UIs).

I can't speak to the traditional use-case of Flash providing a WYSIWYG editor for creating vector animation and how that looks like in HTML, but I think people just prefer video now because vector animation can't be hosted on YouTube and can't be monetized in the same way. So sadly, the 'vector animation culture' became 'YouTube video content culture'

>Could that be because the companies that control the apps stores are the same ones in charge of the HTML/JS standards, and even neglect to implement some of the standards when they might make games and animation development "less clunky"?

No. For one thing, it was the app store companies, like Google, and Apple, that drove the exponential improvements in HTML/CSS/JS ecosystem to make it viable. In fact, companies like Google are still pushing these standards forward and increasing the capabilities of browsers.

I think you will agree that there is nothing that can be done in Flash today, that couldn't be done in HTML/CSS/JavaScript. The reverse isn't necessarily true.

One last bit, I don't know if you remember but there was a brief period in which Adobe attempted to monetize flash. They actually wanted a license fee for the right to use the high-performance opcodes (as provided by alchemy/FlasCC) without even providing something like an app-store. They backtracked pretty quick because it was an idiotic move.


Flash performance was abysmal on Mac OSX since forever and Adobe couldn't be bothered to fix. They gave up the Apple ecosystem and the whole Flash thing even before the iPhone.


I wonder if something like Ruffle could one day be used to automatically and losslessly convert Flash files into other formats?


This is not an emulator.


Quite a few things on Newgrounds are actually running on Ruffle!


I was confused why some old flash games, that I couldn't play since I ditched flash, suddenly ran again when I looked them up randomly again. I think I just found my answer.


So here's a silly question. If you can just get the official "projector" from Adobe (Flashpoint's approach?), what's Ruffle for? (Edit: Removed the last sentence, which was unhelpful.)


IIRC, Ruffle can be embedded in webpages, which I don't think the official projector can do.


If this can play Elf Bowling, I'm in.


Bring flash support back to the web! Would be awesome that if that not only are they able to emulate the flash media player, but also fix the security issues too. Perhaps that's naturally what an emulator will give you?

We should probably also be thinking about how browser support may continue for JavaScript in the future too. It's a matter of time until WASM reaches mainstream adoption.


Please FFS let flash die a peaceful death


Please not. Such projects are essential for historical preservation. Shall we let C64, Atari die too and stop improving emulators?


Yeah, Flash-the-platform can die for all I care.

Flash-the-content needs to be preserved, and Ruffle seems like a promising step towards that.




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

Search: