Live data from Hacker News

Ruffle – A Flash Player emulator written in Rust

ruffle.rs

71–80 of 94 posts

Re: Ruffle – A Flash Player emulator written in Rust

#71
post #6

There was a little Strong Bad skit about Ruffle posted to @StrongBadActual twitter... gives me hope that Homestar Runner's content will be preserved as is.

The Brothers Chaps will probably end up switching from Flash to Ruffle on their own site eventually, but until then, the Internet Archive has almost all the Strong Bad Emails archived here playable with Ruffle. https://archive.org/details/softwarelibrary_flash_strongbad

Re: Ruffle – A Flash Player emulator written in Rust

#72
I could research this myself, but will ask lazy HN instead. One of the big challenges in presenting Flash well is "conflation artifacts," which are the seams that appear when compositing antialiased vector shapes. The old software renderer in Flash had very clever techniques for avoiding these, but browser 2D renderers generally don't. (The actual story is a bit more complex, as Skia is careful to avoid conflation artifacts within a shape, but the compositing rules in the HTML5 spec almost seem to require them for compositing multiple shapes). Thus, Shumway and the other Flash emulators had artifacts which detracted from the visual quality.

A particularly good paper explaining the problem (and how the NV_path_rendering extension solves it) is "GPU-accelerated Path Rendering", Kilgard and Bolz, 2012.

Does Ruffle solve these? If so, how?

Re: Ruffle – A Flash Player emulator written in Rust

#73
post #50
post #42

Earlier quoted context omitted.

SVG is much better at vector art use cases. Flash was horrible from user pov (constant os and browser compatibility problems, unending stream of weekly "ads can pwn your computer" level security holes, proprietary black box nature, ate your battery, hard to procedurally generate, didn't integrate with the web and dom, etc etc).

All true, but there’s such a massive library of content for Flash that they must have done _something_ right. Maybe it was just luck, maybe timing, but it’s amazing to me that so many games and videos are caught in this particular technical dead end. My understanding is that HTML5 just never offered the same primitives for content creation, but I’m unsure why there was no economic incentive to create them.

The flash editor was high quality, and catered to animators.

Re: Ruffle – A Flash Player emulator written in Rust

#74

I could research this myself, but will ask lazy HN instead. One of the big challenges in presenting Flash well is "conflation artifacts," which are the seams that appear when compositing antialiased vector shapes. The old software renderer in Flash had very clever techniques for avoiding these, but browser 2D renderers generally don't. (The actual story is a bit more complex, as Skia is careful to avoid conflation ar…

It doesn't solve them. See https://github.com/ruffle-rs/ruffle/issues/26

Here's a flash style solution to the problem: https://github.com/jrmuizel/full-scene-rasterizer

Re: Ruffle – A Flash Player emulator written in Rust

#76

I could research this myself, but will ask lazy HN instead. One of the big challenges in presenting Flash well is "conflation artifacts," which are the seams that appear when compositing antialiased vector shapes. The old software renderer in Flash had very clever techniques for avoiding these, but browser 2D renderers generally don't. (The actual story is a bit more complex, as Skia is careful to avoid conflation ar…

It doesn't solve them. See https://github.com/ruffle-rs/ruffle/issues/26 Here's a flash style solution to the problem: https://github.com/jrmuizel/full-scene-rasterizer

Thanks, good to know. I am interested in a fully GPU-accelerated solution, but it is not easy, and I make no promises if or when I will get there. I would be interested in discussing my ideas.

Re: Ruffle – A Flash Player emulator written in Rust

#77
post #58

Earlier quoted context omitted.

I'm not sure how does that work legally. For example you can still download the installer directly from them [0] and it's an universal one. If you don't have a key it works in trial mode, if you do have one you can unlock the full version. http://download.macromedia.com/pub/flash/esd/flashmx2004_tri...

Are you really that worried that Adobe will come after you for illegally using 2004 era software that they've abandoned?

Out of the companies I would be worri d would come after me for software, or even accidentally come after me for something like this busy just follow through because they have whole procedures and teams for this, Abode would be one of those companies. If nothing else, it would be used to justify the search if they went after you and used to claim you did something wrong and cover someone's ass at the company.

Adobe is the developer of one of the most pirated pieces of software on the planet. I wouldn't put it past them to be a little trigger happy. For personal use, I imagine you're pretty safe, but if it's a business, even a single person consultancy, who knows?

Re: Ruffle – A Flash Player emulator written in Rust

#78
post #64

How is this achieved? Is the flash API/architecture open knowledge?

As with any sufficiently popular proprietary file format, gonna bet it was reverse engineered a dozen times by different people independently. But maybe there are official specs, I'm not sure.

edit: there is an official spec and it's 243 pages https://www.adobe.com/devnet/swf.html

Re: Ruffle – A Flash Player emulator written in Rust

#80
post #25

Earlier quoted context omitted.

Back when Shumway was under development I remember using the first big Homestuck walkaround flash ( https://www.homestuck.com/story/1358?fl=1 ) to put it through its paces and found it to be unbearably slow to the point of unplayability. If Ruffle is capable of running those at any reasonable speed then that would demonstrate real progress over what Shumway achieved.

Looking at the code, Shumway seems amazingly complete vs. Ruffle. Ruffle has only a tiny skeleton of AS3 support (only the VM opcodes and some of the MovieClip class), while Shumway seems to implement a huge chunk of the library classes. Maybe using wasm Rust with WebGPU acceleration will make it faster than Shumway. Remarkable to me how much effort must have been put into Shumway, though..

Shumway didn’t need to implement a full ActionScript virtual machine because it converted ActionScript bytecode to JavaScript and eval’ing it at runtime, leveraging both the JavaScript engine’s runtime and JIT.
Post reply on HN